@restorecommerce/resource-base-interface 1.6.4 → 1.7.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/eslint.config.mjs +22 -0
- package/lib/core/GraphResourcesServiceBase.d.ts +9 -5
- package/lib/core/GraphResourcesServiceBase.d.ts.map +1 -0
- package/lib/core/GraphResourcesServiceBase.js +79 -110
- package/lib/core/GraphResourcesServiceBase.js.map +1 -1
- package/lib/core/ResourcesAPI.d.ts +26 -19
- package/lib/core/ResourcesAPI.d.ts.map +1 -0
- package/lib/core/ResourcesAPI.js +275 -398
- package/lib/core/ResourcesAPI.js.map +1 -1
- package/lib/core/ServiceBase.d.ts +29 -10
- package/lib/core/ServiceBase.d.ts.map +1 -0
- package/lib/core/ServiceBase.js +137 -242
- package/lib/core/ServiceBase.js.map +1 -1
- package/lib/core/index.d.ts +5 -0
- package/lib/core/index.d.ts.map +1 -0
- package/lib/core/index.js +21 -0
- package/lib/core/index.js.map +1 -0
- package/lib/core/interfaces.d.ts +6 -72
- package/lib/core/interfaces.d.ts.map +1 -0
- package/lib/core/interfaces.js +18 -31
- package/lib/core/interfaces.js.map +1 -1
- package/lib/core/utils.d.ts +3 -1
- package/lib/core/utils.d.ts.map +1 -0
- package/lib/core/utils.js +28 -32
- package/lib/core/utils.js.map +1 -1
- package/lib/experimental/AccessControlledServiceBase.d.ts +30 -0
- package/lib/experimental/AccessControlledServiceBase.d.ts.map +1 -0
- package/lib/experimental/AccessControlledServiceBase.js +232 -0
- package/lib/experimental/AccessControlledServiceBase.js.map +1 -0
- package/lib/experimental/ClientRegister.d.ts +22 -0
- package/lib/experimental/ClientRegister.d.ts.map +1 -0
- package/lib/experimental/ClientRegister.js +33 -0
- package/lib/experimental/ClientRegister.js.map +1 -0
- package/lib/experimental/Pipe.d.ts +6 -0
- package/lib/experimental/Pipe.d.ts.map +1 -0
- package/lib/experimental/Pipe.js +14 -0
- package/lib/experimental/Pipe.js.map +1 -0
- package/lib/experimental/ResourceAggregator.d.ts +35 -0
- package/lib/experimental/ResourceAggregator.d.ts.map +1 -0
- package/lib/experimental/ResourceAggregator.js +94 -0
- package/lib/experimental/ResourceAggregator.js.map +1 -0
- package/lib/experimental/ResourceAwaitQueue.d.ts +12 -0
- package/lib/experimental/ResourceAwaitQueue.d.ts.map +1 -0
- package/lib/experimental/ResourceAwaitQueue.js +34 -0
- package/lib/experimental/ResourceAwaitQueue.js.map +1 -0
- package/lib/experimental/ResourceMap.d.ts +16 -0
- package/lib/experimental/ResourceMap.d.ts.map +1 -0
- package/lib/experimental/ResourceMap.js +51 -0
- package/lib/experimental/ResourceMap.js.map +1 -0
- package/lib/{core → experimental}/WorkerBase.d.ts +10 -14
- package/lib/experimental/WorkerBase.d.ts.map +1 -0
- package/lib/{core → experimental}/WorkerBase.js +44 -30
- package/lib/experimental/WorkerBase.js.map +1 -0
- package/lib/experimental/index.d.ts +7 -0
- package/lib/experimental/index.d.ts.map +1 -0
- package/lib/experimental/index.js +23 -0
- package/lib/experimental/index.js.map +1 -0
- package/lib/index.d.ts +5 -7
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +84 -144
- package/lib/index.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/package.json +23 -28
- package/tsconfig.json +11 -25
- package/lib/core/WorkerBase.js.map +0 -1
package/lib/index.js
CHANGED
|
@@ -22,97 +22,82 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
26
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
27
|
+
};
|
|
25
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
29
|
+
exports.toObject = exports.convertToObject = void 0;
|
|
27
30
|
const _ = __importStar(require("lodash"));
|
|
31
|
+
const interfaces_1 = require("./core/interfaces");
|
|
32
|
+
/*
|
|
28
33
|
const filterOperationMap = new Map([
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
[0, 'eq'],
|
|
35
|
+
[1, 'lt'],
|
|
36
|
+
[2, 'lte'],
|
|
37
|
+
[3, 'gt'],
|
|
38
|
+
[4, 'gte'],
|
|
39
|
+
[5, 'isEmpty'],
|
|
40
|
+
[6, 'iLike'],
|
|
41
|
+
[7, 'in'],
|
|
42
|
+
[8, 'neq']
|
|
38
43
|
]);
|
|
44
|
+
*/
|
|
39
45
|
const filterOperatorMap = new Map([
|
|
40
46
|
[0, 'and'],
|
|
41
47
|
[1, 'or']
|
|
42
48
|
]);
|
|
43
49
|
const insertFilterFieldOpValue = (filter, object, key) => {
|
|
44
|
-
let value;
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
value = true;
|
|
54
|
-
}
|
|
55
|
-
else if (filter.value === 'false') {
|
|
56
|
-
value = false;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
else if (filter.type === 'ARRAY' || filter.type === 4) {
|
|
60
|
-
try {
|
|
61
|
-
value = JSON.parse(filter.value);
|
|
62
|
-
}
|
|
63
|
-
catch (err) {
|
|
64
|
-
// to handle JSON string parse error
|
|
65
|
-
if (err.message.indexOf('Unexpected token') > -1) {
|
|
66
|
-
value = JSON.parse(JSON.stringify(filter.value));
|
|
50
|
+
let value = undefined;
|
|
51
|
+
filter.type ??= interfaces_1.FilterValueType.STRING; // defaults to string if undefined
|
|
52
|
+
switch (filter.type) {
|
|
53
|
+
case interfaces_1.FilterValueType.NUMBER:
|
|
54
|
+
value = Number(filter.value);
|
|
55
|
+
break;
|
|
56
|
+
case interfaces_1.FilterValueType.BOOLEAN:
|
|
57
|
+
if (filter.value === 'true') {
|
|
58
|
+
value = true;
|
|
67
59
|
}
|
|
68
|
-
else {
|
|
69
|
-
|
|
60
|
+
else if (filter.value === 'false') {
|
|
61
|
+
value = false;
|
|
70
62
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
op = `$${opValue}`;
|
|
110
|
-
if (_.isArray(temp)) {
|
|
111
|
-
temp.push({ [filter.field]: { [op]: value } });
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
temp.push({ [filter.field]: { [op]: value } });
|
|
115
|
-
}
|
|
63
|
+
break;
|
|
64
|
+
case interfaces_1.FilterValueType.ARRAY:
|
|
65
|
+
try {
|
|
66
|
+
value = JSON.parse(filter.value);
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
// to handle JSON string parse error
|
|
70
|
+
if (err.message.includes('Unexpected token')) {
|
|
71
|
+
value = JSON.parse(JSON.stringify(filter.value));
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
throw err;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
break;
|
|
78
|
+
case interfaces_1.FilterValueType.DATE:
|
|
79
|
+
value = (new Date(filter.value)).getTime();
|
|
80
|
+
break;
|
|
81
|
+
default:
|
|
82
|
+
case interfaces_1.FilterValueType.STRING:
|
|
83
|
+
value = filter.value;
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
object = key ? object[key] : [];
|
|
87
|
+
if (!Array.isArray(object)) {
|
|
88
|
+
throw new Error('Filter object has to be of type Array');
|
|
89
|
+
}
|
|
90
|
+
filter.operation ??= interfaces_1.FilterOperation.eq; // defaults to eq if undefined;
|
|
91
|
+
switch (filter.operation) {
|
|
92
|
+
case interfaces_1.FilterOperation.eq:
|
|
93
|
+
object.push({ [filter.field]: value });
|
|
94
|
+
break;
|
|
95
|
+
case interfaces_1.FilterOperation.neq:
|
|
96
|
+
object.push({ [filter.field]: { $not: { $eq: value } } });
|
|
97
|
+
break;
|
|
98
|
+
default:
|
|
99
|
+
object.push({ [filter.field]: { [`$${filter.operation}`]: value } });
|
|
100
|
+
break;
|
|
116
101
|
}
|
|
117
102
|
return object;
|
|
118
103
|
};
|
|
@@ -168,14 +153,12 @@ const convertToObject = (input, obj, currentOperator) => {
|
|
|
168
153
|
filters = input;
|
|
169
154
|
}
|
|
170
155
|
// by default use 'and' operator if no operator is specified
|
|
171
|
-
if (
|
|
156
|
+
if (Array.isArray(filters?.filters) && !filters.operator) {
|
|
172
157
|
filters.operator = 'and';
|
|
173
158
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
if (_.isArray(filters)) {
|
|
178
|
-
for (let filterObj of filters) {
|
|
159
|
+
obj ??= {};
|
|
160
|
+
if (Array.isArray(filters)) {
|
|
161
|
+
for (const filterObj of filters) {
|
|
179
162
|
let operatorValue;
|
|
180
163
|
if (typeof filterObj.operator === 'string' || filterObj.operator instanceof String) {
|
|
181
164
|
operatorValue = filterObj.operator;
|
|
@@ -195,13 +178,13 @@ const convertToObject = (input, obj, currentOperator) => {
|
|
|
195
178
|
(0, exports.convertToObject)(filterObj, obj, newOperator);
|
|
196
179
|
}
|
|
197
180
|
}
|
|
198
|
-
else if (filters.field && (filters.operation || filters.operation === 0) && filters.value
|
|
181
|
+
else if (filters.field && (filters.operation || filters.operation === 0) && filters.value !== undefined) {
|
|
199
182
|
// object contains field, operation and value, update it on obj using convertFilterToObject()
|
|
200
183
|
obj = convertFilterToObject(obj, currentOperator, filters);
|
|
201
184
|
}
|
|
202
|
-
else if (
|
|
203
|
-
for (
|
|
204
|
-
|
|
185
|
+
else if (Array.isArray(filters?.filters)) {
|
|
186
|
+
for (const filterObj of filters.filters) {
|
|
187
|
+
const operator = filters.operator ? filters.operator : 'and';
|
|
205
188
|
(0, exports.convertToObject)(filterObj, obj, operator);
|
|
206
189
|
}
|
|
207
190
|
}
|
|
@@ -211,62 +194,19 @@ exports.convertToObject = convertToObject;
|
|
|
211
194
|
/**
|
|
212
195
|
* converts input filters to json object understandable by chassis-srv for AQL conversion
|
|
213
196
|
* @param input input filters object
|
|
214
|
-
* @returns json object understandable by
|
|
197
|
+
* @returns json object understandable by chassis-srv for AQL conversion
|
|
215
198
|
*/
|
|
216
199
|
const toObject = (input) => {
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
for (let filterArr of filtersArr) {
|
|
227
|
-
let convertedObject = [];
|
|
228
|
-
let filterObj = filterArr?.filters;
|
|
229
|
-
let operatorValue;
|
|
230
|
-
if (typeof filterArr?.operator === 'string' || filterArr?.operator instanceof String) {
|
|
231
|
-
operatorValue = filterArr?.operator;
|
|
232
|
-
}
|
|
233
|
-
else if (Number.isInteger(filterArr?.operator)) {
|
|
234
|
-
operatorValue = filterOperatorMap.get(filterArr?.operator);
|
|
235
|
-
}
|
|
236
|
-
// default operator is `and`
|
|
237
|
-
if (!operatorValue) {
|
|
238
|
-
operatorValue = 'and';
|
|
239
|
-
}
|
|
240
|
-
if (_.isArray(filterObj)) {
|
|
241
|
-
for (let filter of filterObj) {
|
|
242
|
-
let obj = {};
|
|
243
|
-
obj = (0, exports.convertToObject)(filter, obj);
|
|
244
|
-
if (!_.isEmpty(obj)) {
|
|
245
|
-
convertedObject.push(obj);
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
if (_.isArray(finalObj) && (!_.isEmpty(convertedObject))) {
|
|
250
|
-
finalObj.push({ [`$${operatorValue}`]: convertedObject });
|
|
251
|
-
}
|
|
252
|
-
else if (!_.isEmpty(convertedObject)) {
|
|
253
|
-
finalObj[`$${operatorValue}`] = convertedObject;
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
return finalObj;
|
|
200
|
+
const filters = input.filters ?? [];
|
|
201
|
+
const result = filters.map(filter => {
|
|
202
|
+
const obj = filter.filters.map((sf) => (0, exports.convertToObject)(sf, {}));
|
|
203
|
+
const operatorValue = filter?.operator ?? interfaces_1.OperatorType.and; // defaults to `and`
|
|
204
|
+
return {
|
|
205
|
+
[`$${operatorValue}`]: obj
|
|
206
|
+
};
|
|
207
|
+
});
|
|
208
|
+
return result.length === 1 ? result[0] : result;
|
|
258
209
|
};
|
|
259
210
|
exports.toObject = toObject;
|
|
260
|
-
|
|
261
|
-
Object.defineProperty(exports, "ResourcesAPIBase", { enumerable: true, get: function () { return ResourcesAPI_1.ResourcesAPIBase; } });
|
|
262
|
-
var ServiceBase_1 = require("./core/ServiceBase");
|
|
263
|
-
Object.defineProperty(exports, "ServiceBase", { enumerable: true, get: function () { return ServiceBase_1.ServiceBase; } });
|
|
264
|
-
var WorkerBase_1 = require("./core/WorkerBase");
|
|
265
|
-
Object.defineProperty(exports, "WorkerBase", { enumerable: true, get: function () { return WorkerBase_1.WorkerBase; } });
|
|
266
|
-
var GraphResourcesServiceBase_1 = require("./core/GraphResourcesServiceBase");
|
|
267
|
-
Object.defineProperty(exports, "GraphResourcesServiceBase", { enumerable: true, get: function () { return GraphResourcesServiceBase_1.GraphResourcesServiceBase; } });
|
|
268
|
-
var interfaces_1 = require("./core/interfaces");
|
|
269
|
-
Object.defineProperty(exports, "FilterOperation", { enumerable: true, get: function () { return interfaces_1.FilterOperation; } });
|
|
270
|
-
Object.defineProperty(exports, "FilterValueType", { enumerable: true, get: function () { return interfaces_1.FilterValueType; } });
|
|
271
|
-
Object.defineProperty(exports, "OperatorType", { enumerable: true, get: function () { return interfaces_1.OperatorType; } });
|
|
211
|
+
__exportStar(require("./core"), exports);
|
|
272
212
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|