medusa-product-helper 0.0.9 → 0.0.12
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/.medusa/server/src/helpers/base-client.js +36 -0
- package/.medusa/server/src/helpers/index.js +16 -0
- package/.medusa/server/src/helpers/wishlist.js +120 -0
- package/.medusa/server/src/workflows/add-to-wishlist.js +19 -14
- package/README.md +17 -29
- package/package.json +2 -2
- package/.medusa/server/src/shared/wishlist/helper.js +0 -98
- package/.medusa/server/src/shared/wishlist/index.js +0 -12
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getClientRequest = exports.buildHeaders = exports.normalizeBaseUrl = void 0;
|
|
4
|
+
const normalizeBaseUrl = (baseUrl) => {
|
|
5
|
+
if (!baseUrl) {
|
|
6
|
+
return "";
|
|
7
|
+
}
|
|
8
|
+
return baseUrl.endsWith("/") ? baseUrl.slice(0, -1) : baseUrl;
|
|
9
|
+
};
|
|
10
|
+
exports.normalizeBaseUrl = normalizeBaseUrl;
|
|
11
|
+
const buildHeaders = (options) => {
|
|
12
|
+
const headers = {
|
|
13
|
+
"Content-Type": "application/json",
|
|
14
|
+
...(options.headers ?? {}),
|
|
15
|
+
};
|
|
16
|
+
const hasPublishableHeader = Object.keys(headers).some((key) => key.toLowerCase() === "x-publishable-api-key");
|
|
17
|
+
if (options.publishableApiKey && !hasPublishableHeader) {
|
|
18
|
+
headers["x-publishable-api-key"] = options.publishableApiKey;
|
|
19
|
+
}
|
|
20
|
+
return headers;
|
|
21
|
+
};
|
|
22
|
+
exports.buildHeaders = buildHeaders;
|
|
23
|
+
const getClientRequest = (client) => {
|
|
24
|
+
if (!client) {
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
if ("request" in client && typeof client.request === "function") {
|
|
28
|
+
return client.request.bind(client);
|
|
29
|
+
}
|
|
30
|
+
if ("client" in client && typeof client.client?.request === "function") {
|
|
31
|
+
return client.client.request.bind(client.client);
|
|
32
|
+
}
|
|
33
|
+
return undefined;
|
|
34
|
+
};
|
|
35
|
+
exports.getClientRequest = getClientRequest;
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaGVscGVycy9iYXNlLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFvQ08sTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtJQUNuRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixPQUFPLEVBQUUsQ0FBQTtJQUNYLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQTtBQUMvRCxDQUFDLENBQUE7QUFMWSxRQUFBLGdCQUFnQixvQkFLNUI7QUFFTSxNQUFNLFlBQVksR0FBRyxDQUFDLE9BQStCLEVBQUUsRUFBRTtJQUM5RCxNQUFNLE9BQU8sR0FBMkI7UUFDdEMsY0FBYyxFQUFFLGtCQUFrQjtRQUNsQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7S0FDM0IsQ0FBQTtJQUVELE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3BELENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEtBQUssdUJBQXVCLENBQ3ZELENBQUE7SUFFRCxJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDdkQsT0FBTyxDQUFDLHVCQUF1QixDQUFDLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFBO0lBQzlELENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQTtBQUNoQixDQUFDLENBQUE7QUFmWSxRQUFBLFlBQVksZ0JBZXhCO0FBRU0sTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE1BQXlCLEVBQUUsRUFBRTtJQUM1RCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWixPQUFPLFNBQVMsQ0FBQTtJQUNsQixDQUFDO0lBRUQsSUFBSSxTQUFTLElBQUksTUFBTSxJQUFJLE9BQU8sTUFBTSxDQUFDLE9BQU8sS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUNoRSxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ3BDLENBQUM7SUFFRCxJQUFJLFFBQVEsSUFBSSxNQUFNLElBQUksT0FBTyxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUN2RSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDbEQsQ0FBQztJQUVELE9BQU8sU0FBUyxDQUFBO0FBQ2xCLENBQUMsQ0FBQTtBQWRZLFFBQUEsZ0JBQWdCLG9CQWM1QiJ9
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalizeBaseUrl = exports.getClientRequest = exports.buildHeaders = exports.removeFromWishlist = exports.getWishlist = exports.createWishlistHelpers = exports.createRemoveFromWishlist = exports.createGetWishlist = exports.createAddToWishlist = exports.addToWishlist = void 0;
|
|
4
|
+
var wishlist_1 = require("./wishlist");
|
|
5
|
+
Object.defineProperty(exports, "addToWishlist", { enumerable: true, get: function () { return wishlist_1.addToWishlist; } });
|
|
6
|
+
Object.defineProperty(exports, "createAddToWishlist", { enumerable: true, get: function () { return wishlist_1.createAddToWishlist; } });
|
|
7
|
+
Object.defineProperty(exports, "createGetWishlist", { enumerable: true, get: function () { return wishlist_1.createGetWishlist; } });
|
|
8
|
+
Object.defineProperty(exports, "createRemoveFromWishlist", { enumerable: true, get: function () { return wishlist_1.createRemoveFromWishlist; } });
|
|
9
|
+
Object.defineProperty(exports, "createWishlistHelpers", { enumerable: true, get: function () { return wishlist_1.createWishlistHelpers; } });
|
|
10
|
+
Object.defineProperty(exports, "getWishlist", { enumerable: true, get: function () { return wishlist_1.getWishlist; } });
|
|
11
|
+
Object.defineProperty(exports, "removeFromWishlist", { enumerable: true, get: function () { return wishlist_1.removeFromWishlist; } });
|
|
12
|
+
var base_client_1 = require("./base-client");
|
|
13
|
+
Object.defineProperty(exports, "buildHeaders", { enumerable: true, get: function () { return base_client_1.buildHeaders; } });
|
|
14
|
+
Object.defineProperty(exports, "getClientRequest", { enumerable: true, get: function () { return base_client_1.getClientRequest; } });
|
|
15
|
+
Object.defineProperty(exports, "normalizeBaseUrl", { enumerable: true, get: function () { return base_client_1.normalizeBaseUrl; } });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaGVscGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1Q0FRbUI7QUFQakIseUdBQUEsYUFBYSxPQUFBO0FBQ2IsK0dBQUEsbUJBQW1CLE9BQUE7QUFDbkIsNkdBQUEsaUJBQWlCLE9BQUE7QUFDakIsb0hBQUEsd0JBQXdCLE9BQUE7QUFDeEIsaUhBQUEscUJBQXFCLE9BQUE7QUFDckIsdUdBQUEsV0FBVyxPQUFBO0FBQ1gsOEdBQUEsa0JBQWtCLE9BQUE7QUFrQnBCLDZDQUFnRjtBQUF2RSwyR0FBQSxZQUFZLE9BQUE7QUFBRSwrR0FBQSxnQkFBZ0IsT0FBQTtBQUFFLCtHQUFBLGdCQUFnQixPQUFBIn0=
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createWishlistHelpers = exports.createRemoveFromWishlist = exports.createAddToWishlist = exports.createGetWishlist = exports.removeFromWishlist = exports.addToWishlist = exports.getWishlist = void 0;
|
|
4
|
+
const base_client_1 = require("./base-client");
|
|
5
|
+
const WISHLIST_ENDPOINT = "/store/wishlist";
|
|
6
|
+
// Endpoint resolution helper (recommended pattern)
|
|
7
|
+
const resolveEndpoint = (endpoint) => endpoint?.startsWith("/") ? endpoint : WISHLIST_ENDPOINT;
|
|
8
|
+
const execute = async (path, init, options) => {
|
|
9
|
+
const baseHeaders = (0, base_client_1.buildHeaders)(options);
|
|
10
|
+
// Only include Content-Type if there's a body (POST, PUT, PATCH)
|
|
11
|
+
const hasBody = init.body !== undefined;
|
|
12
|
+
const headers = {};
|
|
13
|
+
// Always include publishable key if present
|
|
14
|
+
if (baseHeaders["x-publishable-api-key"]) {
|
|
15
|
+
headers["x-publishable-api-key"] = baseHeaders["x-publishable-api-key"];
|
|
16
|
+
}
|
|
17
|
+
// Include Content-Type only for requests with body
|
|
18
|
+
if (hasBody && baseHeaders["Content-Type"]) {
|
|
19
|
+
headers["Content-Type"] = baseHeaders["Content-Type"];
|
|
20
|
+
}
|
|
21
|
+
// Merge custom headers from options
|
|
22
|
+
if (options.headers) {
|
|
23
|
+
Object.assign(headers, options.headers);
|
|
24
|
+
}
|
|
25
|
+
// Merge any additional headers from init (takes precedence)
|
|
26
|
+
const mergedHeaders = {
|
|
27
|
+
...headers,
|
|
28
|
+
...(init.headers ?? {}),
|
|
29
|
+
};
|
|
30
|
+
const normalizedInit = {
|
|
31
|
+
...init,
|
|
32
|
+
headers: mergedHeaders,
|
|
33
|
+
};
|
|
34
|
+
const clientRequest = (0, base_client_1.getClientRequest)(options.client);
|
|
35
|
+
if (clientRequest) {
|
|
36
|
+
const raw = await clientRequest(path, normalizedInit);
|
|
37
|
+
return raw;
|
|
38
|
+
}
|
|
39
|
+
const fetchImpl = options.fetchImpl ?? globalThis.fetch;
|
|
40
|
+
if (!fetchImpl) {
|
|
41
|
+
throw new Error("No fetch implementation available. Provide `fetchImpl` or a Medusa client.");
|
|
42
|
+
}
|
|
43
|
+
const url = `${(0, base_client_1.normalizeBaseUrl)(options.baseUrl)}${path}`;
|
|
44
|
+
const response = await fetchImpl(url || path, normalizedInit);
|
|
45
|
+
if (!response.ok) {
|
|
46
|
+
const body = await response.text();
|
|
47
|
+
throw new Error(body || `Request failed with status ${response.status}`);
|
|
48
|
+
}
|
|
49
|
+
return (await response.json());
|
|
50
|
+
};
|
|
51
|
+
const getWishlist = async (input = {}, options = {}) => {
|
|
52
|
+
const endpoint = resolveEndpoint(input.endpoint);
|
|
53
|
+
const params = new URLSearchParams();
|
|
54
|
+
if (input.includeDetails) {
|
|
55
|
+
params.set("include_details", "true");
|
|
56
|
+
}
|
|
57
|
+
const path = params.toString() ? `${endpoint}?${params.toString()}` : endpoint;
|
|
58
|
+
const raw = await execute(path, {
|
|
59
|
+
method: "GET",
|
|
60
|
+
}, options);
|
|
61
|
+
// Validate response structure
|
|
62
|
+
if (!raw || typeof raw !== "object" || !("wishlist" in raw)) {
|
|
63
|
+
throw new Error("Invalid response from wishlist endpoint");
|
|
64
|
+
}
|
|
65
|
+
if (!Array.isArray(raw.wishlist)) {
|
|
66
|
+
throw new Error("Invalid response format: wishlist must be an array");
|
|
67
|
+
}
|
|
68
|
+
return raw;
|
|
69
|
+
};
|
|
70
|
+
exports.getWishlist = getWishlist;
|
|
71
|
+
const addToWishlist = async (input, options = {}) => {
|
|
72
|
+
if (!input.product_id) {
|
|
73
|
+
throw new Error("product_id is required");
|
|
74
|
+
}
|
|
75
|
+
const endpoint = resolveEndpoint(input.endpoint);
|
|
76
|
+
const payload = {
|
|
77
|
+
product_id: input.product_id,
|
|
78
|
+
};
|
|
79
|
+
const raw = await execute(endpoint, {
|
|
80
|
+
method: "POST",
|
|
81
|
+
body: JSON.stringify(payload),
|
|
82
|
+
}, options);
|
|
83
|
+
// Validate response structure
|
|
84
|
+
if (!raw || typeof raw !== "object" || !("wishlist_item" in raw)) {
|
|
85
|
+
throw new Error("Invalid response from add to wishlist endpoint");
|
|
86
|
+
}
|
|
87
|
+
return raw;
|
|
88
|
+
};
|
|
89
|
+
exports.addToWishlist = addToWishlist;
|
|
90
|
+
const removeFromWishlist = async (input, options = {}) => {
|
|
91
|
+
if (!input.product_id) {
|
|
92
|
+
throw new Error("product_id is required");
|
|
93
|
+
}
|
|
94
|
+
const baseEndpoint = resolveEndpoint(input.endpoint);
|
|
95
|
+
const endpoint = input.endpoint
|
|
96
|
+
? baseEndpoint
|
|
97
|
+
: `${baseEndpoint}/${encodeURIComponent(input.product_id)}`;
|
|
98
|
+
const raw = await execute(endpoint, {
|
|
99
|
+
method: "DELETE",
|
|
100
|
+
}, options);
|
|
101
|
+
// Validate response structure
|
|
102
|
+
if (!raw || typeof raw !== "object" || !("success" in raw)) {
|
|
103
|
+
throw new Error("Invalid response from remove from wishlist endpoint");
|
|
104
|
+
}
|
|
105
|
+
return raw;
|
|
106
|
+
};
|
|
107
|
+
exports.removeFromWishlist = removeFromWishlist;
|
|
108
|
+
const createGetWishlist = (options = {}) => (input) => (0, exports.getWishlist)(input, options);
|
|
109
|
+
exports.createGetWishlist = createGetWishlist;
|
|
110
|
+
const createAddToWishlist = (options = {}) => (input) => (0, exports.addToWishlist)(input, options);
|
|
111
|
+
exports.createAddToWishlist = createAddToWishlist;
|
|
112
|
+
const createRemoveFromWishlist = (options = {}) => (input) => (0, exports.removeFromWishlist)(input, options);
|
|
113
|
+
exports.createRemoveFromWishlist = createRemoveFromWishlist;
|
|
114
|
+
const createWishlistHelpers = (options = {}) => ({
|
|
115
|
+
getWishlist: (0, exports.createGetWishlist)(options),
|
|
116
|
+
addToWishlist: (0, exports.createAddToWishlist)(options),
|
|
117
|
+
removeFromWishlist: (0, exports.createRemoveFromWishlist)(options),
|
|
118
|
+
});
|
|
119
|
+
exports.createWishlistHelpers = createWishlistHelpers;
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lzaGxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaGVscGVycy93aXNobGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FLc0I7QUFFdEIsTUFBTSxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQTtBQUUzQyxtREFBbUQ7QUFDbkQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxRQUFpQixFQUFFLEVBQUUsQ0FDNUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQTtBQStDMUQsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUNuQixJQUFZLEVBQ1osSUFBcUIsRUFDckIsT0FBK0IsRUFDbkIsRUFBRTtJQUNkLE1BQU0sV0FBVyxHQUFHLElBQUEsMEJBQVksRUFBQyxPQUFPLENBQUMsQ0FBQTtJQUV6QyxpRUFBaUU7SUFDakUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUE7SUFDdkMsTUFBTSxPQUFPLEdBQTJCLEVBQUUsQ0FBQTtJQUUxQyw0Q0FBNEM7SUFDNUMsSUFBSSxXQUFXLENBQUMsdUJBQXVCLENBQUMsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO0lBQ3pFLENBQUM7SUFFRCxtREFBbUQ7SUFDbkQsSUFBSSxPQUFPLElBQUksV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7UUFDM0MsT0FBTyxDQUFDLGNBQWMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUN2RCxDQUFDO0lBRUQsb0NBQW9DO0lBQ3BDLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUN6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
|
|
@@ -1,33 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.addToWishlistWorkflow = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
4
5
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
6
|
const wishlist_1 = require("../modules/wishlist");
|
|
6
7
|
const validateCustomerAndProductStep = (0, workflows_sdk_1.createStep)("validate-customer-and-product", async (input, { container }) => {
|
|
7
8
|
// Validate customer exists using remote query
|
|
8
|
-
const remoteQuery = container.resolve(
|
|
9
|
-
const customerQuery = {
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
const remoteQuery = container.resolve(utils_1.ContainerRegistrationKeys.REMOTE_QUERY);
|
|
10
|
+
const customerQuery = (0, utils_1.remoteQueryObjectFromString)({
|
|
11
|
+
entryPoint: "customer",
|
|
12
|
+
fields: ["id"],
|
|
13
|
+
variables: {
|
|
12
14
|
filters: {
|
|
13
|
-
id: input.customer_id,
|
|
15
|
+
id: [input.customer_id],
|
|
14
16
|
},
|
|
15
17
|
},
|
|
16
|
-
};
|
|
17
|
-
const
|
|
18
|
+
});
|
|
19
|
+
const customerResults = await remoteQuery(customerQuery);
|
|
20
|
+
const customer = customerResults?.[0];
|
|
18
21
|
if (!customer) {
|
|
19
22
|
throw new Error(`Customer with id ${input.customer_id} not found`);
|
|
20
23
|
}
|
|
21
24
|
// Validate product exists using remote query
|
|
22
|
-
const productQuery = {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
+
const productQuery = (0, utils_1.remoteQueryObjectFromString)({
|
|
26
|
+
entryPoint: "product",
|
|
27
|
+
fields: ["id"],
|
|
28
|
+
variables: {
|
|
25
29
|
filters: {
|
|
26
|
-
id: input.product_id,
|
|
30
|
+
id: [input.product_id],
|
|
27
31
|
},
|
|
28
32
|
},
|
|
29
|
-
};
|
|
30
|
-
const
|
|
33
|
+
});
|
|
34
|
+
const productResults = await remoteQuery(productQuery);
|
|
35
|
+
const product = productResults?.[0];
|
|
31
36
|
if (!product) {
|
|
32
37
|
throw new Error(`Product with id ${input.product_id} not found`);
|
|
33
38
|
}
|
|
@@ -49,4 +54,4 @@ exports.addToWishlistWorkflow = (0, workflows_sdk_1.createWorkflow)("add-to-wish
|
|
|
49
54
|
});
|
|
50
55
|
});
|
|
51
56
|
exports.default = exports.addToWishlistWorkflow;
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXRvLXdpc2hsaXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9hZGQtdG8td2lzaGxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBR2tDO0FBRWxDLHFFQUswQztBQUMxQyxrREFBcUQ7QUFrQnJELE1BQU0sOEJBQThCLEdBQUcsSUFBQSwwQkFBVSxFQUMvQywrQkFBK0IsRUFDL0IsS0FBSyxFQUFFLEtBQXlCLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ2pELDhDQUE4QztJQUM5QyxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUNuQyxpQ0FBeUIsQ0FBQyxZQUFZLENBQ3ZDLENBQUE7SUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFBLG1DQUEyQixFQUFDO1FBQ2hELFVBQVUsRUFBRSxVQUFVO1FBQ3RCLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQztRQUNkLFNBQVMsRUFBRTtZQUNULE9BQU8sRUFBRTtnQkFDUCxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO2FBQ3hCO1NBQ0Y7S0FDRixDQUFDLENBQUE7SUFFRixNQUFNLGVBQWUsR0FBRyxNQUFNLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUN4RCxNQUFNLFFBQVEsR0FBRyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUVyQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixLQUFLLENBQUMsV0FBVyxZQUFZLENBQUMsQ0FBQTtJQUNwRSxDQUFDO0lBRUQsNkNBQTZDO0lBQzdDLE1BQU0sWUFBWSxHQUFHLElBQUEsbUNBQTJCLEVBQUM7UUFDL0MsVUFBVSxFQUFFLFNBQVM7UUFDckIsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQ2QsU0FBUyxFQUFFO1lBQ1QsT0FBTyxFQUFFO2dCQUNQLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7YUFDdkI7U0FDRjtLQUNGLENBQUMsQ0FBQTtJQUVGLE1BQU0sY0FBYyxHQUFHLE1BQU0sV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBQ3RELE1BQU0sT0FBTyxHQUFHLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBRW5DLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLEtBQUssQ0FBQyxVQUFVLFlBQVksQ0FBQyxDQUFBO0lBQ2xFLENBQUM7SUFFRCxPQUFPLElBQUksNEJBQVksQ0FBQztRQUN0QixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7UUFDOUIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO0tBQzdCLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FDRixDQUFBO0FBRUQsTUFBTSxpQkFBaUIsR0FBRyxJQUFBLDBCQUFVLEVBQ2xDLGlCQUFpQixFQUNqQixLQUFLLEVBQ0gsS0FBa0QsRUFDbEQsRUFBRSxTQUFTLEVBQUUsRUFDYixFQUFFO0lBQ0YsTUFBTSxlQUFlLEdBQTBCLFNBQVMsQ0FBQyxPQUFPLENBQzlELDBCQUFlLENBQ2hCLENBQUE7SUFFRCxNQUFNLFlBQVksR0FBRyxNQUFNLGVBQWUsQ0FBQyxhQUFhLENBQ3RELEtBQUssQ0FBQyxXQUFXLEVBQ2pCLEtBQUssQ0FBQyxVQUFVLENBQ2pCLENBQUE7SUFFRCxPQUFPLElBQUksNEJBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQTtBQUN2QyxDQUFDLENBQ0YsQ0FBQTtBQUVZLFFBQUEscUJBQXFCLEdBQUcsSUFBQSw4QkFBYyxFQUNqRCxpQkFBaUIsRUFDakIsQ0FBQyxLQUF5QixFQUF5QyxFQUFFO0lBQ25FLE1BQU0sU0FBUyxHQUFHLDhCQUE4QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3ZELE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBRWpELE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQztRQUMxQixhQUFhLEVBQUUsWUFBWTtLQUM1QixDQUFDLENBQUE7QUFDSixDQUFDLENBQ0YsQ0FBQTtBQUVELGtCQUFlLDZCQUFxQixDQUFBIn0=
|
package/README.md
CHANGED
|
@@ -440,51 +440,38 @@ import {
|
|
|
440
440
|
getWishlist,
|
|
441
441
|
removeFromWishlist,
|
|
442
442
|
createWishlistHelpers,
|
|
443
|
-
|
|
443
|
+
type HelperTransportOptions,
|
|
444
|
+
type WishlistItem,
|
|
445
|
+
} from "medusa-product-helper/helpers"
|
|
444
446
|
```
|
|
445
447
|
|
|
446
448
|
#### Example Usage
|
|
447
449
|
|
|
448
450
|
```typescript
|
|
451
|
+
const options: HelperTransportOptions = {
|
|
452
|
+
baseUrl: "https://store.example.com",
|
|
453
|
+
publishableApiKey: "pk_your_publishable_api_key",
|
|
454
|
+
headers: {
|
|
455
|
+
Cookie: "connect.sid=...", // or Authorization header
|
|
456
|
+
},
|
|
457
|
+
}
|
|
458
|
+
|
|
449
459
|
// Add a product
|
|
450
|
-
await addToWishlist(
|
|
451
|
-
{ product_id: "prod_123" },
|
|
452
|
-
{
|
|
453
|
-
baseUrl: "https://store.example.com",
|
|
454
|
-
headers: {
|
|
455
|
-
Cookie: "connect.sid=...", // or Authorization header
|
|
456
|
-
},
|
|
457
|
-
}
|
|
458
|
-
)
|
|
460
|
+
await addToWishlist({ product_id: "prod_123" }, options)
|
|
459
461
|
|
|
460
462
|
// Read wishlist with details
|
|
461
|
-
const { wishlist } = await getWishlist(
|
|
462
|
-
{ includeDetails: true },
|
|
463
|
-
{
|
|
464
|
-
baseUrl: "https://store.example.com",
|
|
465
|
-
headers: {
|
|
466
|
-
Cookie: "connect.sid=...",
|
|
467
|
-
},
|
|
468
|
-
}
|
|
469
|
-
)
|
|
463
|
+
const { wishlist } = await getWishlist({ includeDetails: true }, options)
|
|
470
464
|
|
|
471
465
|
// Remove a product
|
|
472
|
-
await removeFromWishlist(
|
|
473
|
-
{ product_id: "prod_123" },
|
|
474
|
-
{
|
|
475
|
-
baseUrl: "https://store.example.com",
|
|
476
|
-
headers: {
|
|
477
|
-
Cookie: "connect.sid=...",
|
|
478
|
-
},
|
|
479
|
-
}
|
|
480
|
-
)
|
|
466
|
+
await removeFromWishlist({ product_id: "prod_123" }, options)
|
|
481
467
|
```
|
|
482
468
|
|
|
483
469
|
#### Configuration Options
|
|
484
470
|
|
|
485
471
|
All helper calls accept the following options:
|
|
486
472
|
|
|
487
|
-
- `
|
|
473
|
+
- `publishableApiKey`: Required for public storefront calls when not passing a Medusa JS client. Add it from **Settings → API Keys** in the Medusa dashboard.
|
|
474
|
+
- `client`: Medusa JS/SDK client instance. When provided, network requests are delegated to `client.request` and the client’s publishable key is reused.
|
|
488
475
|
- `baseUrl`: Base URL for the Store API (e.g., `https://store.example.com`). Required when a client is not provided.
|
|
489
476
|
- `fetchImpl`: Custom `fetch` implementation for SSR or React Native environments. Defaults to `globalThis.fetch`.
|
|
490
477
|
- `headers`: Additional headers appended to every request (useful for `Cookie` / `Authorization` headers).
|
|
@@ -494,6 +481,7 @@ You can also generate pre-configured helpers:
|
|
|
494
481
|
```typescript
|
|
495
482
|
const wishlist = createWishlistHelpers({
|
|
496
483
|
baseUrl: "https://store.example.com",
|
|
484
|
+
publishableApiKey: "pk_your_publishable_api_key",
|
|
497
485
|
headers: { Cookie: "connect.sid=..." },
|
|
498
486
|
})
|
|
499
487
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "medusa-product-helper",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.12",
|
|
4
4
|
"description": "A starter for Medusa plugins.",
|
|
5
5
|
"author": "Medusa (https://medusajs.com)",
|
|
6
6
|
"license": "MIT",
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
"exports": {
|
|
11
11
|
"./package.json": "./package.json",
|
|
12
12
|
"./workflows": "./.medusa/server/src/workflows/index.js",
|
|
13
|
+
"./helpers": "./.medusa/server/src/helpers/index.js",
|
|
13
14
|
"./.medusa/server/src/modules/*": "./.medusa/server/src/modules/*/index.js",
|
|
14
15
|
"./modules/*": "./.medusa/server/src/modules/*/index.js",
|
|
15
16
|
"./providers/*": "./.medusa/server/src/providers/*/index.js",
|
|
16
|
-
"./wishlist-helper": "./.medusa/server/src/shared/wishlist/index.js",
|
|
17
17
|
"./*": "./.medusa/server/src/*.js",
|
|
18
18
|
"./admin": {
|
|
19
19
|
"import": "./.medusa/server/src/admin/index.mjs",
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createWishlistHelpers = exports.createRemoveFromWishlist = exports.createAddToWishlist = exports.createGetWishlist = exports.removeFromWishlist = exports.addToWishlist = exports.getWishlist = void 0;
|
|
4
|
-
const WISHLIST_ENDPOINT = "/store/wishlist";
|
|
5
|
-
const normalizeBaseUrl = (baseUrl) => {
|
|
6
|
-
if (!baseUrl) {
|
|
7
|
-
return "";
|
|
8
|
-
}
|
|
9
|
-
return baseUrl.endsWith("/") ? baseUrl.slice(0, -1) : baseUrl;
|
|
10
|
-
};
|
|
11
|
-
const getClientRequest = (client) => {
|
|
12
|
-
if (!client) {
|
|
13
|
-
return undefined;
|
|
14
|
-
}
|
|
15
|
-
if ("request" in client && typeof client.request === "function") {
|
|
16
|
-
return client.request.bind(client);
|
|
17
|
-
}
|
|
18
|
-
if ("client" in client && typeof client.client?.request === "function") {
|
|
19
|
-
return client.client.request.bind(client.client);
|
|
20
|
-
}
|
|
21
|
-
return undefined;
|
|
22
|
-
};
|
|
23
|
-
const execute = async (path, init, options) => {
|
|
24
|
-
const headers = {
|
|
25
|
-
...(init.headers ?? {}),
|
|
26
|
-
...(options.headers ?? {}),
|
|
27
|
-
};
|
|
28
|
-
const normalizedInit = {
|
|
29
|
-
...init,
|
|
30
|
-
headers,
|
|
31
|
-
};
|
|
32
|
-
const clientRequest = getClientRequest(options.client);
|
|
33
|
-
if (clientRequest) {
|
|
34
|
-
return (await clientRequest(path, normalizedInit));
|
|
35
|
-
}
|
|
36
|
-
const fetchImpl = options.fetchImpl ?? globalThis.fetch;
|
|
37
|
-
if (!fetchImpl) {
|
|
38
|
-
throw new Error("No fetch implementation available. Provide `fetchImpl` or a Medusa client.");
|
|
39
|
-
}
|
|
40
|
-
const url = `${normalizeBaseUrl(options.baseUrl)}${path}`;
|
|
41
|
-
const response = await fetchImpl(url || path, normalizedInit);
|
|
42
|
-
if (!response.ok) {
|
|
43
|
-
const body = await response.text();
|
|
44
|
-
throw new Error(body || `Request failed with status ${response.status}`);
|
|
45
|
-
}
|
|
46
|
-
return (await response.json());
|
|
47
|
-
};
|
|
48
|
-
const getWishlist = async (input = {}, options = {}) => {
|
|
49
|
-
const params = new URLSearchParams();
|
|
50
|
-
if (input.includeDetails) {
|
|
51
|
-
params.set("include_details", "true");
|
|
52
|
-
}
|
|
53
|
-
const endpoint = params.toString()
|
|
54
|
-
? `${WISHLIST_ENDPOINT}?${params.toString()}`
|
|
55
|
-
: WISHLIST_ENDPOINT;
|
|
56
|
-
return execute(endpoint, {
|
|
57
|
-
method: "GET",
|
|
58
|
-
}, options);
|
|
59
|
-
};
|
|
60
|
-
exports.getWishlist = getWishlist;
|
|
61
|
-
const addToWishlist = async (input, options = {}) => {
|
|
62
|
-
if (!input.product_id) {
|
|
63
|
-
throw new Error("product_id is required");
|
|
64
|
-
}
|
|
65
|
-
return execute(WISHLIST_ENDPOINT, {
|
|
66
|
-
method: "POST",
|
|
67
|
-
headers: {
|
|
68
|
-
"Content-Type": "application/json",
|
|
69
|
-
},
|
|
70
|
-
body: JSON.stringify({
|
|
71
|
-
product_id: input.product_id,
|
|
72
|
-
}),
|
|
73
|
-
}, options);
|
|
74
|
-
};
|
|
75
|
-
exports.addToWishlist = addToWishlist;
|
|
76
|
-
const removeFromWishlist = async (input, options = {}) => {
|
|
77
|
-
if (!input.product_id) {
|
|
78
|
-
throw new Error("product_id is required");
|
|
79
|
-
}
|
|
80
|
-
const endpoint = `${WISHLIST_ENDPOINT}/${encodeURIComponent(input.product_id)}`;
|
|
81
|
-
return execute(endpoint, {
|
|
82
|
-
method: "DELETE",
|
|
83
|
-
}, options);
|
|
84
|
-
};
|
|
85
|
-
exports.removeFromWishlist = removeFromWishlist;
|
|
86
|
-
const createGetWishlist = (options = {}) => (input) => (0, exports.getWishlist)(input, options);
|
|
87
|
-
exports.createGetWishlist = createGetWishlist;
|
|
88
|
-
const createAddToWishlist = (options = {}) => (input) => (0, exports.addToWishlist)(input, options);
|
|
89
|
-
exports.createAddToWishlist = createAddToWishlist;
|
|
90
|
-
const createRemoveFromWishlist = (options = {}) => (input) => (0, exports.removeFromWishlist)(input, options);
|
|
91
|
-
exports.createRemoveFromWishlist = createRemoveFromWishlist;
|
|
92
|
-
const createWishlistHelpers = (options = {}) => ({
|
|
93
|
-
getWishlist: (0, exports.createGetWishlist)(options),
|
|
94
|
-
addToWishlist: (0, exports.createAddToWishlist)(options),
|
|
95
|
-
removeFromWishlist: (0, exports.createRemoveFromWishlist)(options),
|
|
96
|
-
});
|
|
97
|
-
exports.createWishlistHelpers = createWishlistHelpers;
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3NoYXJlZC93aXNobGlzdC9oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsTUFBTSxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQTtBQXFFM0MsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtJQUM1QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixPQUFPLEVBQUUsQ0FBQTtJQUNYLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQTtBQUMvRCxDQUFDLENBQUE7QUFFRCxNQUFNLGdCQUFnQixHQUFHLENBQUMsTUFBeUIsRUFBRSxFQUFFO0lBQ3JELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNaLE9BQU8sU0FBUyxDQUFBO0lBQ2xCLENBQUM7SUFFRCxJQUFJLFNBQVMsSUFBSSxNQUFNLElBQUksT0FBTyxNQUFNLENBQUMsT0FBTyxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ2hFLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDcEMsQ0FBQztJQUVELElBQUksUUFBUSxJQUFJLE1BQU0sSUFBSSxPQUFPLE1BQU0sQ0FBQyxNQUFNLEVBQUUsT0FBTyxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ3ZFLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNsRCxDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUE7QUFDbEIsQ0FBQyxDQUFBO0FBRUQsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUNuQixJQUFZLEVBQ1os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
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.removeFromWishlist = exports.getWishlist = exports.createWishlistHelpers = exports.createRemoveFromWishlist = exports.createGetWishlist = exports.createAddToWishlist = exports.addToWishlist = void 0;
|
|
4
|
-
var helper_1 = require("./helper");
|
|
5
|
-
Object.defineProperty(exports, "addToWishlist", { enumerable: true, get: function () { return helper_1.addToWishlist; } });
|
|
6
|
-
Object.defineProperty(exports, "createAddToWishlist", { enumerable: true, get: function () { return helper_1.createAddToWishlist; } });
|
|
7
|
-
Object.defineProperty(exports, "createGetWishlist", { enumerable: true, get: function () { return helper_1.createGetWishlist; } });
|
|
8
|
-
Object.defineProperty(exports, "createRemoveFromWishlist", { enumerable: true, get: function () { return helper_1.createRemoveFromWishlist; } });
|
|
9
|
-
Object.defineProperty(exports, "createWishlistHelpers", { enumerable: true, get: function () { return helper_1.createWishlistHelpers; } });
|
|
10
|
-
Object.defineProperty(exports, "getWishlist", { enumerable: true, get: function () { return helper_1.getWishlist; } });
|
|
11
|
-
Object.defineProperty(exports, "removeFromWishlist", { enumerable: true, get: function () { return helper_1.removeFromWishlist; } });
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2hhcmVkL3dpc2hsaXN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQVFpQjtBQVBmLHVHQUFBLGFBQWEsT0FBQTtBQUNiLDZHQUFBLG1CQUFtQixPQUFBO0FBQ25CLDJHQUFBLGlCQUFpQixPQUFBO0FBQ2pCLGtIQUFBLHdCQUF3QixPQUFBO0FBQ3hCLCtHQUFBLHFCQUFxQixPQUFBO0FBQ3JCLHFHQUFBLFdBQVcsT0FBQTtBQUNYLDRHQUFBLGtCQUFrQixPQUFBIn0=
|