@gem-sdk/adapter-bigcommerce 1.0.0 → 1.11.1-staging-ecd90c73

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.
@@ -4,29 +4,32 @@ var cartLinesAdd_generated = require('../../graphql/mutations/cart-lines-add.gen
4
4
  var common = require('../../helpers/common.js');
5
5
  var normalize = require('../../helpers/normalize.js');
6
6
 
7
- const addToCartOperation = (config) => {
8
- const addToCart = async (args) => {
9
- if (!config.storefrontUrl) {
10
- throw new Error('Shop is not connected');
11
- }
12
- const variables = {
13
- cartId: args.cartId,
14
- platform: 3,
15
- lines: args.lines.map((v) => ({
16
- quantity: v.quantity,
17
- merchandiseId: v.variantId,
18
- })),
19
- };
20
- const res = await fetch(config.storefrontUrl, {
21
- ...common.composeRequest(config),
22
- body: JSON.stringify({ query: cartLinesAdd_generated.CartLinesAddDocument, variables }),
23
- }).then((res) => res.json());
24
- if (!res.data?.cartLinesAdd?.cart) {
25
- return Promise.reject("Can't add to cart");
26
- }
27
- return normalize.normalizeCart(res.data.cartLinesAdd.cart);
28
- };
29
- return addToCart;
7
+ const addToCartOperation = (config)=>{
8
+ const addToCart = async (args)=>{
9
+ if (!config.storefrontUrl) {
10
+ throw new Error('Shop is not connected');
11
+ }
12
+ const variables = {
13
+ cartId: args.cartId,
14
+ platform: 3,
15
+ lines: args.lines.map((v)=>({
16
+ quantity: v.quantity,
17
+ merchandiseId: v.variantId
18
+ }))
19
+ };
20
+ const res = await fetch(config.storefrontUrl, {
21
+ ...common.composeRequest(config),
22
+ body: JSON.stringify({
23
+ query: cartLinesAdd_generated.CartLinesAddDocument,
24
+ variables
25
+ })
26
+ }).then((res)=>res.json());
27
+ if (!res.data?.cartLinesAdd?.cart) {
28
+ return Promise.reject("Can't add to cart");
29
+ }
30
+ return normalize.normalizeCart(res.data.cartLinesAdd.cart);
31
+ };
32
+ return addToCart;
30
33
  };
31
34
 
32
35
  exports.addToCartOperation = addToCartOperation;
@@ -4,29 +4,32 @@ var cartCreate_generated = require('../../graphql/mutations/cart-create.generate
4
4
  var common = require('../../helpers/common.js');
5
5
  var normalize = require('../../helpers/normalize.js');
6
6
 
7
- const createCartOperation = (config) => {
8
- const createCart = async (args) => {
9
- if (!config.storefrontUrl) {
10
- throw new Error('Shop is not connected');
11
- }
12
- const variables = {
13
- input: {
14
- lines: args.items.map((v) => ({
15
- quantity: v.quantity ?? 1,
16
- merchandiseId: v.variantId,
17
- })),
18
- },
19
- };
20
- const res = await fetch(config.storefrontUrl, {
21
- ...common.composeRequest(config),
22
- body: JSON.stringify({ query: cartCreate_generated.CartCreateDocument, variables }),
23
- }).then((res) => res.json());
24
- if (!res.data?.cartCreate?.cart) {
25
- return Promise.reject("Can't create cart");
26
- }
27
- return normalize.normalizeCart(res.data.cartCreate.cart);
28
- };
29
- return createCart;
7
+ const createCartOperation = (config)=>{
8
+ const createCart = async (args)=>{
9
+ if (!config.storefrontUrl) {
10
+ throw new Error('Shop is not connected');
11
+ }
12
+ const variables = {
13
+ input: {
14
+ lines: args.items.map((v)=>({
15
+ quantity: v.quantity ?? 1,
16
+ merchandiseId: v.variantId
17
+ }))
18
+ }
19
+ };
20
+ const res = await fetch(config.storefrontUrl, {
21
+ ...common.composeRequest(config),
22
+ body: JSON.stringify({
23
+ query: cartCreate_generated.CartCreateDocument,
24
+ variables
25
+ })
26
+ }).then((res)=>res.json());
27
+ if (!res.data?.cartCreate?.cart) {
28
+ return Promise.reject("Can't create cart");
29
+ }
30
+ return normalize.normalizeCart(res.data.cartCreate.cart);
31
+ };
32
+ return createCart;
30
33
  };
31
34
 
32
35
  exports.createCartOperation = createCartOperation;
@@ -4,24 +4,27 @@ var cart_generated = require('../../graphql/queries/cart.generated.js');
4
4
  var common = require('../../helpers/common.js');
5
5
  var normalize = require('../../helpers/normalize.js');
6
6
 
7
- const getCartOperation = (config) => {
8
- const getCart = async (args) => {
9
- if (!config.storefrontUrl) {
10
- throw new Error('Shop is not connected');
11
- }
12
- const variables = {
13
- id: args.cartId,
14
- };
15
- const res = await fetch(config.storefrontUrl, {
16
- ...common.composeRequest(config),
17
- body: JSON.stringify({ query: cart_generated.CartDocument, variables }),
18
- }).then((res) => res.json());
19
- if (!res.data?.cart) {
20
- return undefined;
21
- }
22
- return normalize.normalizeCart(res.data.cart);
23
- };
24
- return getCart;
7
+ const getCartOperation = (config)=>{
8
+ const getCart = async (args)=>{
9
+ if (!config.storefrontUrl) {
10
+ throw new Error('Shop is not connected');
11
+ }
12
+ const variables = {
13
+ id: args.cartId
14
+ };
15
+ const res = await fetch(config.storefrontUrl, {
16
+ ...common.composeRequest(config),
17
+ body: JSON.stringify({
18
+ query: cart_generated.CartDocument,
19
+ variables
20
+ })
21
+ }).then((res)=>res.json());
22
+ if (!res.data?.cart) {
23
+ return undefined;
24
+ }
25
+ return normalize.normalizeCart(res.data.cart);
26
+ };
27
+ return getCart;
25
28
  };
26
29
 
27
30
  exports.getCartOperation = getCartOperation;
@@ -4,26 +4,31 @@ var cartLinesRemove_generated = require('../../graphql/mutations/cart-lines-remo
4
4
  var common = require('../../helpers/common.js');
5
5
  var normalize = require('../../helpers/normalize.js');
6
6
 
7
- const removeCartItemOperation = (config) => {
8
- const removeCartItem = async (args) => {
9
- if (!config.storefrontUrl) {
10
- throw new Error('Shop is not connected');
11
- }
12
- const variables = {
13
- cartId: args.cartId,
14
- lineIds: [args.lineId],
15
- platform: 3,
16
- };
17
- const res = await fetch(config.storefrontUrl, {
18
- ...common.composeRequest(config),
19
- body: JSON.stringify({ query: cartLinesRemove_generated.CartLinesRemoveDocument, variables }),
20
- }).then((res) => res.json());
21
- if (!res.data?.cartLinesRemove?.cart) {
22
- return Promise.reject("Can't remove cart");
23
- }
24
- return normalize.normalizeCart(res.data.cartLinesRemove.cart);
25
- };
26
- return removeCartItem;
7
+ const removeCartItemOperation = (config)=>{
8
+ const removeCartItem = async (args)=>{
9
+ if (!config.storefrontUrl) {
10
+ throw new Error('Shop is not connected');
11
+ }
12
+ const variables = {
13
+ cartId: args.cartId,
14
+ lineIds: [
15
+ args.lineId
16
+ ],
17
+ platform: 3
18
+ };
19
+ const res = await fetch(config.storefrontUrl, {
20
+ ...common.composeRequest(config),
21
+ body: JSON.stringify({
22
+ query: cartLinesRemove_generated.CartLinesRemoveDocument,
23
+ variables
24
+ })
25
+ }).then((res)=>res.json());
26
+ if (!res.data?.cartLinesRemove?.cart) {
27
+ return Promise.reject("Can't remove cart");
28
+ }
29
+ return normalize.normalizeCart(res.data.cartLinesRemove.cart);
30
+ };
31
+ return removeCartItem;
27
32
  };
28
33
 
29
34
  exports.removeCartItemOperation = removeCartItemOperation;
@@ -4,32 +4,35 @@ var cartLinesUpdate_generated = require('../../graphql/mutations/cart-lines-upda
4
4
  var common = require('../../helpers/common.js');
5
5
  var normalize = require('../../helpers/normalize.js');
6
6
 
7
- const updateCartLineOperation = (config) => {
8
- const updateCartLine = async (args) => {
9
- if (!config.storefrontUrl) {
10
- throw new Error('Shop is not connected');
11
- }
12
- const variables = {
13
- cartId: args.cartId,
14
- platform: 3,
15
- lines: [
16
- {
17
- id: args.line.id,
18
- quantity: args.line.quantity,
19
- merchandiseId: args.line.variantId,
20
- },
21
- ],
22
- };
23
- const res = await fetch(config.storefrontUrl, {
24
- ...common.composeRequest(config),
25
- body: JSON.stringify({ query: cartLinesUpdate_generated.CartLinesUpdateDocument, variables }),
26
- }).then((res) => res.json());
27
- if (!res.data?.cartLinesUpdate?.cart) {
28
- return Promise.reject("Can't update cart");
29
- }
30
- return normalize.normalizeCart(res.data.cartLinesUpdate.cart);
31
- };
32
- return updateCartLine;
7
+ const updateCartLineOperation = (config)=>{
8
+ const updateCartLine = async (args)=>{
9
+ if (!config.storefrontUrl) {
10
+ throw new Error('Shop is not connected');
11
+ }
12
+ const variables = {
13
+ cartId: args.cartId,
14
+ platform: 3,
15
+ lines: [
16
+ {
17
+ id: args.line.id,
18
+ quantity: args.line.quantity,
19
+ merchandiseId: args.line.variantId
20
+ }
21
+ ]
22
+ };
23
+ const res = await fetch(config.storefrontUrl, {
24
+ ...common.composeRequest(config),
25
+ body: JSON.stringify({
26
+ query: cartLinesUpdate_generated.CartLinesUpdateDocument,
27
+ variables
28
+ })
29
+ }).then((res)=>res.json());
30
+ if (!res.data?.cartLinesUpdate?.cart) {
31
+ return Promise.reject("Can't update cart");
32
+ }
33
+ return normalize.normalizeCart(res.data.cartLinesUpdate.cart);
34
+ };
35
+ return updateCartLine;
33
36
  };
34
37
 
35
38
  exports.updateCartLineOperation = updateCartLineOperation;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const CartProductVariantSelect = `
3
+ /* eslint-disable */ const CartProductVariantSelect = `
4
4
  fragment CartProductVariantSelect on ProductVariant {
5
5
  id
6
6
  title
@@ -27,7 +27,7 @@ const CartProductVariantSelect = `
27
27
  length
28
28
  isDigital
29
29
  }
30
- `;
30
+ `;
31
31
  const CartLineSelect = `
32
32
  fragment CartLineSelect on CartLine {
33
33
  id
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const CartSelect = `
3
+ /* eslint-disable */ const CartSelect = `
4
4
  fragment CartSelect on Cart {
5
5
  id
6
6
  attribute {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const MediaSelect = `
3
+ /* eslint-disable */ const MediaSelect = `
4
4
  fragment MediaSelect on Media {
5
5
  alt
6
6
  src
@@ -1,15 +1,15 @@
1
1
  'use strict';
2
2
 
3
- const composeRequest = (config) => {
4
- return {
5
- method: 'POST',
6
- headers: {
7
- 'Content-Type': 'application/json',
8
- ...(config.storefrontToken
9
- ? { 'X-Bigcommerce-Storefront-Access-Token': config.storefrontToken }
10
- : {}),
11
- },
12
- };
3
+ const composeRequest = (config)=>{
4
+ return {
5
+ method: 'POST',
6
+ headers: {
7
+ 'Content-Type': 'application/json',
8
+ ...config.storefrontToken ? {
9
+ 'X-Bigcommerce-Storefront-Access-Token': config.storefrontToken
10
+ } : {}
11
+ }
12
+ };
13
13
  };
14
14
 
15
15
  exports.composeRequest = composeRequest;
@@ -1,48 +1,46 @@
1
1
  'use strict';
2
2
 
3
- const normalizeLineItem = (item) => {
4
- const { quantity, id, variant } = item;
5
- return {
6
- id: id ?? '',
7
- quantity,
8
- name: variant?.title ?? '',
9
- productTitle: variant?.product?.title ?? '',
10
- variant: {
11
- id: variant?.id ?? '',
12
- sku: variant?.sku ?? '',
13
- name: variant?.title ?? '',
14
- image: variant?.media?.src
15
- ? {
16
- url: variant.media.src,
17
- }
18
- : undefined,
19
- requiresShipping: false,
20
- price: variant?.price ?? 0,
21
- listPrice: 0,
22
- },
23
- variantId: variant?.id ?? '',
24
- productId: variant?.product?.id ?? '',
25
- path: variant?.product?.handle,
26
- discounts: [],
27
- };
28
- };
29
- const normalizeCart = (cart) => {
30
- return {
31
- createdAt: cart.createdAt,
32
- id: cart.id,
33
- customerId: cart.customer?.id,
34
- email: cart.customer?.email,
35
- lineItems: cart.lines?.edges?.map((node) => normalizeLineItem(node.node)) ?? [],
36
- subtotalPrice: cart.subtotalAmount ? +cart.subtotalAmount : 0,
37
- totalPrice: cart.totalAmount ? +cart.totalAmount : 0,
38
- currency: {
39
- code: cart.totalAmountCurrencyCode,
40
- },
41
- taxesIncluded: true,
42
- discounts: [],
43
- lineItemsSubtotalPrice: cart.subtotalAmount ? +cart.subtotalAmount : 0,
44
- checkoutUrl: cart.checkoutUrl,
45
- };
3
+ const normalizeLineItem = (item)=>{
4
+ const { quantity , id , variant } = item;
5
+ return {
6
+ id: id ?? '',
7
+ quantity,
8
+ name: variant?.title ?? '',
9
+ productTitle: variant?.product?.title ?? '',
10
+ variant: {
11
+ id: variant?.id ?? '',
12
+ sku: variant?.sku ?? '',
13
+ name: variant?.title ?? '',
14
+ image: variant?.media?.src ? {
15
+ url: variant.media.src
16
+ } : undefined,
17
+ requiresShipping: false,
18
+ price: variant?.price ?? 0,
19
+ listPrice: 0
20
+ },
21
+ variantId: variant?.id ?? '',
22
+ productId: variant?.product?.id ?? '',
23
+ path: variant?.product?.handle,
24
+ discounts: []
25
+ };
26
+ };
27
+ const normalizeCart = (cart)=>{
28
+ return {
29
+ createdAt: cart.createdAt,
30
+ id: cart.id,
31
+ customerId: cart.customer?.id,
32
+ email: cart.customer?.email,
33
+ lineItems: cart.lines?.edges?.map((node)=>normalizeLineItem(node.node)) ?? [],
34
+ subtotalPrice: cart.subtotalAmount ? +cart.subtotalAmount : 0,
35
+ totalPrice: cart.totalAmount ? +cart.totalAmount : 0,
36
+ currency: {
37
+ code: cart.totalAmountCurrencyCode
38
+ },
39
+ taxesIncluded: true,
40
+ discounts: [],
41
+ lineItemsSubtotalPrice: cart.subtotalAmount ? +cart.subtotalAmount : 0,
42
+ checkoutUrl: cart.checkoutUrl
43
+ };
46
44
  };
47
45
 
48
46
  exports.normalizeCart = normalizeCart;
@@ -2,29 +2,32 @@ import { CartLinesAddDocument } from '../../graphql/mutations/cart-lines-add.gen
2
2
  import { composeRequest } from '../../helpers/common.js';
3
3
  import { normalizeCart } from '../../helpers/normalize.js';
4
4
 
5
- const addToCartOperation = (config) => {
6
- const addToCart = async (args) => {
7
- if (!config.storefrontUrl) {
8
- throw new Error('Shop is not connected');
9
- }
10
- const variables = {
11
- cartId: args.cartId,
12
- platform: 3,
13
- lines: args.lines.map((v) => ({
14
- quantity: v.quantity,
15
- merchandiseId: v.variantId,
16
- })),
17
- };
18
- const res = await fetch(config.storefrontUrl, {
19
- ...composeRequest(config),
20
- body: JSON.stringify({ query: CartLinesAddDocument, variables }),
21
- }).then((res) => res.json());
22
- if (!res.data?.cartLinesAdd?.cart) {
23
- return Promise.reject("Can't add to cart");
24
- }
25
- return normalizeCart(res.data.cartLinesAdd.cart);
26
- };
27
- return addToCart;
5
+ const addToCartOperation = (config)=>{
6
+ const addToCart = async (args)=>{
7
+ if (!config.storefrontUrl) {
8
+ throw new Error('Shop is not connected');
9
+ }
10
+ const variables = {
11
+ cartId: args.cartId,
12
+ platform: 3,
13
+ lines: args.lines.map((v)=>({
14
+ quantity: v.quantity,
15
+ merchandiseId: v.variantId
16
+ }))
17
+ };
18
+ const res = await fetch(config.storefrontUrl, {
19
+ ...composeRequest(config),
20
+ body: JSON.stringify({
21
+ query: CartLinesAddDocument,
22
+ variables
23
+ })
24
+ }).then((res)=>res.json());
25
+ if (!res.data?.cartLinesAdd?.cart) {
26
+ return Promise.reject("Can't add to cart");
27
+ }
28
+ return normalizeCart(res.data.cartLinesAdd.cart);
29
+ };
30
+ return addToCart;
28
31
  };
29
32
 
30
33
  export { addToCartOperation };
@@ -2,29 +2,32 @@ import { CartCreateDocument } from '../../graphql/mutations/cart-create.generate
2
2
  import { composeRequest } from '../../helpers/common.js';
3
3
  import { normalizeCart } from '../../helpers/normalize.js';
4
4
 
5
- const createCartOperation = (config) => {
6
- const createCart = async (args) => {
7
- if (!config.storefrontUrl) {
8
- throw new Error('Shop is not connected');
9
- }
10
- const variables = {
11
- input: {
12
- lines: args.items.map((v) => ({
13
- quantity: v.quantity ?? 1,
14
- merchandiseId: v.variantId,
15
- })),
16
- },
17
- };
18
- const res = await fetch(config.storefrontUrl, {
19
- ...composeRequest(config),
20
- body: JSON.stringify({ query: CartCreateDocument, variables }),
21
- }).then((res) => res.json());
22
- if (!res.data?.cartCreate?.cart) {
23
- return Promise.reject("Can't create cart");
24
- }
25
- return normalizeCart(res.data.cartCreate.cart);
26
- };
27
- return createCart;
5
+ const createCartOperation = (config)=>{
6
+ const createCart = async (args)=>{
7
+ if (!config.storefrontUrl) {
8
+ throw new Error('Shop is not connected');
9
+ }
10
+ const variables = {
11
+ input: {
12
+ lines: args.items.map((v)=>({
13
+ quantity: v.quantity ?? 1,
14
+ merchandiseId: v.variantId
15
+ }))
16
+ }
17
+ };
18
+ const res = await fetch(config.storefrontUrl, {
19
+ ...composeRequest(config),
20
+ body: JSON.stringify({
21
+ query: CartCreateDocument,
22
+ variables
23
+ })
24
+ }).then((res)=>res.json());
25
+ if (!res.data?.cartCreate?.cart) {
26
+ return Promise.reject("Can't create cart");
27
+ }
28
+ return normalizeCart(res.data.cartCreate.cart);
29
+ };
30
+ return createCart;
28
31
  };
29
32
 
30
33
  export { createCartOperation };
@@ -2,24 +2,27 @@ import { CartDocument } from '../../graphql/queries/cart.generated.js';
2
2
  import { composeRequest } from '../../helpers/common.js';
3
3
  import { normalizeCart } from '../../helpers/normalize.js';
4
4
 
5
- const getCartOperation = (config) => {
6
- const getCart = async (args) => {
7
- if (!config.storefrontUrl) {
8
- throw new Error('Shop is not connected');
9
- }
10
- const variables = {
11
- id: args.cartId,
12
- };
13
- const res = await fetch(config.storefrontUrl, {
14
- ...composeRequest(config),
15
- body: JSON.stringify({ query: CartDocument, variables }),
16
- }).then((res) => res.json());
17
- if (!res.data?.cart) {
18
- return undefined;
19
- }
20
- return normalizeCart(res.data.cart);
21
- };
22
- return getCart;
5
+ const getCartOperation = (config)=>{
6
+ const getCart = async (args)=>{
7
+ if (!config.storefrontUrl) {
8
+ throw new Error('Shop is not connected');
9
+ }
10
+ const variables = {
11
+ id: args.cartId
12
+ };
13
+ const res = await fetch(config.storefrontUrl, {
14
+ ...composeRequest(config),
15
+ body: JSON.stringify({
16
+ query: CartDocument,
17
+ variables
18
+ })
19
+ }).then((res)=>res.json());
20
+ if (!res.data?.cart) {
21
+ return undefined;
22
+ }
23
+ return normalizeCart(res.data.cart);
24
+ };
25
+ return getCart;
23
26
  };
24
27
 
25
28
  export { getCartOperation };
@@ -2,26 +2,31 @@ import { CartLinesRemoveDocument } from '../../graphql/mutations/cart-lines-remo
2
2
  import { composeRequest } from '../../helpers/common.js';
3
3
  import { normalizeCart } from '../../helpers/normalize.js';
4
4
 
5
- const removeCartItemOperation = (config) => {
6
- const removeCartItem = async (args) => {
7
- if (!config.storefrontUrl) {
8
- throw new Error('Shop is not connected');
9
- }
10
- const variables = {
11
- cartId: args.cartId,
12
- lineIds: [args.lineId],
13
- platform: 3,
14
- };
15
- const res = await fetch(config.storefrontUrl, {
16
- ...composeRequest(config),
17
- body: JSON.stringify({ query: CartLinesRemoveDocument, variables }),
18
- }).then((res) => res.json());
19
- if (!res.data?.cartLinesRemove?.cart) {
20
- return Promise.reject("Can't remove cart");
21
- }
22
- return normalizeCart(res.data.cartLinesRemove.cart);
23
- };
24
- return removeCartItem;
5
+ const removeCartItemOperation = (config)=>{
6
+ const removeCartItem = async (args)=>{
7
+ if (!config.storefrontUrl) {
8
+ throw new Error('Shop is not connected');
9
+ }
10
+ const variables = {
11
+ cartId: args.cartId,
12
+ lineIds: [
13
+ args.lineId
14
+ ],
15
+ platform: 3
16
+ };
17
+ const res = await fetch(config.storefrontUrl, {
18
+ ...composeRequest(config),
19
+ body: JSON.stringify({
20
+ query: CartLinesRemoveDocument,
21
+ variables
22
+ })
23
+ }).then((res)=>res.json());
24
+ if (!res.data?.cartLinesRemove?.cart) {
25
+ return Promise.reject("Can't remove cart");
26
+ }
27
+ return normalizeCart(res.data.cartLinesRemove.cart);
28
+ };
29
+ return removeCartItem;
25
30
  };
26
31
 
27
32
  export { removeCartItemOperation };
@@ -2,32 +2,35 @@ import { CartLinesUpdateDocument } from '../../graphql/mutations/cart-lines-upda
2
2
  import { composeRequest } from '../../helpers/common.js';
3
3
  import { normalizeCart } from '../../helpers/normalize.js';
4
4
 
5
- const updateCartLineOperation = (config) => {
6
- const updateCartLine = async (args) => {
7
- if (!config.storefrontUrl) {
8
- throw new Error('Shop is not connected');
9
- }
10
- const variables = {
11
- cartId: args.cartId,
12
- platform: 3,
13
- lines: [
14
- {
15
- id: args.line.id,
16
- quantity: args.line.quantity,
17
- merchandiseId: args.line.variantId,
18
- },
19
- ],
20
- };
21
- const res = await fetch(config.storefrontUrl, {
22
- ...composeRequest(config),
23
- body: JSON.stringify({ query: CartLinesUpdateDocument, variables }),
24
- }).then((res) => res.json());
25
- if (!res.data?.cartLinesUpdate?.cart) {
26
- return Promise.reject("Can't update cart");
27
- }
28
- return normalizeCart(res.data.cartLinesUpdate.cart);
29
- };
30
- return updateCartLine;
5
+ const updateCartLineOperation = (config)=>{
6
+ const updateCartLine = async (args)=>{
7
+ if (!config.storefrontUrl) {
8
+ throw new Error('Shop is not connected');
9
+ }
10
+ const variables = {
11
+ cartId: args.cartId,
12
+ platform: 3,
13
+ lines: [
14
+ {
15
+ id: args.line.id,
16
+ quantity: args.line.quantity,
17
+ merchandiseId: args.line.variantId
18
+ }
19
+ ]
20
+ };
21
+ const res = await fetch(config.storefrontUrl, {
22
+ ...composeRequest(config),
23
+ body: JSON.stringify({
24
+ query: CartLinesUpdateDocument,
25
+ variables
26
+ })
27
+ }).then((res)=>res.json());
28
+ if (!res.data?.cartLinesUpdate?.cart) {
29
+ return Promise.reject("Can't update cart");
30
+ }
31
+ return normalizeCart(res.data.cartLinesUpdate.cart);
32
+ };
33
+ return updateCartLine;
31
34
  };
32
35
 
33
36
  export { updateCartLineOperation };
@@ -1,4 +1,4 @@
1
- const CartProductVariantSelect = `
1
+ /* eslint-disable */ const CartProductVariantSelect = `
2
2
  fragment CartProductVariantSelect on ProductVariant {
3
3
  id
4
4
  title
@@ -25,7 +25,7 @@ const CartProductVariantSelect = `
25
25
  length
26
26
  isDigital
27
27
  }
28
- `;
28
+ `;
29
29
  const CartLineSelect = `
30
30
  fragment CartLineSelect on CartLine {
31
31
  id
@@ -1,4 +1,4 @@
1
- const CartSelect = `
1
+ /* eslint-disable */ const CartSelect = `
2
2
  fragment CartSelect on Cart {
3
3
  id
4
4
  attribute {
@@ -1,4 +1,4 @@
1
- const MediaSelect = `
1
+ /* eslint-disable */ const MediaSelect = `
2
2
  fragment MediaSelect on Media {
3
3
  alt
4
4
  src
@@ -1,13 +1,13 @@
1
- const composeRequest = (config) => {
2
- return {
3
- method: 'POST',
4
- headers: {
5
- 'Content-Type': 'application/json',
6
- ...(config.storefrontToken
7
- ? { 'X-Bigcommerce-Storefront-Access-Token': config.storefrontToken }
8
- : {}),
9
- },
10
- };
1
+ const composeRequest = (config)=>{
2
+ return {
3
+ method: 'POST',
4
+ headers: {
5
+ 'Content-Type': 'application/json',
6
+ ...config.storefrontToken ? {
7
+ 'X-Bigcommerce-Storefront-Access-Token': config.storefrontToken
8
+ } : {}
9
+ }
10
+ };
11
11
  };
12
12
 
13
13
  export { composeRequest };
@@ -1,46 +1,44 @@
1
- const normalizeLineItem = (item) => {
2
- const { quantity, id, variant } = item;
3
- return {
4
- id: id ?? '',
5
- quantity,
6
- name: variant?.title ?? '',
7
- productTitle: variant?.product?.title ?? '',
8
- variant: {
9
- id: variant?.id ?? '',
10
- sku: variant?.sku ?? '',
11
- name: variant?.title ?? '',
12
- image: variant?.media?.src
13
- ? {
14
- url: variant.media.src,
15
- }
16
- : undefined,
17
- requiresShipping: false,
18
- price: variant?.price ?? 0,
19
- listPrice: 0,
20
- },
21
- variantId: variant?.id ?? '',
22
- productId: variant?.product?.id ?? '',
23
- path: variant?.product?.handle,
24
- discounts: [],
25
- };
26
- };
27
- const normalizeCart = (cart) => {
28
- return {
29
- createdAt: cart.createdAt,
30
- id: cart.id,
31
- customerId: cart.customer?.id,
32
- email: cart.customer?.email,
33
- lineItems: cart.lines?.edges?.map((node) => normalizeLineItem(node.node)) ?? [],
34
- subtotalPrice: cart.subtotalAmount ? +cart.subtotalAmount : 0,
35
- totalPrice: cart.totalAmount ? +cart.totalAmount : 0,
36
- currency: {
37
- code: cart.totalAmountCurrencyCode,
38
- },
39
- taxesIncluded: true,
40
- discounts: [],
41
- lineItemsSubtotalPrice: cart.subtotalAmount ? +cart.subtotalAmount : 0,
42
- checkoutUrl: cart.checkoutUrl,
43
- };
1
+ const normalizeLineItem = (item)=>{
2
+ const { quantity , id , variant } = item;
3
+ return {
4
+ id: id ?? '',
5
+ quantity,
6
+ name: variant?.title ?? '',
7
+ productTitle: variant?.product?.title ?? '',
8
+ variant: {
9
+ id: variant?.id ?? '',
10
+ sku: variant?.sku ?? '',
11
+ name: variant?.title ?? '',
12
+ image: variant?.media?.src ? {
13
+ url: variant.media.src
14
+ } : undefined,
15
+ requiresShipping: false,
16
+ price: variant?.price ?? 0,
17
+ listPrice: 0
18
+ },
19
+ variantId: variant?.id ?? '',
20
+ productId: variant?.product?.id ?? '',
21
+ path: variant?.product?.handle,
22
+ discounts: []
23
+ };
24
+ };
25
+ const normalizeCart = (cart)=>{
26
+ return {
27
+ createdAt: cart.createdAt,
28
+ id: cart.id,
29
+ customerId: cart.customer?.id,
30
+ email: cart.customer?.email,
31
+ lineItems: cart.lines?.edges?.map((node)=>normalizeLineItem(node.node)) ?? [],
32
+ subtotalPrice: cart.subtotalAmount ? +cart.subtotalAmount : 0,
33
+ totalPrice: cart.totalAmount ? +cart.totalAmount : 0,
34
+ currency: {
35
+ code: cart.totalAmountCurrencyCode
36
+ },
37
+ taxesIncluded: true,
38
+ discounts: [],
39
+ lineItemsSubtotalPrice: cart.subtotalAmount ? +cart.subtotalAmount : 0,
40
+ checkoutUrl: cart.checkoutUrl
41
+ };
44
42
  };
45
43
 
46
44
  export { normalizeCart };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/adapter-bigcommerce",
3
- "version": "1.0.0",
3
+ "version": "1.11.1-staging-ecd90c73",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",
@@ -23,7 +23,7 @@
23
23
  "typegen": "graphql-codegen --config codegen/codegen.yml"
24
24
  },
25
25
  "devDependencies": {
26
- "@gem-sdk/adapter-common": "*"
26
+ "@gem-sdk/adapter-common": "1.11.1-staging-ecd90c73"
27
27
  },
28
28
  "module": "dist/esm/index.js",
29
29
  "types": "dist/types/index.d.ts",