@brytdesigns/shopify-ajax-cart-api 1.0.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/dist/effect/api/CartAdd.js +13 -0
- package/dist/effect/api/CartAdd.js.map +1 -0
- package/dist/effect/api/CartChange.js +13 -0
- package/dist/effect/api/CartChange.js.map +1 -0
- package/dist/effect/api/CartClear.js +13 -0
- package/dist/effect/api/CartClear.js.map +1 -0
- package/dist/effect/api/CartGet.js +13 -0
- package/dist/effect/api/CartGet.js.map +1 -0
- package/dist/effect/api/CartUpdate.js +13 -0
- package/dist/effect/api/CartUpdate.js.map +1 -0
- package/dist/effect/data/AjaxClientResponse.js +9 -0
- package/dist/effect/data/AjaxClientResponse.js.map +1 -0
- package/dist/effect/data/index.js +4 -0
- package/dist/effect/data/index.js.map +1 -0
- package/dist/effect/errors.js +17 -0
- package/dist/effect/errors.js.map +1 -0
- package/dist/effect/index.d.ts +1629 -0
- package/dist/effect/index.js +16 -0
- package/dist/effect/index.js.map +1 -0
- package/dist/effect/logger/LoggerUtils.js +10 -0
- package/dist/effect/logger/LoggerUtils.js.map +1 -0
- package/dist/effect/schema.js +293 -0
- package/dist/effect/schema.js.map +1 -0
- package/dist/effect/services/AjaxRequest.js +106 -0
- package/dist/effect/services/AjaxRequest.js.map +1 -0
- package/dist/main/effect/api/CartAdd.js +13 -0
- package/dist/main/effect/api/CartAdd.js.map +1 -0
- package/dist/main/effect/api/CartChange.js +13 -0
- package/dist/main/effect/api/CartChange.js.map +1 -0
- package/dist/main/effect/api/CartClear.js +13 -0
- package/dist/main/effect/api/CartClear.js.map +1 -0
- package/dist/main/effect/api/CartGet.js +13 -0
- package/dist/main/effect/api/CartGet.js.map +1 -0
- package/dist/main/effect/api/CartUpdate.js +13 -0
- package/dist/main/effect/api/CartUpdate.js.map +1 -0
- package/dist/main/effect/data/AjaxClientResponse.js +9 -0
- package/dist/main/effect/data/AjaxClientResponse.js.map +1 -0
- package/dist/main/effect/data/index.js +4 -0
- package/dist/main/effect/data/index.js.map +1 -0
- package/dist/main/effect/errors.js +17 -0
- package/dist/main/effect/errors.js.map +1 -0
- package/dist/main/effect/index.js +16 -0
- package/dist/main/effect/index.js.map +1 -0
- package/dist/main/effect/logger/LoggerUtils.js +10 -0
- package/dist/main/effect/logger/LoggerUtils.js.map +1 -0
- package/dist/main/effect/schema.js +293 -0
- package/dist/main/effect/schema.js.map +1 -0
- package/dist/main/effect/services/AjaxRequest.js +106 -0
- package/dist/main/effect/services/AjaxRequest.js.map +1 -0
- package/dist/main/index.d.ts +3044 -0
- package/dist/main/index.js +188 -0
- package/dist/main/index.js.map +1 -0
- package/package.json +42 -0
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import * as Effect from 'effect/Effect';
|
|
2
|
+
import * as Logger from 'effect/Logger';
|
|
3
|
+
import * as Layer from 'effect/Layer';
|
|
4
|
+
import * as LogLevel from 'effect/LogLevel';
|
|
5
|
+
import * as API from './effect/index.js';
|
|
6
|
+
import * as AjaxRequest from './effect/services/AjaxRequest.js';
|
|
7
|
+
import { AjaxClientResponse } from './effect/data/index.js';
|
|
8
|
+
|
|
9
|
+
const createAjaxCartApi = ({ debug = false }) => {
|
|
10
|
+
let baseLayer = Layer.empty;
|
|
11
|
+
let minimumLogLevel = LogLevel.None;
|
|
12
|
+
let loggerLayer = Logger.pretty;
|
|
13
|
+
if (debug) {
|
|
14
|
+
baseLayer = Layer.mergeAll(loggerLayer);
|
|
15
|
+
minimumLogLevel = LogLevel.All;
|
|
16
|
+
}
|
|
17
|
+
const ajaxLayer = Layer.mergeAll(baseLayer, AjaxRequest.Default);
|
|
18
|
+
return {
|
|
19
|
+
add: (input, options) => Effect.runPromise(
|
|
20
|
+
API.add(input).pipe(
|
|
21
|
+
Logger.withMinimumLogLevel(minimumLogLevel),
|
|
22
|
+
Effect.provide(ajaxLayer),
|
|
23
|
+
Effect.catchAll((error) => {
|
|
24
|
+
if (error._tag === "ParseError" || error._tag === "RequestError" || error._tag === "ResponseError" || error._tag === "@brytdesigns/hybrid-cart-client/InvalidAjaxMethodError") {
|
|
25
|
+
return Effect.fail(
|
|
26
|
+
new Error(error.message, {
|
|
27
|
+
cause: error.cause
|
|
28
|
+
})
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
if (error._tag === "HttpBodyError") {
|
|
32
|
+
const reason = error.reason;
|
|
33
|
+
if (reason._tag === "JsonError") {
|
|
34
|
+
return Effect.fail(new Error("Failed to parse JSON response"));
|
|
35
|
+
}
|
|
36
|
+
if (reason._tag === "SchemaError") {
|
|
37
|
+
return Effect.fail(
|
|
38
|
+
new Error(reason.error.message, {
|
|
39
|
+
cause: reason.error.cause
|
|
40
|
+
})
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return Effect.fail(new Error(error.toString()));
|
|
45
|
+
})
|
|
46
|
+
),
|
|
47
|
+
{
|
|
48
|
+
signal: options?.signal
|
|
49
|
+
}
|
|
50
|
+
),
|
|
51
|
+
change: (input, options) => Effect.runPromise(
|
|
52
|
+
API.change(input).pipe(
|
|
53
|
+
Logger.withMinimumLogLevel(minimumLogLevel),
|
|
54
|
+
Effect.provide(ajaxLayer),
|
|
55
|
+
Effect.catchAll((error) => {
|
|
56
|
+
if (error._tag === "ParseError" || error._tag === "RequestError" || error._tag === "ResponseError" || error._tag === "@brytdesigns/hybrid-cart-client/InvalidAjaxMethodError") {
|
|
57
|
+
return Effect.fail(
|
|
58
|
+
new Error(error.message, {
|
|
59
|
+
cause: error.cause
|
|
60
|
+
})
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
if (error._tag === "HttpBodyError") {
|
|
64
|
+
const reason = error.reason;
|
|
65
|
+
if (reason._tag === "JsonError") {
|
|
66
|
+
return Effect.fail(new Error("Failed to parse JSON response"));
|
|
67
|
+
}
|
|
68
|
+
if (reason._tag === "SchemaError") {
|
|
69
|
+
return Effect.fail(
|
|
70
|
+
new Error(reason.error.message, {
|
|
71
|
+
cause: reason.error.cause
|
|
72
|
+
})
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return Effect.fail(new Error(error.toString()));
|
|
77
|
+
})
|
|
78
|
+
),
|
|
79
|
+
{
|
|
80
|
+
signal: options?.signal
|
|
81
|
+
}
|
|
82
|
+
),
|
|
83
|
+
clear: (input, options) => Effect.runPromise(
|
|
84
|
+
API.clear(input).pipe(
|
|
85
|
+
Logger.withMinimumLogLevel(minimumLogLevel),
|
|
86
|
+
Effect.provide(ajaxLayer),
|
|
87
|
+
Effect.catchAll((error) => {
|
|
88
|
+
if (error._tag === "ParseError" || error._tag === "RequestError" || error._tag === "ResponseError" || error._tag === "@brytdesigns/hybrid-cart-client/InvalidAjaxMethodError") {
|
|
89
|
+
return Effect.fail(
|
|
90
|
+
new Error(error.message, {
|
|
91
|
+
cause: error.cause
|
|
92
|
+
})
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
if (error._tag === "HttpBodyError") {
|
|
96
|
+
const reason = error.reason;
|
|
97
|
+
if (reason._tag === "JsonError") {
|
|
98
|
+
return Effect.fail(new Error("Failed to parse JSON response"));
|
|
99
|
+
}
|
|
100
|
+
if (reason._tag === "SchemaError") {
|
|
101
|
+
return Effect.fail(
|
|
102
|
+
new Error(reason.error.message, {
|
|
103
|
+
cause: reason.error.cause
|
|
104
|
+
})
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return Effect.fail(new Error(error.toString()));
|
|
109
|
+
})
|
|
110
|
+
),
|
|
111
|
+
{
|
|
112
|
+
signal: options?.signal
|
|
113
|
+
}
|
|
114
|
+
),
|
|
115
|
+
get: (input, options) => Effect.runPromise(
|
|
116
|
+
API.get(input).pipe(
|
|
117
|
+
Logger.withMinimumLogLevel(minimumLogLevel),
|
|
118
|
+
Effect.provide(ajaxLayer),
|
|
119
|
+
Effect.catchAll((error) => {
|
|
120
|
+
if (error._tag === "ParseError" || error._tag === "RequestError" || error._tag === "ResponseError" || error._tag === "@brytdesigns/hybrid-cart-client/InvalidAjaxMethodError") {
|
|
121
|
+
return Effect.fail(
|
|
122
|
+
new Error(error.message, {
|
|
123
|
+
cause: error.cause
|
|
124
|
+
})
|
|
125
|
+
);
|
|
126
|
+
}
|
|
127
|
+
if (error._tag === "HttpBodyError") {
|
|
128
|
+
const reason = error.reason;
|
|
129
|
+
if (reason._tag === "JsonError") {
|
|
130
|
+
return Effect.fail(new Error("Failed to parse JSON response"));
|
|
131
|
+
}
|
|
132
|
+
if (reason._tag === "SchemaError") {
|
|
133
|
+
return Effect.fail(
|
|
134
|
+
new Error(reason.error.message, {
|
|
135
|
+
cause: reason.error.cause
|
|
136
|
+
})
|
|
137
|
+
);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return Effect.fail(new Error(error.toString()));
|
|
141
|
+
})
|
|
142
|
+
),
|
|
143
|
+
{
|
|
144
|
+
signal: options?.signal
|
|
145
|
+
}
|
|
146
|
+
),
|
|
147
|
+
update: (input, options) => Effect.runPromise(
|
|
148
|
+
API.update(input).pipe(
|
|
149
|
+
Logger.withMinimumLogLevel(minimumLogLevel),
|
|
150
|
+
Effect.provide(ajaxLayer),
|
|
151
|
+
Effect.catchAll((error) => {
|
|
152
|
+
if (error._tag === "ParseError" || error._tag === "RequestError" || error._tag === "ResponseError" || error._tag === "@brytdesigns/hybrid-cart-client/InvalidAjaxMethodError") {
|
|
153
|
+
return Effect.succeed(
|
|
154
|
+
AjaxClientResponse.make({
|
|
155
|
+
error: {
|
|
156
|
+
status: 400,
|
|
157
|
+
message: error.message,
|
|
158
|
+
description: "Something went wrong"
|
|
159
|
+
}
|
|
160
|
+
})
|
|
161
|
+
);
|
|
162
|
+
}
|
|
163
|
+
if (error._tag === "HttpBodyError") {
|
|
164
|
+
const reason = error.reason;
|
|
165
|
+
if (reason._tag === "JsonError") {
|
|
166
|
+
return Effect.fail(new Error("Failed to parse JSON response"));
|
|
167
|
+
}
|
|
168
|
+
if (reason._tag === "SchemaError") {
|
|
169
|
+
return Effect.fail(
|
|
170
|
+
new Error(reason.error.message, {
|
|
171
|
+
cause: reason.error.cause
|
|
172
|
+
})
|
|
173
|
+
);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return Effect.fail(new Error(error.toString()));
|
|
177
|
+
})
|
|
178
|
+
),
|
|
179
|
+
{
|
|
180
|
+
signal: options?.signal
|
|
181
|
+
}
|
|
182
|
+
)
|
|
183
|
+
};
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
export { createAjaxCartApi };
|
|
187
|
+
//# sourceMappingURL=index.js.map
|
|
188
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;AAqBO,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 { 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"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@brytdesigns/shopify-ajax-cart-api",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "An AJAX cart that integrates with the AJAX Cart API",
|
|
5
|
+
"main": "./dist/main/index.js",
|
|
6
|
+
"types": "./dist/main/index.d.ts",
|
|
7
|
+
"module": "./dist/main/index.js",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist"
|
|
10
|
+
],
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"types": "./dist/main/index.d.ts",
|
|
14
|
+
"import": "./dist/main/index.js"
|
|
15
|
+
},
|
|
16
|
+
"./effect": {
|
|
17
|
+
"types": "./dist/main/effect/index.d.ts",
|
|
18
|
+
"import": "./dist/main/effect/index.js"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"type": "module",
|
|
22
|
+
"keywords": [],
|
|
23
|
+
"author": "Bryt Designs",
|
|
24
|
+
"license": "ISC",
|
|
25
|
+
"devDependencies": {
|
|
26
|
+
"@effect/vitest": "^0.19.0",
|
|
27
|
+
"dts-bundle-generator": "^9.5.1",
|
|
28
|
+
"tsup": "^8.4.0",
|
|
29
|
+
"vitest": "^3.0.6"
|
|
30
|
+
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"@effect/platform": "0.82.4",
|
|
33
|
+
"effect": "3.15.2",
|
|
34
|
+
"@brytdesigns/shopify-utils": "1.2.13"
|
|
35
|
+
},
|
|
36
|
+
"scripts": {
|
|
37
|
+
"build": "tsup --clean",
|
|
38
|
+
"dev": "tsx src/index.ts",
|
|
39
|
+
"typecheck": "tsc --noEmit",
|
|
40
|
+
"test": "vitest"
|
|
41
|
+
}
|
|
42
|
+
}
|