@medusajs/query 2.17.2
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/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/joiner/helpers.d.ts +3 -0
- package/dist/joiner/helpers.d.ts.map +1 -0
- package/dist/joiner/helpers.js +69 -0
- package/dist/joiner/helpers.js.map +1 -0
- package/dist/joiner/index.d.ts +3 -0
- package/dist/joiner/index.d.ts.map +1 -0
- package/dist/joiner/index.js +19 -0
- package/dist/joiner/index.js.map +1 -0
- package/dist/joiner/remote-joiner.d.ts +43 -0
- package/dist/joiner/remote-joiner.d.ts.map +1 -0
- package/dist/joiner/remote-joiner.js +1279 -0
- package/dist/joiner/remote-joiner.js.map +1 -0
- package/dist/medusa-module.d.ts +13 -0
- package/dist/medusa-module.d.ts.map +1 -0
- package/dist/medusa-module.js +17 -0
- package/dist/medusa-module.js.map +1 -0
- package/dist/remote-query/index.d.ts +3 -0
- package/dist/remote-query/index.d.ts.map +1 -0
- package/dist/remote-query/index.js +19 -0
- package/dist/remote-query/index.js.map +1 -0
- package/dist/remote-query/parse-filters.d.ts +15 -0
- package/dist/remote-query/parse-filters.d.ts.map +1 -0
- package/dist/remote-query/parse-filters.js +178 -0
- package/dist/remote-query/parse-filters.js.map +1 -0
- package/dist/remote-query/query.d.ts +58 -0
- package/dist/remote-query/query.d.ts.map +1 -0
- package/dist/remote-query/query.js +254 -0
- package/dist/remote-query/query.js.map +1 -0
- package/dist/remote-query/remote-query.d.ts +43 -0
- package/dist/remote-query/remote-query.d.ts.map +1 -0
- package/dist/remote-query/remote-query.js +297 -0
- package/dist/remote-query/remote-query.js.map +1 -0
- package/dist/remote-query/to-remote-query.d.ts +29 -0
- package/dist/remote-query/to-remote-query.d.ts.map +1 -0
- package/dist/remote-query/to-remote-query.js +110 -0
- package/dist/remote-query/to-remote-query.js.map +1 -0
- package/dist/testing/medusa-module-mock.d.ts +2 -0
- package/dist/testing/medusa-module-mock.d.ts.map +1 -0
- package/dist/testing/medusa-module-mock.js +16 -0
- package/dist/testing/medusa-module-mock.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +43 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toRemoteQuery = toRemoteQuery;
|
|
4
|
+
const utils_1 = require("@medusajs/utils");
|
|
5
|
+
const parse_filters_1 = require("./parse-filters");
|
|
6
|
+
const FIELDS = "__fields";
|
|
7
|
+
const ARGUMENTS = "__args";
|
|
8
|
+
/**
|
|
9
|
+
* convert a specific API configuration to a remote query object
|
|
10
|
+
*
|
|
11
|
+
* @param config
|
|
12
|
+
* @param entitiesMap
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* const remoteQueryObject = toRemoteQuery({
|
|
16
|
+
* entity: "product",
|
|
17
|
+
* fields,
|
|
18
|
+
* filters: { variants: QueryFilter({ sku: "abc" }) },
|
|
19
|
+
* context: {
|
|
20
|
+
* variants: { calculated_price: QueryContext({ region_id: "reg_123" }) }
|
|
21
|
+
* }
|
|
22
|
+
* });
|
|
23
|
+
*
|
|
24
|
+
* console.log(remoteQueryObject);
|
|
25
|
+
*/
|
|
26
|
+
function toRemoteQuery(config, entitiesMap) {
|
|
27
|
+
const { entity, fields = [], filters = {}, context = {}, withDeleted, strategy, } = config;
|
|
28
|
+
const joinerQuery = {
|
|
29
|
+
[entity]: {
|
|
30
|
+
__fields: [],
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
function processNestedObjects(target, source, topLevel = true) {
|
|
34
|
+
for (const key in source) {
|
|
35
|
+
const src = topLevel ? source : source[key];
|
|
36
|
+
if (!(0, utils_1.isObject)(src)) {
|
|
37
|
+
target[key] = src;
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
if (utils_1.QueryContext.isQueryContext(src)) {
|
|
41
|
+
const { __type, ...normalizedFilters } = src;
|
|
42
|
+
const prop = "context";
|
|
43
|
+
if (topLevel) {
|
|
44
|
+
target[ARGUMENTS] ??= {};
|
|
45
|
+
target[ARGUMENTS][prop] = normalizedFilters;
|
|
46
|
+
if (withDeleted) {
|
|
47
|
+
target[ARGUMENTS]["withDeleted"] = true;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
target[key] ??= {};
|
|
52
|
+
target[key][ARGUMENTS] ??= {};
|
|
53
|
+
target[key][ARGUMENTS][prop] = normalizedFilters;
|
|
54
|
+
if (withDeleted) {
|
|
55
|
+
target[key][ARGUMENTS]["withDeleted"] = true;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
if (!topLevel) {
|
|
61
|
+
target[key] ??= {};
|
|
62
|
+
}
|
|
63
|
+
const nextTarget = topLevel ? target : target[key];
|
|
64
|
+
processNestedObjects(nextTarget, src, false);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
// Process filters and context recursively
|
|
69
|
+
processNestedObjects(joinerQuery[entity], context, true);
|
|
70
|
+
for (const field of fields) {
|
|
71
|
+
const fieldAsString = field;
|
|
72
|
+
if (!fieldAsString.includes(".")) {
|
|
73
|
+
joinerQuery[entity][FIELDS].push(field);
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
const fieldSegments = fieldAsString.split(".");
|
|
77
|
+
const fieldProperty = fieldSegments.pop();
|
|
78
|
+
let combinedPath = "";
|
|
79
|
+
const deepConfigRef = fieldSegments.reduce((acc, curr) => {
|
|
80
|
+
combinedPath = combinedPath ? combinedPath + "." + curr : curr;
|
|
81
|
+
acc[curr] ??= {};
|
|
82
|
+
return acc[curr];
|
|
83
|
+
}, joinerQuery[entity]);
|
|
84
|
+
deepConfigRef[FIELDS] ??= [];
|
|
85
|
+
deepConfigRef[FIELDS].push(fieldProperty);
|
|
86
|
+
}
|
|
87
|
+
if (config.pagination) {
|
|
88
|
+
joinerQuery[entity][ARGUMENTS] ??= {};
|
|
89
|
+
joinerQuery[entity][ARGUMENTS] = {
|
|
90
|
+
...joinerQuery[entity][ARGUMENTS],
|
|
91
|
+
...config.pagination,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
if (strategy) {
|
|
95
|
+
joinerQuery[entity][ARGUMENTS] ??= {};
|
|
96
|
+
joinerQuery[entity][ARGUMENTS]["options"] ??= {};
|
|
97
|
+
joinerQuery[entity][ARGUMENTS]["options"]["strategy"] = strategy;
|
|
98
|
+
}
|
|
99
|
+
if (withDeleted) {
|
|
100
|
+
joinerQuery[entity][ARGUMENTS] ??= {};
|
|
101
|
+
joinerQuery[entity][ARGUMENTS]["withDeleted"] = true;
|
|
102
|
+
}
|
|
103
|
+
(0, parse_filters_1.parseAndAssignFilters)({
|
|
104
|
+
entryPoint: entity,
|
|
105
|
+
filters: filters,
|
|
106
|
+
remoteQueryObject: joinerQuery,
|
|
107
|
+
}, entitiesMap);
|
|
108
|
+
return joinerQuery;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=to-remote-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-remote-query.js","sourceRoot":"","sources":["../../src/remote-query/to-remote-query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"medusa-module-mock.d.ts","sourceRoot":"","sources":["../../src/testing/medusa-module-mock.ts"],"names":[],"mappings":"AAaA,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.clearMedusaModuleMock = clearMedusaModuleMock;
|
|
4
|
+
const joinerConfigs = new Map();
|
|
5
|
+
global.MedusaModule = {
|
|
6
|
+
getLoadedModules: () => [],
|
|
7
|
+
getAllJoinerConfigs: () => [...joinerConfigs.values()],
|
|
8
|
+
setJoinerConfig: (moduleKey, config) => {
|
|
9
|
+
joinerConfigs.set(moduleKey, config);
|
|
10
|
+
return config;
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
function clearMedusaModuleMock() {
|
|
14
|
+
joinerConfigs.clear();
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=medusa-module-mock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"medusa-module-mock.js","sourceRoot":"","sources":["../../src/testing/medusa-module-mock.ts"],"names":[],"mappings":";;AAaA,sDAEC;AAbD,MAAM,aAAa,GAAG,IAAI,GAAG,EAA8B,CAAA;AAE3D,MAAM,CAAC,YAAY,GAAG;IACpB,gBAAgB,EAAE,GAAG,EAAE,CAAC,EAAE;IAC1B,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;IACtD,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE;QACrC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QACpC,OAAO,MAAM,CAAA;IACf,CAAC;CACF,CAAA;AAED,SAAgB,qBAAqB;IACnC,aAAa,CAAC,KAAK,EAAE,CAAA;AACvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["../src/index.ts","../src/medusa-module.ts","../src/__fixtures__/joiner/data.ts","../src/__mocks__/joiner/mock_data.ts","../src/__tests__/remote-query.spec.ts","../src/__tests__/joiner/helpers.spec.ts","../src/__tests__/joiner/remote-joiner-data.spec.ts","../src/__tests__/joiner/remote-joiner.spec.ts","../src/joiner/helpers.ts","../src/joiner/index.ts","../src/joiner/remote-joiner.ts","../src/remote-query/index.ts","../src/remote-query/parse-filters.ts","../src/remote-query/query.ts","../src/remote-query/remote-query.ts","../src/remote-query/to-remote-query.ts","../src/remote-query/__fixtures__/get-entities-map.ts","../src/remote-query/__fixtures__/parse-filters.ts","../src/remote-query/__fixtures__/remote-query-type.ts","../src/remote-query/__tests__/parse-filters.spec.ts","../src/remote-query/__tests__/query-locale.spec.ts","../src/remote-query/__tests__/to-remote-query.spec.ts","../src/testing/medusa-module-mock.ts"],"version":"5.9.3"}
|
package/package.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@medusajs/query",
|
|
3
|
+
"version": "2.17.2",
|
|
4
|
+
"description": "Medusa remote query and joiner",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": "./dist/index.js"
|
|
8
|
+
},
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/medusajs/medusa.git",
|
|
12
|
+
"directory": "packages/core/query"
|
|
13
|
+
},
|
|
14
|
+
"bugs": {
|
|
15
|
+
"url": "https://github.com/medusajs/medusa/issues"
|
|
16
|
+
},
|
|
17
|
+
"engines": {
|
|
18
|
+
"node": ">=20"
|
|
19
|
+
},
|
|
20
|
+
"publishConfig": {
|
|
21
|
+
"access": "public"
|
|
22
|
+
},
|
|
23
|
+
"files": [
|
|
24
|
+
"dist",
|
|
25
|
+
"!dist/**/__tests__",
|
|
26
|
+
"!dist/**/__fixtures__",
|
|
27
|
+
"!dist/**/__mocks__"
|
|
28
|
+
],
|
|
29
|
+
"author": "Medusa",
|
|
30
|
+
"license": "MIT",
|
|
31
|
+
"scripts": {
|
|
32
|
+
"build": "yarn run -T rimraf dist && yarn run -T tsc --build",
|
|
33
|
+
"test": "../../../node_modules/.bin/jest --bail --forceExit",
|
|
34
|
+
"watch": "yarn run -T tsc --build --watch"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@medusajs/types": "2.17.2"
|
|
38
|
+
},
|
|
39
|
+
"dependencies": {
|
|
40
|
+
"@medusajs/deps": "2.17.2",
|
|
41
|
+
"@medusajs/utils": "2.17.2"
|
|
42
|
+
}
|
|
43
|
+
}
|