@brytdesigns/shopify-ajax-cart-api 1.0.2 → 1.0.4

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,8 +4,11 @@ import * as Layer from 'effect/Layer';
4
4
  import * as LogLevel from 'effect/LogLevel';
5
5
  import * as API from './effect/index.js';
6
6
  import * as AjaxRequest from './effect/services/AjaxRequest.js';
7
+ import * as Schema from 'effect/Schema';
7
8
  import { AjaxClientResponse } from './effect/data/index.js';
9
+ import { Cart } from './effect/schema.js';
8
10
 
11
+ const validateCart = (cart) => Effect.runSync(Schema.decodeUnknown(Cart)(cart));
9
12
  const createAjaxCartApi = ({ debug = false }) => {
10
13
  let baseLayer = Layer.empty;
11
14
  let minimumLogLevel = LogLevel.None;
@@ -183,6 +186,6 @@ const createAjaxCartApi = ({ debug = false }) => {
183
186
  };
184
187
  };
185
188
 
186
- export { createAjaxCartApi };
189
+ export { createAjaxCartApi, validateCart };
187
190
  //# sourceMappingURL=index.js.map
188
191
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import * as Effect from \"effect/Effect\";\nimport * as Logger from \"effect/Logger\";\nimport * as Layer from \"effect/Layer\";\nimport * as LogLevel from \"effect/LogLevel\";\nimport * as API from \"./effect/index.js\";\nimport * as AjaxRequest from \"./effect/services/AjaxRequest.js\";\nimport { AjaxClientResponse } from \"./effect/data/index.js\";\n\nexport namespace createAjaxCartClient {\n export type Options = {\n debug?: boolean;\n // logger?: <Message, Output>(\n // options: Logger.Logger.Options<Message>\n // ) => Output;\n };\n\n export type RequestOptions = {\n signal?: AbortSignal;\n };\n}\n\nexport const createAjaxCartApi = ({ debug = false }) => {\n let baseLayer = Layer.empty;\n let minimumLogLevel = LogLevel.None;\n let loggerLayer = Logger.pretty;\n\n if (debug) {\n baseLayer = Layer.mergeAll(loggerLayer);\n minimumLogLevel = LogLevel.All;\n }\n\n // if (logger) {\n // loggerLayer = Logger.replace(Logger.defaultLogger, Logger.make(logger));\n // baseLayer = Layer.mergeAll(loggerLayer);\n // minimumLogLevel = LogLevel.All;\n // }\n\n const ajaxLayer = Layer.mergeAll(baseLayer, AjaxRequest.Default);\n\n return {\n add: (\n input: API.add.Input,\n options?: createAjaxCartClient.RequestOptions,\n ) =>\n Effect.runPromise(\n API.add(input).pipe(\n Logger.withMinimumLogLevel(minimumLogLevel),\n Effect.provide(ajaxLayer),\n Effect.catchAll((error) => {\n if (\n error._tag === \"ParseError\" ||\n error._tag === \"RequestError\" ||\n error._tag === \"ResponseError\" ||\n error._tag ===\n \"@brytdesigns/hybrid-cart-client/InvalidAjaxMethodError\"\n ) {\n return Effect.fail(\n new Error(error.message, {\n cause: error.cause,\n }),\n );\n }\n if (error._tag === \"HttpBodyError\") {\n const reason = error.reason;\n if (reason._tag === \"JsonError\") {\n return Effect.fail(new Error(\"Failed to parse JSON response\"));\n }\n if (reason._tag === \"SchemaError\") {\n return Effect.fail(\n new Error(reason.error.message, {\n cause: reason.error.cause,\n }),\n );\n }\n }\n return Effect.fail(new Error(error.toString()));\n }),\n ),\n {\n signal: options?.signal,\n },\n ),\n change: (\n input: API.change.Input,\n options?: createAjaxCartClient.RequestOptions,\n ) =>\n Effect.runPromise(\n API.change(input).pipe(\n Logger.withMinimumLogLevel(minimumLogLevel),\n Effect.provide(ajaxLayer),\n Effect.catchAll((error) => {\n if (\n error._tag === \"ParseError\" ||\n error._tag === \"RequestError\" ||\n error._tag === \"ResponseError\" ||\n error._tag ===\n \"@brytdesigns/hybrid-cart-client/InvalidAjaxMethodError\"\n ) {\n return Effect.fail(\n new Error(error.message, {\n cause: error.cause,\n }),\n );\n }\n if (error._tag === \"HttpBodyError\") {\n const reason = error.reason;\n if (reason._tag === \"JsonError\") {\n return Effect.fail(new Error(\"Failed to parse JSON response\"));\n }\n if (reason._tag === \"SchemaError\") {\n return Effect.fail(\n new Error(reason.error.message, {\n cause: reason.error.cause,\n }),\n );\n }\n }\n return Effect.fail(new Error(error.toString()));\n }),\n ),\n {\n signal: options?.signal,\n },\n ),\n clear: (\n input: API.clear.Input,\n options?: createAjaxCartClient.RequestOptions,\n ) =>\n Effect.runPromise(\n API.clear(input).pipe(\n Logger.withMinimumLogLevel(minimumLogLevel),\n Effect.provide(ajaxLayer),\n Effect.catchAll((error) => {\n if (\n error._tag === \"ParseError\" ||\n error._tag === \"RequestError\" ||\n error._tag === \"ResponseError\" ||\n error._tag ===\n \"@brytdesigns/hybrid-cart-client/InvalidAjaxMethodError\"\n ) {\n return Effect.fail(\n new Error(error.message, {\n cause: error.cause,\n }),\n );\n }\n if (error._tag === \"HttpBodyError\") {\n const reason = error.reason;\n if (reason._tag === \"JsonError\") {\n return Effect.fail(new Error(\"Failed to parse JSON response\"));\n }\n if (reason._tag === \"SchemaError\") {\n return Effect.fail(\n new Error(reason.error.message, {\n cause: reason.error.cause,\n }),\n );\n }\n }\n return Effect.fail(new Error(error.toString()));\n }),\n ),\n {\n signal: options?.signal,\n },\n ),\n\n get: (\n input: API.get.Input,\n options?: createAjaxCartClient.RequestOptions,\n ) =>\n Effect.runPromise(\n API.get(input).pipe(\n Logger.withMinimumLogLevel(minimumLogLevel),\n Effect.provide(ajaxLayer),\n Effect.catchAll((error) => {\n if (\n error._tag === \"ParseError\" ||\n error._tag === \"RequestError\" ||\n error._tag === \"ResponseError\" ||\n error._tag ===\n \"@brytdesigns/hybrid-cart-client/InvalidAjaxMethodError\"\n ) {\n return Effect.fail(\n new Error(error.message, {\n cause: error.cause,\n }),\n );\n }\n if (error._tag === \"HttpBodyError\") {\n const reason = error.reason;\n if (reason._tag === \"JsonError\") {\n return Effect.fail(new Error(\"Failed to parse JSON response\"));\n }\n if (reason._tag === \"SchemaError\") {\n return Effect.fail(\n new Error(reason.error.message, {\n cause: reason.error.cause,\n }),\n );\n }\n }\n return Effect.fail(new Error(error.toString()));\n }),\n ),\n {\n signal: options?.signal,\n },\n ),\n\n update: (\n input: API.update.Input,\n options?: createAjaxCartClient.RequestOptions,\n ) =>\n Effect.runPromise(\n API.update(input).pipe(\n Logger.withMinimumLogLevel(minimumLogLevel),\n Effect.provide(ajaxLayer),\n Effect.catchAll((error) => {\n if (\n error._tag === \"ParseError\" ||\n error._tag === \"RequestError\" ||\n error._tag === \"ResponseError\" ||\n error._tag ===\n \"@brytdesigns/hybrid-cart-client/InvalidAjaxMethodError\"\n ) {\n return Effect.succeed(\n AjaxClientResponse.make({\n error: {\n status: 400,\n message: error.message,\n description: \"Something went wrong\",\n },\n }),\n );\n }\n if (error._tag === \"HttpBodyError\") {\n const reason = error.reason;\n if (reason._tag === \"JsonError\") {\n return Effect.fail(new Error(\"Failed to parse JSON response\"));\n }\n if (reason._tag === \"SchemaError\") {\n return Effect.fail(\n new Error(reason.error.message, {\n cause: reason.error.cause,\n }),\n );\n }\n }\n return Effect.fail(new Error(error.toString()));\n }),\n ),\n {\n signal: options?.signal,\n },\n ),\n };\n};\n"]}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;AAuBa,MAAA,YAAA,GAAe,CAAC,IAAA,KAC3B,MAAO,CAAA,OAAA,CAAQ,OAAO,aAAc,CAAA,IAAI,CAAE,CAAA,IAAI,CAAC;AAE1C,MAAM,iBAAoB,GAAA,CAAC,EAAE,KAAA,GAAQ,OAAY,KAAA;AACtD,EAAA,IAAI,YAAY,KAAM,CAAA,KAAA;AACtB,EAAA,IAAI,kBAAkB,QAAS,CAAA,IAAA;AAC/B,EAAA,IAAI,cAAc,MAAO,CAAA,MAAA;AAEzB,EAAA,IAAI,KAAO,EAAA;AACT,IAAY,SAAA,GAAA,KAAA,CAAM,SAAS,WAAW,CAAA;AACtC,IAAA,eAAA,GAAkB,QAAS,CAAA,GAAA;AAAA;AAS7B,EAAA,MAAM,SAAY,GAAA,KAAA,CAAM,QAAS,CAAA,SAAA,EAAW,YAAY,OAAO,CAAA;AAE/D,EAAO,OAAA;AAAA,IACL,GAAK,EAAA,CACH,KACA,EAAA,OAAA,KAEA,MAAO,CAAA,UAAA;AAAA,MACL,GAAA,CAAI,GAAI,CAAA,KAAK,CAAE,CAAA,IAAA;AAAA,QACb,MAAA,CAAO,oBAAoB,eAAe,CAAA;AAAA,QAC1C,MAAA,CAAO,QAAQ,SAAS,CAAA;AAAA,QACxB,MAAA,CAAO,QAAS,CAAA,CAAC,KAAU,KAAA;AACzB,UACE,IAAA,KAAA,CAAM,IAAS,KAAA,YAAA,IACf,KAAM,CAAA,IAAA,KAAS,cACf,IAAA,KAAA,CAAM,IAAS,KAAA,eAAA,IACf,KAAM,CAAA,IAAA,KACJ,wDACF,EAAA;AACA,YAAA,OAAO,MAAO,CAAA,IAAA;AAAA,cACZ,IAAI,KAAM,CAAA,KAAA,CAAM,OAAS,EAAA;AAAA,gBACvB,OAAO,KAAM,CAAA;AAAA,eACd;AAAA,aACH;AAAA;AAEF,UAAI,IAAA,KAAA,CAAM,SAAS,eAAiB,EAAA;AAClC,YAAA,MAAM,SAAS,KAAM,CAAA,MAAA;AACrB,YAAI,IAAA,MAAA,CAAO,SAAS,WAAa,EAAA;AAC/B,cAAA,OAAO,MAAO,CAAA,IAAA,CAAK,IAAI,KAAA,CAAM,+BAA+B,CAAC,CAAA;AAAA;AAE/D,YAAI,IAAA,MAAA,CAAO,SAAS,aAAe,EAAA;AACjC,cAAA,OAAO,MAAO,CAAA,IAAA;AAAA,gBACZ,IAAI,KAAA,CAAM,MAAO,CAAA,KAAA,CAAM,OAAS,EAAA;AAAA,kBAC9B,KAAA,EAAO,OAAO,KAAM,CAAA;AAAA,iBACrB;AAAA,eACH;AAAA;AACF;AAEF,UAAA,OAAO,OAAO,IAAK,CAAA,IAAI,MAAM,KAAM,CAAA,QAAA,EAAU,CAAC,CAAA;AAAA,SAC/C;AAAA,OACH;AAAA,MACA;AAAA,QACE,QAAQ,OAAS,EAAA;AAAA;AACnB,KACF;AAAA,IACF,MAAQ,EAAA,CACN,KACA,EAAA,OAAA,KAEA,MAAO,CAAA,UAAA;AAAA,MACL,GAAA,CAAI,MAAO,CAAA,KAAK,CAAE,CAAA,IAAA;AAAA,QAChB,MAAA,CAAO,oBAAoB,eAAe,CAAA;AAAA,QAC1C,MAAA,CAAO,QAAQ,SAAS,CAAA;AAAA,QACxB,MAAA,CAAO,QAAS,CAAA,CAAC,KAAU,KAAA;AACzB,UACE,IAAA,KAAA,CAAM,IAAS,KAAA,YAAA,IACf,KAAM,CAAA,IAAA,KAAS,cACf,IAAA,KAAA,CAAM,IAAS,KAAA,eAAA,IACf,KAAM,CAAA,IAAA,KACJ,wDACF,EAAA;AACA,YAAA,OAAO,MAAO,CAAA,IAAA;AAAA,cACZ,IAAI,KAAM,CAAA,KAAA,CAAM,OAAS,EAAA;AAAA,gBACvB,OAAO,KAAM,CAAA;AAAA,eACd;AAAA,aACH;AAAA;AAEF,UAAI,IAAA,KAAA,CAAM,SAAS,eAAiB,EAAA;AAClC,YAAA,MAAM,SAAS,KAAM,CAAA,MAAA;AACrB,YAAI,IAAA,MAAA,CAAO,SAAS,WAAa,EAAA;AAC/B,cAAA,OAAO,MAAO,CAAA,IAAA,CAAK,IAAI,KAAA,CAAM,+BAA+B,CAAC,CAAA;AAAA;AAE/D,YAAI,IAAA,MAAA,CAAO,SAAS,aAAe,EAAA;AACjC,cAAA,OAAO,MAAO,CAAA,IAAA;AAAA,gBACZ,IAAI,KAAA,CAAM,MAAO,CAAA,KAAA,CAAM,OAAS,EAAA;AAAA,kBAC9B,KAAA,EAAO,OAAO,KAAM,CAAA;AAAA,iBACrB;AAAA,eACH;AAAA;AACF;AAEF,UAAA,OAAO,OAAO,IAAK,CAAA,IAAI,MAAM,KAAM,CAAA,QAAA,EAAU,CAAC,CAAA;AAAA,SAC/C;AAAA,OACH;AAAA,MACA;AAAA,QACE,QAAQ,OAAS,EAAA;AAAA;AACnB,KACF;AAAA,IACF,KAAO,EAAA,CACL,KACA,EAAA,OAAA,KAEA,MAAO,CAAA,UAAA;AAAA,MACL,GAAA,CAAI,KAAM,CAAA,KAAK,CAAE,CAAA,IAAA;AAAA,QACf,MAAA,CAAO,oBAAoB,eAAe,CAAA;AAAA,QAC1C,MAAA,CAAO,QAAQ,SAAS,CAAA;AAAA,QACxB,MAAA,CAAO,QAAS,CAAA,CAAC,KAAU,KAAA;AACzB,UACE,IAAA,KAAA,CAAM,IAAS,KAAA,YAAA,IACf,KAAM,CAAA,IAAA,KAAS,cACf,IAAA,KAAA,CAAM,IAAS,KAAA,eAAA,IACf,KAAM,CAAA,IAAA,KACJ,wDACF,EAAA;AACA,YAAA,OAAO,MAAO,CAAA,IAAA;AAAA,cACZ,IAAI,KAAM,CAAA,KAAA,CAAM,OAAS,EAAA;AAAA,gBACvB,OAAO,KAAM,CAAA;AAAA,eACd;AAAA,aACH;AAAA;AAEF,UAAI,IAAA,KAAA,CAAM,SAAS,eAAiB,EAAA;AAClC,YAAA,MAAM,SAAS,KAAM,CAAA,MAAA;AACrB,YAAI,IAAA,MAAA,CAAO,SAAS,WAAa,EAAA;AAC/B,cAAA,OAAO,MAAO,CAAA,IAAA,CAAK,IAAI,KAAA,CAAM,+BAA+B,CAAC,CAAA;AAAA;AAE/D,YAAI,IAAA,MAAA,CAAO,SAAS,aAAe,EAAA;AACjC,cAAA,OAAO,MAAO,CAAA,IAAA;AAAA,gBACZ,IAAI,KAAA,CAAM,MAAO,CAAA,KAAA,CAAM,OAAS,EAAA;AAAA,kBAC9B,KAAA,EAAO,OAAO,KAAM,CAAA;AAAA,iBACrB;AAAA,eACH;AAAA;AACF;AAEF,UAAA,OAAO,OAAO,IAAK,CAAA,IAAI,MAAM,KAAM,CAAA,QAAA,EAAU,CAAC,CAAA;AAAA,SAC/C;AAAA,OACH;AAAA,MACA;AAAA,QACE,QAAQ,OAAS,EAAA;AAAA;AACnB,KACF;AAAA,IAEF,GAAK,EAAA,CACH,KACA,EAAA,OAAA,KAEA,MAAO,CAAA,UAAA;AAAA,MACL,GAAA,CAAI,GAAI,CAAA,KAAK,CAAE,CAAA,IAAA;AAAA,QACb,MAAA,CAAO,oBAAoB,eAAe,CAAA;AAAA,QAC1C,MAAA,CAAO,QAAQ,SAAS,CAAA;AAAA,QACxB,MAAA,CAAO,QAAS,CAAA,CAAC,KAAU,KAAA;AACzB,UACE,IAAA,KAAA,CAAM,IAAS,KAAA,YAAA,IACf,KAAM,CAAA,IAAA,KAAS,cACf,IAAA,KAAA,CAAM,IAAS,KAAA,eAAA,IACf,KAAM,CAAA,IAAA,KACJ,wDACF,EAAA;AACA,YAAA,OAAO,MAAO,CAAA,IAAA;AAAA,cACZ,IAAI,KAAM,CAAA,KAAA,CAAM,OAAS,EAAA;AAAA,gBACvB,OAAO,KAAM,CAAA;AAAA,eACd;AAAA,aACH;AAAA;AAEF,UAAI,IAAA,KAAA,CAAM,SAAS,eAAiB,EAAA;AAClC,YAAA,MAAM,SAAS,KAAM,CAAA,MAAA;AACrB,YAAI,IAAA,MAAA,CAAO,SAAS,WAAa,EAAA;AAC/B,cAAA,OAAO,MAAO,CAAA,IAAA,CAAK,IAAI,KAAA,CAAM,+BAA+B,CAAC,CAAA;AAAA;AAE/D,YAAI,IAAA,MAAA,CAAO,SAAS,aAAe,EAAA;AACjC,cAAA,OAAO,MAAO,CAAA,IAAA;AAAA,gBACZ,IAAI,KAAA,CAAM,MAAO,CAAA,KAAA,CAAM,OAAS,EAAA;AAAA,kBAC9B,KAAA,EAAO,OAAO,KAAM,CAAA;AAAA,iBACrB;AAAA,eACH;AAAA;AACF;AAEF,UAAA,OAAO,OAAO,IAAK,CAAA,IAAI,MAAM,KAAM,CAAA,QAAA,EAAU,CAAC,CAAA;AAAA,SAC/C;AAAA,OACH;AAAA,MACA;AAAA,QACE,QAAQ,OAAS,EAAA;AAAA;AACnB,KACF;AAAA,IAEF,MAAQ,EAAA,CACN,KACA,EAAA,OAAA,KAEA,MAAO,CAAA,UAAA;AAAA,MACL,GAAA,CAAI,MAAO,CAAA,KAAK,CAAE,CAAA,IAAA;AAAA,QAChB,MAAA,CAAO,oBAAoB,eAAe,CAAA;AAAA,QAC1C,MAAA,CAAO,QAAQ,SAAS,CAAA;AAAA,QACxB,MAAA,CAAO,QAAS,CAAA,CAAC,KAAU,KAAA;AACzB,UACE,IAAA,KAAA,CAAM,IAAS,KAAA,YAAA,IACf,KAAM,CAAA,IAAA,KAAS,cACf,IAAA,KAAA,CAAM,IAAS,KAAA,eAAA,IACf,KAAM,CAAA,IAAA,KACJ,wDACF,EAAA;AACA,YAAA,OAAO,MAAO,CAAA,OAAA;AAAA,cACZ,mBAAmB,IAAK,CAAA;AAAA,gBACtB,KAAO,EAAA;AAAA,kBACL,MAAQ,EAAA,GAAA;AAAA,kBACR,SAAS,KAAM,CAAA,OAAA;AAAA,kBACf,WAAa,EAAA;AAAA;AACf,eACD;AAAA,aACH;AAAA;AAEF,UAAI,IAAA,KAAA,CAAM,SAAS,eAAiB,EAAA;AAClC,YAAA,MAAM,SAAS,KAAM,CAAA,MAAA;AACrB,YAAI,IAAA,MAAA,CAAO,SAAS,WAAa,EAAA;AAC/B,cAAA,OAAO,MAAO,CAAA,IAAA,CAAK,IAAI,KAAA,CAAM,+BAA+B,CAAC,CAAA;AAAA;AAE/D,YAAI,IAAA,MAAA,CAAO,SAAS,aAAe,EAAA;AACjC,cAAA,OAAO,MAAO,CAAA,IAAA;AAAA,gBACZ,IAAI,KAAA,CAAM,MAAO,CAAA,KAAA,CAAM,OAAS,EAAA;AAAA,kBAC9B,KAAA,EAAO,OAAO,KAAM,CAAA;AAAA,iBACrB;AAAA,eACH;AAAA;AACF;AAEF,UAAA,OAAO,OAAO,IAAK,CAAA,IAAI,MAAM,KAAM,CAAA,QAAA,EAAU,CAAC,CAAA;AAAA,SAC/C;AAAA,OACH;AAAA,MACA;AAAA,QACE,QAAQ,OAAS,EAAA;AAAA;AACnB;AACF,GACJ;AACF","file":"index.js","sourcesContent":["import * as Effect from \"effect/Effect\";\nimport * as Logger from \"effect/Logger\";\nimport * as Layer from \"effect/Layer\";\nimport * as LogLevel from \"effect/LogLevel\";\nimport * as API from \"./effect/index.js\";\nimport * as AjaxRequest from \"./effect/services/AjaxRequest.js\";\nimport * as Schema from \"effect/Schema\";\nimport { AjaxClientResponse } from \"./effect/data/index.js\";\nimport { Cart } from \"./effect/schema.js\";\n\nexport namespace createAjaxCartClient {\n export type Options = {\n debug?: boolean;\n // logger?: <Message, Output>(\n // options: Logger.Logger.Options<Message>\n // ) => Output;\n };\n\n export type RequestOptions = {\n signal?: AbortSignal;\n };\n}\n\nexport const validateCart = (cart: unknown) =>\n Effect.runSync(Schema.decodeUnknown(Cart)(cart));\n\nexport const createAjaxCartApi = ({ debug = false }) => {\n let baseLayer = Layer.empty;\n let minimumLogLevel = LogLevel.None;\n let loggerLayer = Logger.pretty;\n\n if (debug) {\n baseLayer = Layer.mergeAll(loggerLayer);\n minimumLogLevel = LogLevel.All;\n }\n\n // if (logger) {\n // loggerLayer = Logger.replace(Logger.defaultLogger, Logger.make(logger));\n // baseLayer = Layer.mergeAll(loggerLayer);\n // minimumLogLevel = LogLevel.All;\n // }\n\n const ajaxLayer = Layer.mergeAll(baseLayer, AjaxRequest.Default);\n\n return {\n add: (\n input: API.add.Input,\n options?: createAjaxCartClient.RequestOptions,\n ) =>\n Effect.runPromise(\n API.add(input).pipe(\n Logger.withMinimumLogLevel(minimumLogLevel),\n Effect.provide(ajaxLayer),\n Effect.catchAll((error) => {\n if (\n error._tag === \"ParseError\" ||\n error._tag === \"RequestError\" ||\n error._tag === \"ResponseError\" ||\n error._tag ===\n \"@brytdesigns/hybrid-cart-client/InvalidAjaxMethodError\"\n ) {\n return Effect.fail(\n new Error(error.message, {\n cause: error.cause,\n }),\n );\n }\n if (error._tag === \"HttpBodyError\") {\n const reason = error.reason;\n if (reason._tag === \"JsonError\") {\n return Effect.fail(new Error(\"Failed to parse JSON response\"));\n }\n if (reason._tag === \"SchemaError\") {\n return Effect.fail(\n new Error(reason.error.message, {\n cause: reason.error.cause,\n }),\n );\n }\n }\n return Effect.fail(new Error(error.toString()));\n }),\n ),\n {\n signal: options?.signal,\n },\n ),\n change: (\n input: API.change.Input,\n options?: createAjaxCartClient.RequestOptions,\n ) =>\n Effect.runPromise(\n API.change(input).pipe(\n Logger.withMinimumLogLevel(minimumLogLevel),\n Effect.provide(ajaxLayer),\n Effect.catchAll((error) => {\n if (\n error._tag === \"ParseError\" ||\n error._tag === \"RequestError\" ||\n error._tag === \"ResponseError\" ||\n error._tag ===\n \"@brytdesigns/hybrid-cart-client/InvalidAjaxMethodError\"\n ) {\n return Effect.fail(\n new Error(error.message, {\n cause: error.cause,\n }),\n );\n }\n if (error._tag === \"HttpBodyError\") {\n const reason = error.reason;\n if (reason._tag === \"JsonError\") {\n return Effect.fail(new Error(\"Failed to parse JSON response\"));\n }\n if (reason._tag === \"SchemaError\") {\n return Effect.fail(\n new Error(reason.error.message, {\n cause: reason.error.cause,\n }),\n );\n }\n }\n return Effect.fail(new Error(error.toString()));\n }),\n ),\n {\n signal: options?.signal,\n },\n ),\n clear: (\n input: API.clear.Input,\n options?: createAjaxCartClient.RequestOptions,\n ) =>\n Effect.runPromise(\n API.clear(input).pipe(\n Logger.withMinimumLogLevel(minimumLogLevel),\n Effect.provide(ajaxLayer),\n Effect.catchAll((error) => {\n if (\n error._tag === \"ParseError\" ||\n error._tag === \"RequestError\" ||\n error._tag === \"ResponseError\" ||\n error._tag ===\n \"@brytdesigns/hybrid-cart-client/InvalidAjaxMethodError\"\n ) {\n return Effect.fail(\n new Error(error.message, {\n cause: error.cause,\n }),\n );\n }\n if (error._tag === \"HttpBodyError\") {\n const reason = error.reason;\n if (reason._tag === \"JsonError\") {\n return Effect.fail(new Error(\"Failed to parse JSON response\"));\n }\n if (reason._tag === \"SchemaError\") {\n return Effect.fail(\n new Error(reason.error.message, {\n cause: reason.error.cause,\n }),\n );\n }\n }\n return Effect.fail(new Error(error.toString()));\n }),\n ),\n {\n signal: options?.signal,\n },\n ),\n\n get: (\n input: API.get.Input,\n options?: createAjaxCartClient.RequestOptions,\n ) =>\n Effect.runPromise(\n API.get(input).pipe(\n Logger.withMinimumLogLevel(minimumLogLevel),\n Effect.provide(ajaxLayer),\n Effect.catchAll((error) => {\n if (\n error._tag === \"ParseError\" ||\n error._tag === \"RequestError\" ||\n error._tag === \"ResponseError\" ||\n error._tag ===\n \"@brytdesigns/hybrid-cart-client/InvalidAjaxMethodError\"\n ) {\n return Effect.fail(\n new Error(error.message, {\n cause: error.cause,\n }),\n );\n }\n if (error._tag === \"HttpBodyError\") {\n const reason = error.reason;\n if (reason._tag === \"JsonError\") {\n return Effect.fail(new Error(\"Failed to parse JSON response\"));\n }\n if (reason._tag === \"SchemaError\") {\n return Effect.fail(\n new Error(reason.error.message, {\n cause: reason.error.cause,\n }),\n );\n }\n }\n return Effect.fail(new Error(error.toString()));\n }),\n ),\n {\n signal: options?.signal,\n },\n ),\n\n update: (\n input: API.update.Input,\n options?: createAjaxCartClient.RequestOptions,\n ) =>\n Effect.runPromise(\n API.update(input).pipe(\n Logger.withMinimumLogLevel(minimumLogLevel),\n Effect.provide(ajaxLayer),\n Effect.catchAll((error) => {\n if (\n error._tag === \"ParseError\" ||\n error._tag === \"RequestError\" ||\n error._tag === \"ResponseError\" ||\n error._tag ===\n \"@brytdesigns/hybrid-cart-client/InvalidAjaxMethodError\"\n ) {\n return Effect.succeed(\n AjaxClientResponse.make({\n error: {\n status: 400,\n message: error.message,\n description: \"Something went wrong\",\n },\n }),\n );\n }\n if (error._tag === \"HttpBodyError\") {\n const reason = error.reason;\n if (reason._tag === \"JsonError\") {\n return Effect.fail(new Error(\"Failed to parse JSON response\"));\n }\n if (reason._tag === \"SchemaError\") {\n return Effect.fail(\n new Error(reason.error.message, {\n cause: reason.error.cause,\n }),\n );\n }\n }\n return Effect.fail(new Error(error.toString()));\n }),\n ),\n {\n signal: options?.signal,\n },\n ),\n };\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brytdesigns/shopify-ajax-cart-api",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "An AJAX cart that integrates with the AJAX Cart API",
5
5
  "main": "./dist/main/index.js",
6
6
  "types": "./dist/main/index.d.ts",