codex-commerce-platform 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +51 -0
- package/dist/cart/index.d.ts +41 -0
- package/dist/cart/index.d.ts.map +1 -0
- package/dist/cart/index.js +278 -0
- package/dist/cart/index.js.map +1 -0
- package/dist/catalog/index.d.ts +4 -0
- package/dist/catalog/index.d.ts.map +1 -0
- package/dist/catalog/index.js +2 -0
- package/dist/catalog/index.js.map +1 -0
- package/dist/connectors/pinnacle/catalog.d.ts +63 -0
- package/dist/connectors/pinnacle/catalog.d.ts.map +1 -0
- package/dist/connectors/pinnacle/catalog.js +238 -0
- package/dist/connectors/pinnacle/catalog.js.map +1 -0
- package/dist/connectors/pinnacle/index.d.ts +3 -0
- package/dist/connectors/pinnacle/index.d.ts.map +1 -0
- package/dist/connectors/pinnacle/index.js +3 -0
- package/dist/connectors/pinnacle/index.js.map +1 -0
- package/dist/connectors/pinnacle/taxonomy.d.ts +53 -0
- package/dist/connectors/pinnacle/taxonomy.d.ts.map +1 -0
- package/dist/connectors/pinnacle/taxonomy.js +206 -0
- package/dist/connectors/pinnacle/taxonomy.js.map +1 -0
- package/dist/errors/index.d.ts +47 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +257 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/images/index.d.ts +31 -0
- package/dist/images/index.d.ts.map +1 -0
- package/dist/images/index.js +39 -0
- package/dist/images/index.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/money/index.d.ts +5 -0
- package/dist/money/index.d.ts.map +1 -0
- package/dist/money/index.js +29 -0
- package/dist/money/index.js.map +1 -0
- package/dist/react-router/index.d.ts +3 -0
- package/dist/react-router/index.d.ts.map +1 -0
- package/dist/react-router/index.js +2 -0
- package/dist/react-router/index.js.map +1 -0
- package/dist/shopify/index.d.ts +107 -0
- package/dist/shopify/index.d.ts.map +1 -0
- package/dist/shopify/index.js +524 -0
- package/dist/shopify/index.js.map +1 -0
- package/dist/types/index.d.ts +172 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1,524 @@
|
|
|
1
|
+
const DEFAULT_STOREFRONT_API_VERSION = "2025-10";
|
|
2
|
+
const HOMEPAGE_COLLECTION_LIMIT = 6;
|
|
3
|
+
const HOMEPAGE_PRODUCT_LIMIT = 12;
|
|
4
|
+
const COLLECTION_PRODUCT_LIMIT = 24;
|
|
5
|
+
const COLLECTION_INDEX_LIMIT = 24;
|
|
6
|
+
const SEARCH_PRODUCT_LIMIT = 24;
|
|
7
|
+
const PRODUCT_IMAGE_LIMIT = 12;
|
|
8
|
+
const PRODUCT_VARIANT_LIMIT = 50;
|
|
9
|
+
export class ShopifyConfigError extends Error {
|
|
10
|
+
constructor(message) {
|
|
11
|
+
super(message);
|
|
12
|
+
this.name = "ShopifyConfigError";
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export class StorefrontApiError extends Error {
|
|
16
|
+
status;
|
|
17
|
+
errors;
|
|
18
|
+
constructor(message, options) {
|
|
19
|
+
super(message);
|
|
20
|
+
this.name = "StorefrontApiError";
|
|
21
|
+
this.status = options?.status ?? null;
|
|
22
|
+
this.errors = options?.errors ?? [];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export function createShopifyStorefrontConfig(input) {
|
|
26
|
+
const storeDomain = normalizeStoreDomain(input.storeDomain);
|
|
27
|
+
const apiVersion = (input.apiVersion ?? DEFAULT_STOREFRONT_API_VERSION).trim();
|
|
28
|
+
const storefrontAccessToken = input.storefrontAccessToken.trim();
|
|
29
|
+
if (!storeDomain)
|
|
30
|
+
throw new ShopifyConfigError("Shopify storeDomain is required.");
|
|
31
|
+
if (!apiVersion)
|
|
32
|
+
throw new ShopifyConfigError("Shopify apiVersion is required.");
|
|
33
|
+
if (!storefrontAccessToken)
|
|
34
|
+
throw new ShopifyConfigError("Shopify storefrontAccessToken is required.");
|
|
35
|
+
return {
|
|
36
|
+
storeDomain,
|
|
37
|
+
storefrontAccessToken,
|
|
38
|
+
apiVersion,
|
|
39
|
+
endpoint: `https://${storeDomain}/api/${apiVersion}/graphql.json`,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export function createShopifyStorefrontClient(input, options = {}) {
|
|
43
|
+
const config = createShopifyStorefrontConfig(input);
|
|
44
|
+
const fetcher = options.fetch ?? ((request, init) => globalThis.fetch(request, init));
|
|
45
|
+
if (typeof fetcher !== "function") {
|
|
46
|
+
throw new ShopifyConfigError("A fetch implementation is required for Shopify Storefront API requests.");
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
config,
|
|
50
|
+
request(query, variables) {
|
|
51
|
+
return storefrontRequest({ config, fetch: fetcher }, query, variables);
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
export async function storefrontRequest(client, query, variables) {
|
|
56
|
+
if (isShopifyStorefrontClient(client)) {
|
|
57
|
+
return client.request(query, variables);
|
|
58
|
+
}
|
|
59
|
+
const response = await client.fetch(client.config.endpoint, {
|
|
60
|
+
method: "POST",
|
|
61
|
+
headers: {
|
|
62
|
+
"Content-Type": "application/json",
|
|
63
|
+
"X-Shopify-Storefront-Access-Token": client.config.storefrontAccessToken,
|
|
64
|
+
},
|
|
65
|
+
body: JSON.stringify({ query, variables: variables ?? {} }),
|
|
66
|
+
});
|
|
67
|
+
const payload = await parseStorefrontResponse(response);
|
|
68
|
+
if (!response.ok) {
|
|
69
|
+
throw new StorefrontApiError(`Shopify Storefront API request failed with status ${response.status}`, {
|
|
70
|
+
status: response.status,
|
|
71
|
+
errors: payload.errors,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
if (payload.errors?.length) {
|
|
75
|
+
throw new StorefrontApiError(payload.errors.map((error) => error.message).join("; "), {
|
|
76
|
+
status: response.status,
|
|
77
|
+
errors: payload.errors,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
if (payload.data === undefined) {
|
|
81
|
+
throw new StorefrontApiError("Shopify Storefront API response did not include data", {
|
|
82
|
+
status: response.status,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
return payload.data;
|
|
86
|
+
}
|
|
87
|
+
function isShopifyStorefrontClient(client) {
|
|
88
|
+
return "request" in client && typeof client.request === "function";
|
|
89
|
+
}
|
|
90
|
+
export async function getHomepage(client) {
|
|
91
|
+
const data = await client.request(HOMEPAGE_QUERY, {
|
|
92
|
+
collectionCount: HOMEPAGE_COLLECTION_LIMIT,
|
|
93
|
+
productCount: HOMEPAGE_PRODUCT_LIMIT,
|
|
94
|
+
imageCount: PRODUCT_IMAGE_LIMIT,
|
|
95
|
+
variantCount: PRODUCT_VARIANT_LIMIT,
|
|
96
|
+
});
|
|
97
|
+
return {
|
|
98
|
+
featuredCollections: connectionNodes(data.collections).map(normalizeShopifyCollection),
|
|
99
|
+
featuredProducts: connectionNodes(data.products).map(normalizeShopifyProduct),
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
export async function getCollections(client, limit = COLLECTION_INDEX_LIMIT) {
|
|
103
|
+
const data = await client.request(COLLECTIONS_QUERY, {
|
|
104
|
+
collectionCount: limit,
|
|
105
|
+
imageCount: PRODUCT_IMAGE_LIMIT,
|
|
106
|
+
variantCount: PRODUCT_VARIANT_LIMIT,
|
|
107
|
+
});
|
|
108
|
+
return connectionNodes(data.collections).map(normalizeShopifyCollection);
|
|
109
|
+
}
|
|
110
|
+
export async function searchProducts(client, input, options = {}) {
|
|
111
|
+
const query = buildSearchQuery(input);
|
|
112
|
+
const data = await client.request(SEARCH_PRODUCTS_QUERY, {
|
|
113
|
+
query,
|
|
114
|
+
productCount: SEARCH_PRODUCT_LIMIT,
|
|
115
|
+
imageCount: productImageLimit(options),
|
|
116
|
+
variantCount: productVariantLimit(options),
|
|
117
|
+
});
|
|
118
|
+
return connectionNodes(data.products).map(normalizeShopifyProduct);
|
|
119
|
+
}
|
|
120
|
+
export async function searchProductsCatalog(client, input, options = {}) {
|
|
121
|
+
const query = buildSearchQuery(input);
|
|
122
|
+
const paginationVariables = catalogPaginationVariables(input);
|
|
123
|
+
const sortVariables = catalogSortVariables(input.sortMode);
|
|
124
|
+
const data = await client.request(SEARCH_PRODUCTS_CATALOG_QUERY, {
|
|
125
|
+
query,
|
|
126
|
+
...paginationVariables,
|
|
127
|
+
...sortVariables,
|
|
128
|
+
imageCount: productImageLimit(options),
|
|
129
|
+
variantCount: productVariantLimit(options),
|
|
130
|
+
});
|
|
131
|
+
return {
|
|
132
|
+
products: connectionNodes(data.products).map(normalizeShopifyProduct),
|
|
133
|
+
pageInfo: data.products.pageInfo ?? emptyPageInfo(),
|
|
134
|
+
filters: data.products.filters ?? [],
|
|
135
|
+
query,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
export async function getCollectionByHandle(client, handle) {
|
|
139
|
+
const data = await client.request(COLLECTION_BY_HANDLE_QUERY, {
|
|
140
|
+
handle,
|
|
141
|
+
productCount: COLLECTION_PRODUCT_LIMIT,
|
|
142
|
+
imageCount: PRODUCT_IMAGE_LIMIT,
|
|
143
|
+
variantCount: PRODUCT_VARIANT_LIMIT,
|
|
144
|
+
});
|
|
145
|
+
return data.collection ? normalizeShopifyCollection(data.collection) : null;
|
|
146
|
+
}
|
|
147
|
+
export async function getProductByHandle(client, handle, options = {}) {
|
|
148
|
+
const data = await client.request(PRODUCT_BY_HANDLE_QUERY, {
|
|
149
|
+
handle,
|
|
150
|
+
imageCount: productImageLimit(options),
|
|
151
|
+
variantCount: productVariantLimit(options),
|
|
152
|
+
});
|
|
153
|
+
return data.product ? normalizeShopifyProduct(data.product) : null;
|
|
154
|
+
}
|
|
155
|
+
function productImageLimit(options = {}) {
|
|
156
|
+
return normalizedPositiveLimit(options.imageCount, PRODUCT_IMAGE_LIMIT);
|
|
157
|
+
}
|
|
158
|
+
function productVariantLimit(options = {}) {
|
|
159
|
+
return normalizedPositiveLimit(options.variantCount, PRODUCT_VARIANT_LIMIT);
|
|
160
|
+
}
|
|
161
|
+
function normalizedPositiveLimit(value, fallback) {
|
|
162
|
+
if (typeof value !== "number" || !Number.isFinite(value))
|
|
163
|
+
return fallback;
|
|
164
|
+
return Math.max(1, Math.floor(value));
|
|
165
|
+
}
|
|
166
|
+
export function buildSearchQuery(input) {
|
|
167
|
+
const parts = [];
|
|
168
|
+
if (input.query) {
|
|
169
|
+
const query = input.query.trim();
|
|
170
|
+
if (query)
|
|
171
|
+
parts.push(query);
|
|
172
|
+
}
|
|
173
|
+
for (const rawPart of input.rawQueryParts ?? []) {
|
|
174
|
+
const part = rawPart.trim();
|
|
175
|
+
if (part)
|
|
176
|
+
parts.push(part);
|
|
177
|
+
}
|
|
178
|
+
if (input.make) {
|
|
179
|
+
parts.push(quoteSearch(input.make));
|
|
180
|
+
}
|
|
181
|
+
if (input.model) {
|
|
182
|
+
parts.push(quoteSearch(input.model));
|
|
183
|
+
}
|
|
184
|
+
if (input.year) {
|
|
185
|
+
parts.push(quoteSearch(input.year));
|
|
186
|
+
}
|
|
187
|
+
if (input.productType) {
|
|
188
|
+
parts.push(quoteSearch(input.productType));
|
|
189
|
+
}
|
|
190
|
+
const tagQuery = buildFieldGroup("tag", input.tags);
|
|
191
|
+
if (tagQuery) {
|
|
192
|
+
parts.push(tagQuery);
|
|
193
|
+
}
|
|
194
|
+
const productTypeQuery = buildFieldGroup("product_type", input.productTypes);
|
|
195
|
+
if (productTypeQuery) {
|
|
196
|
+
parts.push(productTypeQuery);
|
|
197
|
+
}
|
|
198
|
+
const minPrice = parsePriceBoundary(input.minPrice);
|
|
199
|
+
if (minPrice !== null) {
|
|
200
|
+
parts.push(`variants.price:>=${minPrice}`);
|
|
201
|
+
}
|
|
202
|
+
const maxPrice = parsePriceBoundary(input.maxPrice);
|
|
203
|
+
if (maxPrice !== null) {
|
|
204
|
+
parts.push(`variants.price:<=${maxPrice}`);
|
|
205
|
+
}
|
|
206
|
+
if (typeof input.available === "boolean") {
|
|
207
|
+
parts.push(`available_for_sale:${input.available ? "true" : "false"}`);
|
|
208
|
+
}
|
|
209
|
+
return parts.length > 0 ? parts.join(" AND ") : null;
|
|
210
|
+
}
|
|
211
|
+
export function connectionNodes(connection) {
|
|
212
|
+
if (!connection) {
|
|
213
|
+
return [];
|
|
214
|
+
}
|
|
215
|
+
if (connection.nodes) {
|
|
216
|
+
return connection.nodes.filter((node) => node !== null && node !== undefined);
|
|
217
|
+
}
|
|
218
|
+
return (connection.edges ?? [])
|
|
219
|
+
.map((edge) => edge.node)
|
|
220
|
+
.filter((node) => node !== null && node !== undefined);
|
|
221
|
+
}
|
|
222
|
+
export function normalizeShopifyCollection(collection) {
|
|
223
|
+
return {
|
|
224
|
+
...collection,
|
|
225
|
+
products: connectionNodes(collection.products).map(normalizeShopifyProduct),
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
export function normalizeShopifyProduct(product) {
|
|
229
|
+
return {
|
|
230
|
+
...product,
|
|
231
|
+
images: connectionNodes(product.images),
|
|
232
|
+
variants: connectionNodes(product.variants),
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
export function normalizeStoreDomain(storeDomain) {
|
|
236
|
+
return storeDomain
|
|
237
|
+
.trim()
|
|
238
|
+
.replace(/^https?:\/\//iu, "")
|
|
239
|
+
.replace(/\/.*$/u, "")
|
|
240
|
+
.toLowerCase();
|
|
241
|
+
}
|
|
242
|
+
async function parseStorefrontResponse(response) {
|
|
243
|
+
try {
|
|
244
|
+
return (await response.json());
|
|
245
|
+
}
|
|
246
|
+
catch {
|
|
247
|
+
throw new StorefrontApiError("Shopify Storefront API returned invalid JSON", {
|
|
248
|
+
status: response.status,
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
function catalogPaginationVariables(input) {
|
|
253
|
+
const pageSize = clampProductLimit(input.before ? input.last ?? input.first : input.first ?? input.last);
|
|
254
|
+
if (input.before) {
|
|
255
|
+
return {
|
|
256
|
+
last: pageSize,
|
|
257
|
+
before: input.before,
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
return {
|
|
261
|
+
first: pageSize,
|
|
262
|
+
after: input.after || undefined,
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
function catalogSortVariables(sortMode) {
|
|
266
|
+
switch (sortMode) {
|
|
267
|
+
case "price-low":
|
|
268
|
+
return { sortKey: "PRICE", reverse: false };
|
|
269
|
+
case "price-high":
|
|
270
|
+
return { sortKey: "PRICE", reverse: true };
|
|
271
|
+
case "newest":
|
|
272
|
+
return { sortKey: "CREATED_AT", reverse: true };
|
|
273
|
+
default:
|
|
274
|
+
return { reverse: false };
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
function clampProductLimit(value) {
|
|
278
|
+
if (!Number.isFinite(value ?? Number.NaN))
|
|
279
|
+
return SEARCH_PRODUCT_LIMIT;
|
|
280
|
+
return Math.min(Math.max(Math.trunc(value), 1), 100);
|
|
281
|
+
}
|
|
282
|
+
function emptyPageInfo() {
|
|
283
|
+
return {
|
|
284
|
+
hasNextPage: false,
|
|
285
|
+
hasPreviousPage: false,
|
|
286
|
+
startCursor: null,
|
|
287
|
+
endCursor: null,
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
function quoteSearch(value) {
|
|
291
|
+
return `"${value.trim().replace(/"/gu, '\\"')}"`;
|
|
292
|
+
}
|
|
293
|
+
function buildFieldGroup(field, values) {
|
|
294
|
+
const tokens = [...new Set(values?.map((value) => value.trim()).filter(Boolean) ?? [])].map((value) => `${field}:${quoteFieldValue(value)}`);
|
|
295
|
+
if (tokens.length === 0)
|
|
296
|
+
return null;
|
|
297
|
+
if (tokens.length === 1)
|
|
298
|
+
return tokens[0] ?? null;
|
|
299
|
+
return `(${tokens.join(" OR ")})`;
|
|
300
|
+
}
|
|
301
|
+
function quoteFieldValue(value) {
|
|
302
|
+
return /^[A-Za-z0-9_]+$/u.test(value) ? value : quoteSearch(value);
|
|
303
|
+
}
|
|
304
|
+
function parsePriceBoundary(value) {
|
|
305
|
+
if (!value)
|
|
306
|
+
return null;
|
|
307
|
+
const parsed = Number.parseFloat(value);
|
|
308
|
+
if (!Number.isFinite(parsed) || parsed < 0)
|
|
309
|
+
return null;
|
|
310
|
+
return parsed.toFixed(2);
|
|
311
|
+
}
|
|
312
|
+
const MONEY_FRAGMENT = `#graphql
|
|
313
|
+
fragment MoneyFields on MoneyV2 {
|
|
314
|
+
amount
|
|
315
|
+
currencyCode
|
|
316
|
+
}
|
|
317
|
+
`;
|
|
318
|
+
const IMAGE_FRAGMENT = `#graphql
|
|
319
|
+
fragment ImageFields on Image {
|
|
320
|
+
url
|
|
321
|
+
mainUrl: url(transform: {maxWidth: 1200})
|
|
322
|
+
cardUrl: url(transform: {maxWidth: 720})
|
|
323
|
+
smallUrl: url(transform: {maxWidth: 480})
|
|
324
|
+
thumbnailUrl: url(transform: {maxWidth: 240})
|
|
325
|
+
altText
|
|
326
|
+
width
|
|
327
|
+
height
|
|
328
|
+
}
|
|
329
|
+
`;
|
|
330
|
+
const PRODUCT_VARIANT_FRAGMENT = `#graphql
|
|
331
|
+
fragment ProductVariantFields on ProductVariant {
|
|
332
|
+
id
|
|
333
|
+
title
|
|
334
|
+
availableForSale
|
|
335
|
+
sku
|
|
336
|
+
selectedOptions {
|
|
337
|
+
name
|
|
338
|
+
value
|
|
339
|
+
}
|
|
340
|
+
price {
|
|
341
|
+
...MoneyFields
|
|
342
|
+
}
|
|
343
|
+
compareAtPrice {
|
|
344
|
+
...MoneyFields
|
|
345
|
+
}
|
|
346
|
+
image {
|
|
347
|
+
...ImageFields
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
`;
|
|
351
|
+
const PRODUCT_FRAGMENT = `#graphql
|
|
352
|
+
fragment ProductFields on Product {
|
|
353
|
+
id
|
|
354
|
+
handle
|
|
355
|
+
title
|
|
356
|
+
description
|
|
357
|
+
descriptionHtml
|
|
358
|
+
vendor
|
|
359
|
+
productType
|
|
360
|
+
tags
|
|
361
|
+
availableForSale
|
|
362
|
+
featuredImage {
|
|
363
|
+
...ImageFields
|
|
364
|
+
}
|
|
365
|
+
images(first: $imageCount) {
|
|
366
|
+
nodes {
|
|
367
|
+
...ImageFields
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
options {
|
|
371
|
+
id
|
|
372
|
+
name
|
|
373
|
+
values
|
|
374
|
+
}
|
|
375
|
+
variants(first: $variantCount) {
|
|
376
|
+
nodes {
|
|
377
|
+
...ProductVariantFields
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
priceRange {
|
|
381
|
+
minVariantPrice {
|
|
382
|
+
...MoneyFields
|
|
383
|
+
}
|
|
384
|
+
maxVariantPrice {
|
|
385
|
+
...MoneyFields
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
`;
|
|
390
|
+
const COLLECTION_FRAGMENT = `#graphql
|
|
391
|
+
fragment CollectionFields on Collection {
|
|
392
|
+
id
|
|
393
|
+
handle
|
|
394
|
+
title
|
|
395
|
+
description
|
|
396
|
+
descriptionHtml
|
|
397
|
+
image {
|
|
398
|
+
...ImageFields
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
`;
|
|
402
|
+
const PRODUCT_STOREFRONT_FRAGMENTS = [
|
|
403
|
+
MONEY_FRAGMENT,
|
|
404
|
+
IMAGE_FRAGMENT,
|
|
405
|
+
PRODUCT_VARIANT_FRAGMENT,
|
|
406
|
+
PRODUCT_FRAGMENT,
|
|
407
|
+
].join("\n");
|
|
408
|
+
const COLLECTION_STOREFRONT_FRAGMENTS = [
|
|
409
|
+
PRODUCT_STOREFRONT_FRAGMENTS,
|
|
410
|
+
COLLECTION_FRAGMENT,
|
|
411
|
+
].join("\n");
|
|
412
|
+
const HOMEPAGE_QUERY = `#graphql
|
|
413
|
+
${COLLECTION_STOREFRONT_FRAGMENTS}
|
|
414
|
+
|
|
415
|
+
query Homepage($collectionCount: Int!, $productCount: Int!, $imageCount: Int!, $variantCount: Int!) {
|
|
416
|
+
collections(first: $collectionCount) {
|
|
417
|
+
nodes {
|
|
418
|
+
...CollectionFields
|
|
419
|
+
products(first: 4) {
|
|
420
|
+
nodes {
|
|
421
|
+
...ProductFields
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
products(first: $productCount) {
|
|
427
|
+
nodes {
|
|
428
|
+
...ProductFields
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
`;
|
|
433
|
+
const COLLECTIONS_QUERY = `#graphql
|
|
434
|
+
${COLLECTION_STOREFRONT_FRAGMENTS}
|
|
435
|
+
|
|
436
|
+
query Collections($collectionCount: Int!, $imageCount: Int!, $variantCount: Int!) {
|
|
437
|
+
collections(first: $collectionCount) {
|
|
438
|
+
nodes {
|
|
439
|
+
...CollectionFields
|
|
440
|
+
products(first: 3) {
|
|
441
|
+
nodes {
|
|
442
|
+
...ProductFields
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
`;
|
|
449
|
+
const SEARCH_PRODUCTS_QUERY = `#graphql
|
|
450
|
+
${PRODUCT_STOREFRONT_FRAGMENTS}
|
|
451
|
+
|
|
452
|
+
query SearchProducts($query: String, $productCount: Int!, $imageCount: Int!, $variantCount: Int!) {
|
|
453
|
+
products(first: $productCount, query: $query) {
|
|
454
|
+
nodes {
|
|
455
|
+
...ProductFields
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
`;
|
|
460
|
+
const SEARCH_PRODUCTS_CATALOG_QUERY = `#graphql
|
|
461
|
+
${PRODUCT_STOREFRONT_FRAGMENTS}
|
|
462
|
+
|
|
463
|
+
query SearchProductsCatalog(
|
|
464
|
+
$query: String
|
|
465
|
+
$first: Int
|
|
466
|
+
$last: Int
|
|
467
|
+
$after: String
|
|
468
|
+
$before: String
|
|
469
|
+
$sortKey: ProductSortKeys
|
|
470
|
+
$reverse: Boolean
|
|
471
|
+
$imageCount: Int!
|
|
472
|
+
$variantCount: Int!
|
|
473
|
+
) {
|
|
474
|
+
products(first: $first, last: $last, after: $after, before: $before, query: $query, sortKey: $sortKey, reverse: $reverse) {
|
|
475
|
+
edges {
|
|
476
|
+
cursor
|
|
477
|
+
node {
|
|
478
|
+
...ProductFields
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
pageInfo {
|
|
482
|
+
hasNextPage
|
|
483
|
+
hasPreviousPage
|
|
484
|
+
startCursor
|
|
485
|
+
endCursor
|
|
486
|
+
}
|
|
487
|
+
filters {
|
|
488
|
+
id
|
|
489
|
+
label
|
|
490
|
+
type
|
|
491
|
+
values {
|
|
492
|
+
id
|
|
493
|
+
label
|
|
494
|
+
count
|
|
495
|
+
input
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
`;
|
|
501
|
+
const COLLECTION_BY_HANDLE_QUERY = `#graphql
|
|
502
|
+
${COLLECTION_STOREFRONT_FRAGMENTS}
|
|
503
|
+
|
|
504
|
+
query CollectionByHandle($handle: String!, $productCount: Int!, $imageCount: Int!, $variantCount: Int!) {
|
|
505
|
+
collection(handle: $handle) {
|
|
506
|
+
...CollectionFields
|
|
507
|
+
products(first: $productCount) {
|
|
508
|
+
nodes {
|
|
509
|
+
...ProductFields
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
`;
|
|
515
|
+
const PRODUCT_BY_HANDLE_QUERY = `#graphql
|
|
516
|
+
${PRODUCT_STOREFRONT_FRAGMENTS}
|
|
517
|
+
|
|
518
|
+
query ProductByHandle($handle: String!, $imageCount: Int!, $variantCount: Int!) {
|
|
519
|
+
product(handle: $handle) {
|
|
520
|
+
...ProductFields
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
`;
|
|
524
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shopify/index.ts"],"names":[],"mappings":"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"}
|