From shopify-commerce
Guides modern JavaScript/TypeScript with ES6+ features, async/await, destructuring, optional chaining, modules, and TypeScript types for Shopify themes, apps, Functions, Hydrogen.
npx claudepluginhub orcaqubits/agentic-commerce-skills-plugins --plugin shopify-commerceThis skill is limited to using the following tools:
**Fetch live docs**: Web-search `site:developer.mozilla.org javascript` for MDN JavaScript reference. Check `https://www.typescriptlang.org/docs/` for TypeScript documentation.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides MCP server integration in Claude Code plugins via .mcp.json or plugin.json configs for stdio, SSE, HTTP types, enabling external services as tools.
Fetch live docs: Web-search site:developer.mozilla.org javascript for MDN JavaScript reference. Check https://www.typescriptlang.org/docs/ for TypeScript documentation.
Concise function syntax with lexical this:
const add = (a, b) => a + b;this, arguments, super, or new.targetString interpolation and multi-line strings:
`Hello, ${name}!`Extract values from objects/arrays:
const { name, price } = product;const [first, ...rest] = items;const { name = 'Unknown' } = product;const { address: { city } } = customer;[...arr1, ...arr2], { ...obj1, ...obj2 }function(...args) {}, const { a, ...rest } = obj;import { func } from './module.js';export const value = 42; / export default class {}const mod = await import('./lazy.js');obj?.property?.nested — short-circuits to undefined if any part is nullishvalue ?? defaultValue — returns right side only if left is null/undefined (not falsy)new Promise((resolve, reject) => { ... }).then(), .catch(), .finally()Promise.all(), Promise.allSettled(), Promise.race(), Promise.any()async function fetchData() { const data = await fetch(url); }const [a, b] = await Promise.all([fetchA(), fetchB()]);const response = await fetch(url, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(data),
});
const result = await response.json();
let name: string = 'Product';function getPrice(id: number): Promise<number> { ... }const product: Product = { ... };interface Product {
id: string;
title: string;
handle: string;
priceRange: {
minVariantPrice: { amount: string; currencyCode: string };
};
variants?: Variant[];
}
Partial<T> — all properties optionalRequired<T> — all properties requiredPick<T, K> — subset of propertiesOmit<T, K> — exclude propertiesRecord<K, V> — key-value mappingReturnType<T> — extract return type of functionfunction fetchResource<T>(url: string): Promise<T> {
return fetch(url).then(res => res.json());
}
const product = await fetchResource<Product>('/api/products/1');
enum OrderStatus {
Pending = 'pending',
Shipped = 'shipped',
Completed = 'completed',
}
type ApiResponse<T> =
| { status: 'success'; data: T }
| { status: 'error'; message: string };
map, filter, reduce, find, findIndexsome, every — boolean checksflat, flatMap — array flatteningArray.from(), Array.isArray()Object.entries(), Object.fromEntries(), Object.keys(), Object.values()structuredClone() — deep clone<script defer> and lazy loading for performance<script type="application/json"> blocks@shopify/shopify-app-remix for auth and session managementconst by default, let when reassignment is needed, never var=== instead of == for comparisonsFetch MDN and TypeScript docs for exact syntax, browser compatibility, and new features before implementing.