@shopbb/helium 0.7.3 → 0.7.5
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.
|
@@ -12,6 +12,6 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import type { CartHandler, CartHandlerOptions } from './types';
|
|
14
14
|
/** Default cart return fragment. Can be overridden by caller. */
|
|
15
|
-
export declare const DEFAULT_CART_FRAGMENT = "\n fragment CartReturn on Cart {\n id\n createdAt\n updatedAt\n totalQuantity\n cost {\n subtotalAmount { amount currencyCode }\n totalAmount { amount currencyCode }\n }\n lines(first: 50) {\n nodes {\n id\n quantity\n cost {\n totalAmount { amount currencyCode }\n amountPerQuantity { amount currencyCode }\n }\n merchandise {\n ... on ProductVariant {\n id\n title\n sku\n availableForSale\n price { amount currencyCode }\n image { url altText }\n product { id handle title }\n }\n }\n }\n }\n checkoutUrl\n }\n";
|
|
15
|
+
export declare const DEFAULT_CART_FRAGMENT = "\n fragment CartReturn on Cart {\n id\n createdAt\n updatedAt\n totalQuantity\n cost {\n subtotalAmount { amount currencyCode }\n totalAmount { amount currencyCode }\n totalDiscountAmount { amount currencyCode }\n }\n lines(first: 50) {\n nodes {\n id\n quantity\n cost {\n totalAmount { amount currencyCode }\n amountPerQuantity { amount currencyCode }\n }\n merchandise {\n ... on ProductVariant {\n id\n title\n sku\n availableForSale\n price { amount currencyCode }\n image { url altText }\n product { id handle title }\n }\n }\n }\n }\n discountCodes {\n code\n applicable\n }\n discountAllocations {\n title\n code\n discountedAmount { amount currencyCode }\n }\n appliedDiscountClaim {\n claimId\n code\n title\n }\n checkoutUrl\n }\n";
|
|
16
16
|
export declare function createCartHandler(options: CartHandlerOptions): CartHandler;
|
|
17
17
|
//# sourceMappingURL=createCartHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createCartHandler.d.ts","sourceRoot":"","sources":["../src/createCartHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAInB,MAAM,SAAS,CAAC;AAEjB,iEAAiE;AACjE,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"createCartHandler.d.ts","sourceRoot":"","sources":["../src/createCartHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAInB,MAAM,SAAS,CAAC;AAEjB,iEAAiE;AACjE,eAAO,MAAM,qBAAqB,q/BAgDjC,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CA4N1E"}
|
|
@@ -20,6 +20,7 @@ export const DEFAULT_CART_FRAGMENT = /* GraphQL */ `
|
|
|
20
20
|
cost {
|
|
21
21
|
subtotalAmount { amount currencyCode }
|
|
22
22
|
totalAmount { amount currencyCode }
|
|
23
|
+
totalDiscountAmount { amount currencyCode }
|
|
23
24
|
}
|
|
24
25
|
lines(first: 50) {
|
|
25
26
|
nodes {
|
|
@@ -42,6 +43,20 @@ export const DEFAULT_CART_FRAGMENT = /* GraphQL */ `
|
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
45
|
}
|
|
46
|
+
discountCodes {
|
|
47
|
+
code
|
|
48
|
+
applicable
|
|
49
|
+
}
|
|
50
|
+
discountAllocations {
|
|
51
|
+
title
|
|
52
|
+
code
|
|
53
|
+
discountedAmount { amount currencyCode }
|
|
54
|
+
}
|
|
55
|
+
appliedDiscountClaim {
|
|
56
|
+
claimId
|
|
57
|
+
code
|
|
58
|
+
title
|
|
59
|
+
}
|
|
45
60
|
checkoutUrl
|
|
46
61
|
}
|
|
47
62
|
`;
|
|
@@ -137,7 +152,16 @@ export function createCartHandler(options) {
|
|
|
137
152
|
variables: { id: cartId },
|
|
138
153
|
cache: storefront.CacheNone(),
|
|
139
154
|
});
|
|
140
|
-
|
|
155
|
+
// cart 不存在 / 已 completed(platform 清空 lines 后 resolver 返回 null)→ 清 cookie
|
|
156
|
+
if (!data.cart) {
|
|
157
|
+
currentCartId = null;
|
|
158
|
+
// 写空 cookie 让浏览器删除(不依赖 setCartId 因为可能不接受空 id)
|
|
159
|
+
if (responseHeaders) {
|
|
160
|
+
responseHeaders.append('Set-Cookie', 'cart=; Path=/; Max-Age=0; SameSite=Lax');
|
|
161
|
+
}
|
|
162
|
+
return null;
|
|
163
|
+
}
|
|
164
|
+
return data.cart;
|
|
141
165
|
}
|
|
142
166
|
async function create(input) {
|
|
143
167
|
const data = await storefront.mutate(CART_CREATE, { variables: { input: input ?? {} } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createCartHandler.js","sourceRoot":"","sources":["../src/createCartHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,iEAAiE;AACjE,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC
|
|
1
|
+
{"version":3,"file":"createCartHandler.js","sourceRoot":"","sources":["../src/createCartHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,iEAAiE;AACjE,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDlD,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,OAA2B;IAC3D,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IAE9F,mDAAmD;IACnD,yEAAyE;IACzE,IAAI,aAAa,GAAkB,YAAY,EAAE,CAAC;IAElD,SAAS,SAAS;QAChB,OAAO,aAAa,IAAI,YAAY,EAAE,CAAC;IACzC,CAAC;IAED,2EAA2E;IAC3E,SAAS,SAAS,CAAC,MAAc;QAC/B,aAAa,GAAG,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACpC,CAAC;IAED,iCAAiC;IAEjC,MAAM,UAAU,GAAG,aAAa,CAAC;MAC7B,qBAAqB;;;;GAIxB,CAAC;IAEF,MAAM,WAAW,GAAG,aAAa,CAAC;MAC9B,qBAAqB;;;;;;;GAOxB,CAAC;IAEF,MAAM,cAAc,GAAG,aAAa,CAAC;MACjC,qBAAqB;;;;;;;GAOxB,CAAC;IAEF,MAAM,iBAAiB,GAAG,aAAa,CAAC;MACpC,qBAAqB;;;;;;;GAOxB,CAAC;IAEF,MAAM,iBAAiB,GAAG,aAAa,CAAC;MACpC,qBAAqB;;;;;;;GAOxB,CAAC;IAEF,MAAM,0BAA0B,GAAG,aAAa,CAAC;MAC7C,qBAAqB;;;;;;;GAOxB,CAAC;IAEF,MAAM,oBAAoB,GAAG,aAAa,CAAC;MACvC,qBAAqB;;;;;;;GAOxB,CAAC;IAEF,MAAM,mBAAmB,GAAG,aAAa,CAAC;MACtC,qBAAqB;;;;;;;GAOxB,CAAC;IAEF,8BAA8B;IAE9B,KAAK,UAAU,GAAG;QAChB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,CAAgB,UAAU,EAAE;YAC7D,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;YACzB,KAAK,EAAE,UAAU,CAAC,SAAS,EAAE;SAC9B,CAAC,CAAC;QACH,yEAAyE;QACzE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,aAAa,GAAG,IAAI,CAAC;YACrB,8CAA8C;YAC9C,IAAI,eAAe,EAAE,CAAC;gBACpB,eAAe,CAAC,MAAM,CAAC,YAAY,EAAE,wCAAwC,CAAC,CAAC;YACjF,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,UAAU,MAAM,CAAC,KAAmC;QACvD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,CAClC,WAAW,EACX,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,EAAE,CACtC,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;QAC/B,IAAI,MAAM,CAAC,IAAI;YAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;IAC9D,CAAC;IAED,KAAK,UAAU,QAAQ,CAAC,KAAsB;QAC5C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,6CAA6C;YAC7C,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3B,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,CAClC,cAAc,EACd,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CACjC,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;IACpF,CAAC;IAED,KAAK,UAAU,WAAW,CAAC,KAA4B;QACrD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;gBACL,IAAI,EAAE,IAAI;gBACV,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;aAC7D,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,CAClC,iBAAiB,EACjB,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CACjC,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;IAC1F,CAAC;IAED,KAAK,UAAU,WAAW,CAAC,OAAiB;QAC1C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;gBACL,IAAI,EAAE,IAAI;gBACV,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;aAC7D,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,CAClC,iBAAiB,EACjB,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CACnC,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;IAC1F,CAAC;IAED,KAAK,UAAU,mBAAmB,CAAC,aAAuB;QACxD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,4BAA4B;YAC5B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,IAAI;gBAAE,OAAO,OAAO,CAAC;QACpC,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,CAClC,0BAA0B,EAC1B,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,aAAa,EAAE,EAAE,CACtD,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,CAAC;IAC1G,CAAC;IAED,KAAK,UAAU,cAAc,CAAC,OAAe;QAC3C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QACtF,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,CAClC,oBAAoB,EACpB,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CACnC,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC;IAChG,CAAC;IAED,KAAK,UAAU,aAAa;QAC1B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QACtF,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,CAClC,mBAAmB,EACnB,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,CAC1B,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC9F,CAAC;IAED,OAAO;QACL,GAAG;QACH,SAAS;QACT,SAAS;QACT,MAAM;QACN,QAAQ;QACR,WAAW;QACX,WAAW;QACX,mBAAmB;QACnB,cAAc;QACd,aAAa;KACd,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
package/src/createCartHandler.ts
CHANGED
|
@@ -29,6 +29,7 @@ export const DEFAULT_CART_FRAGMENT = /* GraphQL */ `
|
|
|
29
29
|
cost {
|
|
30
30
|
subtotalAmount { amount currencyCode }
|
|
31
31
|
totalAmount { amount currencyCode }
|
|
32
|
+
totalDiscountAmount { amount currencyCode }
|
|
32
33
|
}
|
|
33
34
|
lines(first: 50) {
|
|
34
35
|
nodes {
|
|
@@ -51,6 +52,20 @@ export const DEFAULT_CART_FRAGMENT = /* GraphQL */ `
|
|
|
51
52
|
}
|
|
52
53
|
}
|
|
53
54
|
}
|
|
55
|
+
discountCodes {
|
|
56
|
+
code
|
|
57
|
+
applicable
|
|
58
|
+
}
|
|
59
|
+
discountAllocations {
|
|
60
|
+
title
|
|
61
|
+
code
|
|
62
|
+
discountedAmount { amount currencyCode }
|
|
63
|
+
}
|
|
64
|
+
appliedDiscountClaim {
|
|
65
|
+
claimId
|
|
66
|
+
code
|
|
67
|
+
title
|
|
68
|
+
}
|
|
54
69
|
checkoutUrl
|
|
55
70
|
}
|
|
56
71
|
`;
|
|
@@ -160,7 +175,16 @@ export function createCartHandler(options: CartHandlerOptions): CartHandler {
|
|
|
160
175
|
variables: { id: cartId },
|
|
161
176
|
cache: storefront.CacheNone(),
|
|
162
177
|
});
|
|
163
|
-
|
|
178
|
+
// cart 不存在 / 已 completed(platform 清空 lines 后 resolver 返回 null)→ 清 cookie
|
|
179
|
+
if (!data.cart) {
|
|
180
|
+
currentCartId = null;
|
|
181
|
+
// 写空 cookie 让浏览器删除(不依赖 setCartId 因为可能不接受空 id)
|
|
182
|
+
if (responseHeaders) {
|
|
183
|
+
responseHeaders.append('Set-Cookie', 'cart=; Path=/; Max-Age=0; SameSite=Lax');
|
|
184
|
+
}
|
|
185
|
+
return null;
|
|
186
|
+
}
|
|
187
|
+
return data.cart;
|
|
164
188
|
}
|
|
165
189
|
|
|
166
190
|
async function create(input?: { lines?: CartLineInput[] }): Promise<CartResult> {
|