@brytdesigns/shopify-ajax-cart-api 1.0.20 → 1.0.21

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.
@@ -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 * as Schema from \"effect/Schema\";\nimport { AjaxClientResponse } from \"./effect/data/index.js\";\nimport { CartOutput } 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.runPromise(Schema.decodeUnknown(CartOutput)(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"]}
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 * as Schema from \"effect/Schema\";\nimport { AjaxClientResponse } from \"./effect/data/index.js\";\nimport { CartOutput } 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(CartOutput)(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.20",
3
+ "version": "1.0.21",
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",