@brytdesigns/shopify-utils 1.2.16 → 1.2.18
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/Ajax/Sections/schema.js +26 -2
- package/dist/effect/Ajax/Sections/schema.js.map +1 -1
- package/dist/effect/Ajax/Window/data/ShopifyRoutes.js +2 -0
- package/dist/effect/Ajax/Window/data/ShopifyRoutes.js.map +1 -1
- package/dist/effect/index.d.ts +4 -2
- package/dist/main/effect/Ajax/Sections/schema.js +26 -2
- package/dist/main/effect/Ajax/Sections/schema.js.map +1 -1
- package/dist/main/effect/Ajax/Window/data/ShopifyRoutes.js +2 -0
- package/dist/main/effect/Ajax/Window/data/ShopifyRoutes.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import * as Schema from 'effect/Schema';
|
|
2
|
+
import * as ParseResult from 'effect/ParseResult';
|
|
3
|
+
import 'effect/Function';
|
|
2
4
|
|
|
3
5
|
const Input = Schema.Struct({
|
|
4
|
-
sections: Schema.optional(
|
|
6
|
+
sections: Schema.optional(
|
|
7
|
+
Schema.transform(Schema.Array(Schema.String), Schema.String, {
|
|
8
|
+
decode: (sections) => sections.join(","),
|
|
9
|
+
encode: (str) => str.split(",")
|
|
10
|
+
})
|
|
11
|
+
),
|
|
5
12
|
sections_url: Schema.optional(Schema.String)
|
|
6
13
|
});
|
|
7
14
|
const parseKeys = (keys) => Array.from(
|
|
@@ -11,7 +18,24 @@ function makeResponseSchema(input) {
|
|
|
11
18
|
const keys = parseKeys(input);
|
|
12
19
|
return Schema.Record({
|
|
13
20
|
key: Schema.Literal(...keys),
|
|
14
|
-
value: Schema.
|
|
21
|
+
value: Schema.transformOrFail(Schema.String, Schema.instanceOf(Element), {
|
|
22
|
+
decode: (htmlString, _, ast) => {
|
|
23
|
+
const parser = new DOMParser();
|
|
24
|
+
const doc = parser.parseFromString(htmlString, "text/html");
|
|
25
|
+
const root = doc.body.firstElementChild;
|
|
26
|
+
if (!root) {
|
|
27
|
+
return ParseResult.fail(
|
|
28
|
+
new ParseResult.Type(
|
|
29
|
+
ast,
|
|
30
|
+
htmlString,
|
|
31
|
+
"Failed to convert HTML string to Element"
|
|
32
|
+
)
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
return ParseResult.succeed(root);
|
|
36
|
+
},
|
|
37
|
+
encode: (element, options, ast) => ParseResult.succeed(element.outerHTML)
|
|
38
|
+
}).pipe(Schema.NullOr)
|
|
15
39
|
});
|
|
16
40
|
}
|
|
17
41
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/effect/Ajax/Sections/schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/effect/Ajax/Sections/schema.ts"],"names":[],"mappings":";;;;AAKa,MAAA,KAAA,GAAQ,OAAO,MAAO,CAAA;AAAA,EACjC,UAAU,MAAO,CAAA,QAAA;AAAA,IACf,MAAA,CAAO,UAAU,MAAO,CAAA,KAAA,CAAM,OAAO,MAAM,CAAA,EAAG,OAAO,MAAQ,EAAA;AAAA,MAC3D,MAAQ,EAAA,CAAC,QAAa,KAAA,QAAA,CAAS,KAAK,GAAG,CAAA;AAAA,MACvC,MAAQ,EAAA,CAAC,GAAQ,KAAA,GAAA,CAAI,MAAM,GAAG;AAAA,KAC/B;AAAA,GACH;AAAA,EACA,YAAc,EAAA,MAAA,CAAO,QAAS,CAAA,MAAA,CAAO,MAAM;AAC7C,CAAC;AAOD,MAAM,SAAA,GAAY,CAAyB,IAAA,KACzC,KAAM,CAAA,IAAA;AAAA,EACJ,IAAI,GAAA,CAAI,IAAK,CAAA,KAAA,CAAM,GAAG,CAAA,CAAE,GAAI,CAAA,CAAC,GAAQ,KAAA,GAAA,CAAI,IAAK,EAAC,CAAC;AAClD,CAAA;AAEK,SAAS,mBAA2C,KAAU,EAAA;AACnE,EAAM,MAAA,IAAA,GAAO,UAAU,KAAK,CAAA;AAC5B,EAAA,OAAO,OAAO,MAAO,CAAA;AAAA,IACnB,GAAK,EAAA,MAAA,CAAO,OAAQ,CAAA,GAAG,IAAI,CAAA;AAAA,IAC3B,KAAA,EAAO,OAAO,eAAgB,CAAA,MAAA,CAAO,QAAQ,MAAO,CAAA,UAAA,CAAW,OAAO,CAAG,EAAA;AAAA,MACvE,MAAQ,EAAA,CAAC,UAAY,EAAA,CAAA,EAAG,GAAQ,KAAA;AAC9B,QAAM,MAAA,MAAA,GAAS,IAAI,SAAU,EAAA;AAC7B,QAAA,MAAM,GAAM,GAAA,MAAA,CAAO,eAAgB,CAAA,UAAA,EAAY,WAAW,CAAA;AAC1D,QAAM,MAAA,IAAA,GAAO,IAAI,IAAK,CAAA,iBAAA;AACtB,QAAA,IAAI,CAAC,IAAM,EAAA;AACT,UAAA,OAAO,WAAY,CAAA,IAAA;AAAA,YACjB,IAAI,WAAY,CAAA,IAAA;AAAA,cACd,GAAA;AAAA,cACA,UAAA;AAAA,cACA;AAAA;AACF,WACF;AAAA;AAEF,QAAO,OAAA,WAAA,CAAY,QAAQ,IAAI,CAAA;AAAA,OACjC;AAAA,MACA,MAAA,EAAQ,CAAC,OAAS,EAAA,OAAA,EAAS,QAAQ,WAAY,CAAA,OAAA,CAAQ,QAAQ,SAAS;AAAA,KACzE,CAAA,CAAE,IAAK,CAAA,MAAA,CAAO,MAAM;AAAA,GACtB,CAAA;AACH","file":"schema.js","sourcesContent":["import * as Schema from \"effect/Schema\";\nimport * as ParseResult from \"effect/ParseResult\";\nimport * as Function from \"effect/Function\";\n\nexport type Input = typeof Input;\nexport const Input = Schema.Struct({\n sections: Schema.optional(\n Schema.transform(Schema.Array(Schema.String), Schema.String, {\n decode: (sections) => sections.join(\",\"),\n encode: (str) => str.split(\",\"),\n }),\n ),\n sections_url: Schema.optional(Schema.String),\n});\n\n// Helper type to convert a string to a tuple of unique literals\ntype UniqueKeys<T extends string> = T extends `${infer K},${infer Rest}`\n ? K | UniqueKeys<Rest>\n : T;\n\nconst parseKeys = <const T extends string>(keys: T) =>\n Array.from(\n new Set(keys.split(\",\").map((key) => key.trim())),\n ) as UniqueKeys<T>[];\n\nexport function makeResponseSchema<const T extends string>(input: T) {\n const keys = parseKeys(input);\n return Schema.Record({\n key: Schema.Literal(...keys),\n value: Schema.transformOrFail(Schema.String, Schema.instanceOf(Element), {\n decode: (htmlString, _, ast) => {\n const parser = new DOMParser();\n const doc = parser.parseFromString(htmlString, \"text/html\");\n const root = doc.body.firstElementChild;\n if (!root) {\n return ParseResult.fail(\n new ParseResult.Type(\n ast,\n htmlString,\n \"Failed to convert HTML string to Element\",\n ),\n );\n }\n return ParseResult.succeed(root);\n },\n encode: (element, options, ast) => ParseResult.succeed(element.outerHTML),\n }).pipe(Schema.NullOr),\n });\n}\n"]}
|
|
@@ -8,6 +8,8 @@ const Defaults = {
|
|
|
8
8
|
account_register_url: "/account/register",
|
|
9
9
|
account_url: "/account",
|
|
10
10
|
all_products_collection_url: "/collections/all",
|
|
11
|
+
product_url: "/products/:handle",
|
|
12
|
+
products_url: "/products",
|
|
11
13
|
cart_add_url: "/cart/add.js",
|
|
12
14
|
cart_change_url: "/cart/change.js",
|
|
13
15
|
cart_clear_url: "/cart/clear.js",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/effect/Ajax/Window/data/ShopifyRoutes.ts"],"names":[],"mappings":";;AAIO,MAAM,QAA2B,GAAA;AAAA,EACtC,qBAAuB,EAAA,oBAAA;AAAA,EACvB,iBAAmB,EAAA,gBAAA;AAAA,EACnB,kBAAoB,EAAA,iBAAA;AAAA,EACpB,mBAAqB,EAAA,kBAAA;AAAA,EACrB,oBAAsB,EAAA,mBAAA;AAAA,EACtB,WAAa,EAAA,UAAA;AAAA,EACb,2BAA6B,EAAA,kBAAA;AAAA,EAC7B,YAAc,EAAA,cAAA;AAAA,EACd,eAAiB,EAAA,iBAAA;AAAA,EACjB,cAAgB,EAAA,gBAAA;AAAA,EAChB,eAAiB,EAAA,iBAAA;AAAA,EACjB,QAAU,EAAA,UAAA;AAAA,EACV,eAAiB,EAAA,cAAA;AAAA,EACjB,qBAAuB,EAAA,iBAAA;AAAA,EACvB,2BAA6B,EAAA,2BAAA;AAAA,EAC7B,QAAU,EAAA,GAAA;AAAA,EACV,UAAY,EAAA,SAAA;AAAA,EACZ,oBACE,EAAA;AACJ;AAEO,MAAM,aAAA,SAAsB,KAAK,KAAsB,CAAA;AAAA,EAC5D,WAAc,GAAA;AACZ,IAAM,KAAA,CAAA;AAAA,MACJ,GAAG,QAAA;AAAA,MACH,GAAI,MAAA,EAAQ,WAAa,EAAA,MAAA,IAAU;AAAC,KACrC,CAAA;AAAA;AAEL;AAEO,MAAM,IAAO,GAAA,MAClB,IAAK,CAAA,IAAA,EAAsB,CAAA;AAAA,EACzB,GAAG,QAAA;AAAA,EACH,GAAI,MAAA,EAAQ,WAAa,EAAA,MAAA,IAAU;AACrC,CAAC","file":"ShopifyRoutes.js","sourcesContent":["import type { IShopifyRoutes } from \"./types.js\";\n\nimport * as Data from \"effect/Data\";\n\nexport const Defaults: IShopifyRoutes = {\n account_addresses_url: \"/account/addresses\",\n account_login_url: \"/account/login\",\n account_logout_url: \"/account/logout\",\n account_recover_url: \"/account/recover\",\n account_register_url: \"/account/register\",\n account_url: \"/account\",\n all_products_collection_url: \"/collections/all\",\n cart_add_url: \"/cart/add.js\",\n cart_change_url: \"/cart/change.js\",\n cart_clear_url: \"/cart/clear.js\",\n cart_update_url: \"/cart/update.js\",\n cart_url: \"/cart.js\",\n collections_url: \"/collections\",\n predictive_search_url: \"/search/suggest\",\n product_recommendations_url: \"/recommendations/products\",\n root_url: \"/\",\n search_url: \"/search\",\n storefront_login_url:\n \"/customer_authentication/login?return_to=%2Fservices%2Fliquid_rendering%2Fresource%3Ffast_storefront_renderer%3D1&locale=en\",\n};\n\nexport class ShopifyRoutes extends Data.Class<IShopifyRoutes> {\n constructor() {\n super({\n ...Defaults,\n ...(window?.BrytDesigns?.routes || {}),\n });\n }\n}\n\nexport const make = () =>\n Data.case<ShopifyRoutes>()({\n ...Defaults,\n ...(window?.BrytDesigns?.routes || {}),\n });\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/effect/Ajax/Window/data/ShopifyRoutes.ts"],"names":[],"mappings":";;AAIO,MAAM,QAA2B,GAAA;AAAA,EACtC,qBAAuB,EAAA,oBAAA;AAAA,EACvB,iBAAmB,EAAA,gBAAA;AAAA,EACnB,kBAAoB,EAAA,iBAAA;AAAA,EACpB,mBAAqB,EAAA,kBAAA;AAAA,EACrB,oBAAsB,EAAA,mBAAA;AAAA,EACtB,WAAa,EAAA,UAAA;AAAA,EACb,2BAA6B,EAAA,kBAAA;AAAA,EAC7B,WAAa,EAAA,mBAAA;AAAA,EACb,YAAc,EAAA,WAAA;AAAA,EACd,YAAc,EAAA,cAAA;AAAA,EACd,eAAiB,EAAA,iBAAA;AAAA,EACjB,cAAgB,EAAA,gBAAA;AAAA,EAChB,eAAiB,EAAA,iBAAA;AAAA,EACjB,QAAU,EAAA,UAAA;AAAA,EACV,eAAiB,EAAA,cAAA;AAAA,EACjB,qBAAuB,EAAA,iBAAA;AAAA,EACvB,2BAA6B,EAAA,2BAAA;AAAA,EAC7B,QAAU,EAAA,GAAA;AAAA,EACV,UAAY,EAAA,SAAA;AAAA,EACZ,oBACE,EAAA;AACJ;AAEO,MAAM,aAAA,SAAsB,KAAK,KAAsB,CAAA;AAAA,EAC5D,WAAc,GAAA;AACZ,IAAM,KAAA,CAAA;AAAA,MACJ,GAAG,QAAA;AAAA,MACH,GAAI,MAAA,EAAQ,WAAa,EAAA,MAAA,IAAU;AAAC,KACrC,CAAA;AAAA;AAEL;AAEO,MAAM,IAAO,GAAA,MAClB,IAAK,CAAA,IAAA,EAAsB,CAAA;AAAA,EACzB,GAAG,QAAA;AAAA,EACH,GAAI,MAAA,EAAQ,WAAa,EAAA,MAAA,IAAU;AACrC,CAAC","file":"ShopifyRoutes.js","sourcesContent":["import type { IShopifyRoutes } from \"./types.js\";\n\nimport * as Data from \"effect/Data\";\n\nexport const Defaults: IShopifyRoutes = {\n account_addresses_url: \"/account/addresses\",\n account_login_url: \"/account/login\",\n account_logout_url: \"/account/logout\",\n account_recover_url: \"/account/recover\",\n account_register_url: \"/account/register\",\n account_url: \"/account\",\n all_products_collection_url: \"/collections/all\",\n product_url: \"/products/:handle\",\n products_url: \"/products\",\n cart_add_url: \"/cart/add.js\",\n cart_change_url: \"/cart/change.js\",\n cart_clear_url: \"/cart/clear.js\",\n cart_update_url: \"/cart/update.js\",\n cart_url: \"/cart.js\",\n collections_url: \"/collections\",\n predictive_search_url: \"/search/suggest\",\n product_recommendations_url: \"/recommendations/products\",\n root_url: \"/\",\n search_url: \"/search\",\n storefront_login_url:\n \"/customer_authentication/login?return_to=%2Fservices%2Fliquid_rendering%2Fresource%3Ffast_storefront_renderer%3D1&locale=en\",\n};\n\nexport class ShopifyRoutes extends Data.Class<IShopifyRoutes> {\n constructor() {\n super({\n ...Defaults,\n ...(window?.BrytDesigns?.routes || {}),\n });\n }\n}\n\nexport const make = () =>\n Data.case<ShopifyRoutes>()({\n ...Defaults,\n ...(window?.BrytDesigns?.routes || {}),\n });\n"]}
|
package/dist/effect/index.d.ts
CHANGED
|
@@ -64,6 +64,8 @@ export interface IShopifyRoutes {
|
|
|
64
64
|
readonly account_register_url: string;
|
|
65
65
|
readonly account_url: string;
|
|
66
66
|
readonly all_products_collection_url: string;
|
|
67
|
+
readonly product_url: string;
|
|
68
|
+
readonly products_url: string;
|
|
67
69
|
readonly cart_add_url: string;
|
|
68
70
|
readonly cart_change_url: string;
|
|
69
71
|
readonly cart_clear_url: string;
|
|
@@ -92,11 +94,11 @@ declare class StorefrontClientConfig extends Data.Class<IStorefrontClientConfig>
|
|
|
92
94
|
declare const make$1: () => StorefrontClientConfig;
|
|
93
95
|
export type Input = typeof Input;
|
|
94
96
|
declare const Input: Schema.Struct<{
|
|
95
|
-
sections: Schema.optional<typeof Schema.String
|
|
97
|
+
sections: Schema.optional<Schema.transform<Schema.Array$<typeof Schema.String>, typeof Schema.String>>;
|
|
96
98
|
sections_url: Schema.optional<typeof Schema.String>;
|
|
97
99
|
}>;
|
|
98
100
|
export type UniqueKeys<T extends string> = T extends `${infer K},${infer Rest}` ? K | UniqueKeys<Rest> : T;
|
|
99
|
-
declare function makeResponseSchema<const T extends string>(input: T): Schema.Record$<Schema.SchemaClass<UniqueKeys<T>, UniqueKeys<T>, never>, Schema.NullOr<typeof Schema.String
|
|
101
|
+
declare function makeResponseSchema<const T extends string>(input: T): Schema.Record$<Schema.SchemaClass<UniqueKeys<T>, UniqueKeys<T>, never>, Schema.NullOr<Schema.transformOrFail<typeof Schema.String, Schema.instanceOf<Element>, never>>>;
|
|
100
102
|
declare const filterLevelOrNever: <A, E, R>(level: LogLevel.LogLevel, effect: Effect.Effect<A, E, R>) => Effect.Effect<A | undefined, E, R>;
|
|
101
103
|
declare const makeNamespacedLogSpan: (prefix: string) => (label: string) => <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
|
|
102
104
|
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import * as Schema from 'effect/Schema';
|
|
2
|
+
import * as ParseResult from 'effect/ParseResult';
|
|
3
|
+
import 'effect/Function';
|
|
2
4
|
|
|
3
5
|
const Input = Schema.Struct({
|
|
4
|
-
sections: Schema.optional(
|
|
6
|
+
sections: Schema.optional(
|
|
7
|
+
Schema.transform(Schema.Array(Schema.String), Schema.String, {
|
|
8
|
+
decode: (sections) => sections.join(","),
|
|
9
|
+
encode: (str) => str.split(",")
|
|
10
|
+
})
|
|
11
|
+
),
|
|
5
12
|
sections_url: Schema.optional(Schema.String)
|
|
6
13
|
});
|
|
7
14
|
const parseKeys = (keys) => Array.from(
|
|
@@ -11,7 +18,24 @@ function makeResponseSchema(input) {
|
|
|
11
18
|
const keys = parseKeys(input);
|
|
12
19
|
return Schema.Record({
|
|
13
20
|
key: Schema.Literal(...keys),
|
|
14
|
-
value: Schema.
|
|
21
|
+
value: Schema.transformOrFail(Schema.String, Schema.instanceOf(Element), {
|
|
22
|
+
decode: (htmlString, _, ast) => {
|
|
23
|
+
const parser = new DOMParser();
|
|
24
|
+
const doc = parser.parseFromString(htmlString, "text/html");
|
|
25
|
+
const root = doc.body.firstElementChild;
|
|
26
|
+
if (!root) {
|
|
27
|
+
return ParseResult.fail(
|
|
28
|
+
new ParseResult.Type(
|
|
29
|
+
ast,
|
|
30
|
+
htmlString,
|
|
31
|
+
"Failed to convert HTML string to Element"
|
|
32
|
+
)
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
return ParseResult.succeed(root);
|
|
36
|
+
},
|
|
37
|
+
encode: (element, options, ast) => ParseResult.succeed(element.outerHTML)
|
|
38
|
+
}).pipe(Schema.NullOr)
|
|
15
39
|
});
|
|
16
40
|
}
|
|
17
41
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/effect/Ajax/Sections/schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/effect/Ajax/Sections/schema.ts"],"names":[],"mappings":";;;;AAKa,MAAA,KAAA,GAAQ,OAAO,MAAO,CAAA;AAAA,EACjC,UAAU,MAAO,CAAA,QAAA;AAAA,IACf,MAAA,CAAO,UAAU,MAAO,CAAA,KAAA,CAAM,OAAO,MAAM,CAAA,EAAG,OAAO,MAAQ,EAAA;AAAA,MAC3D,MAAQ,EAAA,CAAC,QAAa,KAAA,QAAA,CAAS,KAAK,GAAG,CAAA;AAAA,MACvC,MAAQ,EAAA,CAAC,GAAQ,KAAA,GAAA,CAAI,MAAM,GAAG;AAAA,KAC/B;AAAA,GACH;AAAA,EACA,YAAc,EAAA,MAAA,CAAO,QAAS,CAAA,MAAA,CAAO,MAAM;AAC7C,CAAC;AAOD,MAAM,SAAA,GAAY,CAAyB,IAAA,KACzC,KAAM,CAAA,IAAA;AAAA,EACJ,IAAI,GAAA,CAAI,IAAK,CAAA,KAAA,CAAM,GAAG,CAAA,CAAE,GAAI,CAAA,CAAC,GAAQ,KAAA,GAAA,CAAI,IAAK,EAAC,CAAC;AAClD,CAAA;AAEK,SAAS,mBAA2C,KAAU,EAAA;AACnE,EAAM,MAAA,IAAA,GAAO,UAAU,KAAK,CAAA;AAC5B,EAAA,OAAO,OAAO,MAAO,CAAA;AAAA,IACnB,GAAK,EAAA,MAAA,CAAO,OAAQ,CAAA,GAAG,IAAI,CAAA;AAAA,IAC3B,KAAA,EAAO,OAAO,eAAgB,CAAA,MAAA,CAAO,QAAQ,MAAO,CAAA,UAAA,CAAW,OAAO,CAAG,EAAA;AAAA,MACvE,MAAQ,EAAA,CAAC,UAAY,EAAA,CAAA,EAAG,GAAQ,KAAA;AAC9B,QAAM,MAAA,MAAA,GAAS,IAAI,SAAU,EAAA;AAC7B,QAAA,MAAM,GAAM,GAAA,MAAA,CAAO,eAAgB,CAAA,UAAA,EAAY,WAAW,CAAA;AAC1D,QAAM,MAAA,IAAA,GAAO,IAAI,IAAK,CAAA,iBAAA;AACtB,QAAA,IAAI,CAAC,IAAM,EAAA;AACT,UAAA,OAAO,WAAY,CAAA,IAAA;AAAA,YACjB,IAAI,WAAY,CAAA,IAAA;AAAA,cACd,GAAA;AAAA,cACA,UAAA;AAAA,cACA;AAAA;AACF,WACF;AAAA;AAEF,QAAO,OAAA,WAAA,CAAY,QAAQ,IAAI,CAAA;AAAA,OACjC;AAAA,MACA,MAAA,EAAQ,CAAC,OAAS,EAAA,OAAA,EAAS,QAAQ,WAAY,CAAA,OAAA,CAAQ,QAAQ,SAAS;AAAA,KACzE,CAAA,CAAE,IAAK,CAAA,MAAA,CAAO,MAAM;AAAA,GACtB,CAAA;AACH","file":"schema.js","sourcesContent":["import * as Schema from \"effect/Schema\";\nimport * as ParseResult from \"effect/ParseResult\";\nimport * as Function from \"effect/Function\";\n\nexport type Input = typeof Input;\nexport const Input = Schema.Struct({\n sections: Schema.optional(\n Schema.transform(Schema.Array(Schema.String), Schema.String, {\n decode: (sections) => sections.join(\",\"),\n encode: (str) => str.split(\",\"),\n }),\n ),\n sections_url: Schema.optional(Schema.String),\n});\n\n// Helper type to convert a string to a tuple of unique literals\ntype UniqueKeys<T extends string> = T extends `${infer K},${infer Rest}`\n ? K | UniqueKeys<Rest>\n : T;\n\nconst parseKeys = <const T extends string>(keys: T) =>\n Array.from(\n new Set(keys.split(\",\").map((key) => key.trim())),\n ) as UniqueKeys<T>[];\n\nexport function makeResponseSchema<const T extends string>(input: T) {\n const keys = parseKeys(input);\n return Schema.Record({\n key: Schema.Literal(...keys),\n value: Schema.transformOrFail(Schema.String, Schema.instanceOf(Element), {\n decode: (htmlString, _, ast) => {\n const parser = new DOMParser();\n const doc = parser.parseFromString(htmlString, \"text/html\");\n const root = doc.body.firstElementChild;\n if (!root) {\n return ParseResult.fail(\n new ParseResult.Type(\n ast,\n htmlString,\n \"Failed to convert HTML string to Element\",\n ),\n );\n }\n return ParseResult.succeed(root);\n },\n encode: (element, options, ast) => ParseResult.succeed(element.outerHTML),\n }).pipe(Schema.NullOr),\n });\n}\n"]}
|
|
@@ -8,6 +8,8 @@ const Defaults = {
|
|
|
8
8
|
account_register_url: "/account/register",
|
|
9
9
|
account_url: "/account",
|
|
10
10
|
all_products_collection_url: "/collections/all",
|
|
11
|
+
product_url: "/products/:handle",
|
|
12
|
+
products_url: "/products",
|
|
11
13
|
cart_add_url: "/cart/add.js",
|
|
12
14
|
cart_change_url: "/cart/change.js",
|
|
13
15
|
cart_clear_url: "/cart/clear.js",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/effect/Ajax/Window/data/ShopifyRoutes.ts"],"names":[],"mappings":";;AAIO,MAAM,QAA2B,GAAA;AAAA,EACtC,qBAAuB,EAAA,oBAAA;AAAA,EACvB,iBAAmB,EAAA,gBAAA;AAAA,EACnB,kBAAoB,EAAA,iBAAA;AAAA,EACpB,mBAAqB,EAAA,kBAAA;AAAA,EACrB,oBAAsB,EAAA,mBAAA;AAAA,EACtB,WAAa,EAAA,UAAA;AAAA,EACb,2BAA6B,EAAA,kBAAA;AAAA,EAC7B,YAAc,EAAA,cAAA;AAAA,EACd,eAAiB,EAAA,iBAAA;AAAA,EACjB,cAAgB,EAAA,gBAAA;AAAA,EAChB,eAAiB,EAAA,iBAAA;AAAA,EACjB,QAAU,EAAA,UAAA;AAAA,EACV,eAAiB,EAAA,cAAA;AAAA,EACjB,qBAAuB,EAAA,iBAAA;AAAA,EACvB,2BAA6B,EAAA,2BAAA;AAAA,EAC7B,QAAU,EAAA,GAAA;AAAA,EACV,UAAY,EAAA,SAAA;AAAA,EACZ,oBACE,EAAA;AACJ;AAEO,MAAM,aAAA,SAAsB,KAAK,KAAsB,CAAA;AAAA,EAC5D,WAAc,GAAA;AACZ,IAAM,KAAA,CAAA;AAAA,MACJ,GAAG,QAAA;AAAA,MACH,GAAI,MAAA,EAAQ,WAAa,EAAA,MAAA,IAAU;AAAC,KACrC,CAAA;AAAA;AAEL;AAEO,MAAM,IAAO,GAAA,MAClB,IAAK,CAAA,IAAA,EAAsB,CAAA;AAAA,EACzB,GAAG,QAAA;AAAA,EACH,GAAI,MAAA,EAAQ,WAAa,EAAA,MAAA,IAAU;AACrC,CAAC","file":"ShopifyRoutes.js","sourcesContent":["import type { IShopifyRoutes } from \"./types.js\";\n\nimport * as Data from \"effect/Data\";\n\nexport const Defaults: IShopifyRoutes = {\n account_addresses_url: \"/account/addresses\",\n account_login_url: \"/account/login\",\n account_logout_url: \"/account/logout\",\n account_recover_url: \"/account/recover\",\n account_register_url: \"/account/register\",\n account_url: \"/account\",\n all_products_collection_url: \"/collections/all\",\n cart_add_url: \"/cart/add.js\",\n cart_change_url: \"/cart/change.js\",\n cart_clear_url: \"/cart/clear.js\",\n cart_update_url: \"/cart/update.js\",\n cart_url: \"/cart.js\",\n collections_url: \"/collections\",\n predictive_search_url: \"/search/suggest\",\n product_recommendations_url: \"/recommendations/products\",\n root_url: \"/\",\n search_url: \"/search\",\n storefront_login_url:\n \"/customer_authentication/login?return_to=%2Fservices%2Fliquid_rendering%2Fresource%3Ffast_storefront_renderer%3D1&locale=en\",\n};\n\nexport class ShopifyRoutes extends Data.Class<IShopifyRoutes> {\n constructor() {\n super({\n ...Defaults,\n ...(window?.BrytDesigns?.routes || {}),\n });\n }\n}\n\nexport const make = () =>\n Data.case<ShopifyRoutes>()({\n ...Defaults,\n ...(window?.BrytDesigns?.routes || {}),\n });\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/effect/Ajax/Window/data/ShopifyRoutes.ts"],"names":[],"mappings":";;AAIO,MAAM,QAA2B,GAAA;AAAA,EACtC,qBAAuB,EAAA,oBAAA;AAAA,EACvB,iBAAmB,EAAA,gBAAA;AAAA,EACnB,kBAAoB,EAAA,iBAAA;AAAA,EACpB,mBAAqB,EAAA,kBAAA;AAAA,EACrB,oBAAsB,EAAA,mBAAA;AAAA,EACtB,WAAa,EAAA,UAAA;AAAA,EACb,2BAA6B,EAAA,kBAAA;AAAA,EAC7B,WAAa,EAAA,mBAAA;AAAA,EACb,YAAc,EAAA,WAAA;AAAA,EACd,YAAc,EAAA,cAAA;AAAA,EACd,eAAiB,EAAA,iBAAA;AAAA,EACjB,cAAgB,EAAA,gBAAA;AAAA,EAChB,eAAiB,EAAA,iBAAA;AAAA,EACjB,QAAU,EAAA,UAAA;AAAA,EACV,eAAiB,EAAA,cAAA;AAAA,EACjB,qBAAuB,EAAA,iBAAA;AAAA,EACvB,2BAA6B,EAAA,2BAAA;AAAA,EAC7B,QAAU,EAAA,GAAA;AAAA,EACV,UAAY,EAAA,SAAA;AAAA,EACZ,oBACE,EAAA;AACJ;AAEO,MAAM,aAAA,SAAsB,KAAK,KAAsB,CAAA;AAAA,EAC5D,WAAc,GAAA;AACZ,IAAM,KAAA,CAAA;AAAA,MACJ,GAAG,QAAA;AAAA,MACH,GAAI,MAAA,EAAQ,WAAa,EAAA,MAAA,IAAU;AAAC,KACrC,CAAA;AAAA;AAEL;AAEO,MAAM,IAAO,GAAA,MAClB,IAAK,CAAA,IAAA,EAAsB,CAAA;AAAA,EACzB,GAAG,QAAA;AAAA,EACH,GAAI,MAAA,EAAQ,WAAa,EAAA,MAAA,IAAU;AACrC,CAAC","file":"ShopifyRoutes.js","sourcesContent":["import type { IShopifyRoutes } from \"./types.js\";\n\nimport * as Data from \"effect/Data\";\n\nexport const Defaults: IShopifyRoutes = {\n account_addresses_url: \"/account/addresses\",\n account_login_url: \"/account/login\",\n account_logout_url: \"/account/logout\",\n account_recover_url: \"/account/recover\",\n account_register_url: \"/account/register\",\n account_url: \"/account\",\n all_products_collection_url: \"/collections/all\",\n product_url: \"/products/:handle\",\n products_url: \"/products\",\n cart_add_url: \"/cart/add.js\",\n cart_change_url: \"/cart/change.js\",\n cart_clear_url: \"/cart/clear.js\",\n cart_update_url: \"/cart/update.js\",\n cart_url: \"/cart.js\",\n collections_url: \"/collections\",\n predictive_search_url: \"/search/suggest\",\n product_recommendations_url: \"/recommendations/products\",\n root_url: \"/\",\n search_url: \"/search\",\n storefront_login_url:\n \"/customer_authentication/login?return_to=%2Fservices%2Fliquid_rendering%2Fresource%3Ffast_storefront_renderer%3D1&locale=en\",\n};\n\nexport class ShopifyRoutes extends Data.Class<IShopifyRoutes> {\n constructor() {\n super({\n ...Defaults,\n ...(window?.BrytDesigns?.routes || {}),\n });\n }\n}\n\nexport const make = () =>\n Data.case<ShopifyRoutes>()({\n ...Defaults,\n ...(window?.BrytDesigns?.routes || {}),\n });\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brytdesigns/shopify-utils",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.18",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/main/index.js",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"author": "",
|
|
23
23
|
"license": "ISC",
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"effect": "3.
|
|
25
|
+
"effect": "3.19.4"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"dts-bundle-generator": "^9.5.1",
|