@wix/filter-builder 1.0.16 → 1.0.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/cjs/__tests__/filter.spec.js +16 -22
- package/dist/cjs/__tests__/filter.spec.js.map +1 -1
- package/dist/cjs/__tests__/query-optimizer.spec.js +0 -4
- package/dist/cjs/__tests__/query-optimizer.spec.js.map +1 -1
- package/dist/cjs/clone.js +0 -6
- package/dist/cjs/clone.js.map +1 -1
- package/dist/cjs/filter-builder.js +0 -8
- package/dist/cjs/filter-builder.js.map +1 -1
- package/dist/cjs/filter-mixin.js +29 -94
- package/dist/cjs/filter-mixin.js.map +1 -1
- package/dist/cjs/filter-validator.js +0 -25
- package/dist/cjs/filter-validator.js.map +1 -1
- package/dist/cjs/index.js +0 -11
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/query-optimiser.js +12 -57
- package/dist/cjs/query-optimiser.js.map +1 -1
- package/dist/cjs/type-utils.js +0 -14
- package/dist/cjs/type-utils.js.map +1 -1
- package/dist/cjs/validator.js.map +1 -1
- package/dist/cjs/wix-data-encoder.js +0 -2
- package/dist/cjs/wix-data-encoder.js.map +1 -1
- package/dist/statics/filter-builder.umd.js +170 -170
- package/dist/statics/filter-builder.umd.js.map +1 -1
- package/dist/statics/filter-builder.umd.min.js +1 -1
- package/dist/statics/filter-builder.umd.min.js.map +1 -1
- package/dist/statics/manifest.json +1 -1
- package/dist/statics/manifest.min.json +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
package/dist/cjs/filter-mixin.js
CHANGED
|
@@ -1,20 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
exports.__esModule = true;
|
|
6
5
|
exports.default = void 0;
|
|
7
|
-
|
|
8
6
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
-
|
|
10
7
|
var _typeUtils = require("./type-utils");
|
|
11
|
-
|
|
12
8
|
var _clone = _interopRequireDefault(require("./clone"));
|
|
13
|
-
|
|
14
9
|
var _filterValidator = require("./filter-validator");
|
|
15
|
-
|
|
16
10
|
var _queryOptimiser = require("./query-optimiser");
|
|
17
|
-
|
|
18
11
|
const filterMixin = (Base = class {}) => class extends Base {
|
|
19
12
|
constructor(obj = {}) {
|
|
20
13
|
super(obj);
|
|
@@ -27,80 +20,61 @@ const filterMixin = (Base = class {}) => class extends Base {
|
|
|
27
20
|
this.invalidArguments = obj.invalidArguments || [];
|
|
28
21
|
this.encoder = obj.encoder || {};
|
|
29
22
|
}
|
|
30
|
-
|
|
31
23
|
eq(...args) {
|
|
32
24
|
return this._binaryAnd('$eq', '.eq', args);
|
|
33
25
|
}
|
|
34
|
-
|
|
35
26
|
ne(...args) {
|
|
36
27
|
return this._binaryAnd('$ne', '.ne', args);
|
|
37
28
|
}
|
|
38
|
-
|
|
39
29
|
ge(...args) {
|
|
40
30
|
return this._AndLogicalEquivalence('$gte', '.ge', args);
|
|
41
31
|
}
|
|
42
|
-
|
|
43
32
|
gt(...args) {
|
|
44
33
|
return this._AndLogicalEquivalence('$gt', '.gt', args);
|
|
45
34
|
}
|
|
46
|
-
|
|
47
35
|
le(...args) {
|
|
48
36
|
return this._AndLogicalEquivalence('$lte', '.le', args);
|
|
49
37
|
}
|
|
50
|
-
|
|
51
38
|
lt(...args) {
|
|
52
39
|
return this._AndLogicalEquivalence('$lt', '.lt', args);
|
|
53
40
|
}
|
|
54
|
-
|
|
55
41
|
isNotEmpty(field) {
|
|
56
42
|
const _this$_filterValidato = this._filterValidator('.isNotEmpty').arityIsOne(arguments).validFieldName(field).validateAndAggregate(),
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
43
|
+
newInvalidArguments = _this$_filterValidato[0],
|
|
44
|
+
valid = _this$_filterValidato[1];
|
|
60
45
|
if (valid) {
|
|
61
46
|
return this.ne(field, null);
|
|
62
47
|
}
|
|
63
|
-
|
|
64
48
|
return this._copy(this.filterTree, newInvalidArguments);
|
|
65
49
|
}
|
|
66
|
-
|
|
67
50
|
isEmpty(field) {
|
|
68
51
|
const _this$_filterValidato2 = this._filterValidator('.isEmpty').arityIsOne(arguments).validFieldName(field).validateAndAggregate(),
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
52
|
+
newInvalidArguments = _this$_filterValidato2[0],
|
|
53
|
+
valid = _this$_filterValidato2[1];
|
|
72
54
|
if (valid) {
|
|
73
55
|
return this.eq(field, null);
|
|
74
56
|
}
|
|
75
|
-
|
|
76
57
|
return this._copy(this.filterTree, newInvalidArguments);
|
|
77
58
|
}
|
|
78
|
-
|
|
79
59
|
startsWith(...args) {
|
|
80
60
|
return this._AndStringOperand('$startsWith', '.startsWith', args);
|
|
81
61
|
}
|
|
82
|
-
|
|
83
62
|
endsWith(...args) {
|
|
84
63
|
return this._AndStringOperand('$endsWith', '.endsWith', args);
|
|
85
64
|
}
|
|
86
|
-
|
|
87
65
|
contains(...args) {
|
|
88
66
|
return this._AndStringOperand('$contains', '.contains', args);
|
|
89
67
|
}
|
|
90
|
-
|
|
91
68
|
hasSome(...args) {
|
|
92
69
|
return this._AndSetOperand('$hasSome', '.hasSome', args);
|
|
93
70
|
}
|
|
94
|
-
|
|
95
71
|
hasAll(...args) {
|
|
96
72
|
return this._AndSetOperand('$hasAll', '.hasAll', args);
|
|
97
73
|
}
|
|
98
|
-
|
|
99
74
|
or(orQuery) {
|
|
100
75
|
const _this$_filterValidato3 = this._filterValidator('.or').arityIsOne(arguments).isInstanceOfSameClass(orQuery).validateAndAggregate(),
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
76
|
+
newInvalidArguments = _this$_filterValidato3[0],
|
|
77
|
+
valid = _this$_filterValidato3[1];
|
|
104
78
|
if (valid) {
|
|
105
79
|
const prefix = isEmptyAnd(this.filterTree) ? [] : [this.filterTree];
|
|
106
80
|
return this._copy(inAnd({
|
|
@@ -110,12 +84,10 @@ const filterMixin = (Base = class {}) => class extends Base {
|
|
|
110
84
|
return this._copy(this.filterTree, newInvalidArguments);
|
|
111
85
|
}
|
|
112
86
|
}
|
|
113
|
-
|
|
114
87
|
and(andQuery) {
|
|
115
88
|
const _this$_filterValidato4 = this._filterValidator('.and').arityIsOne(arguments).isInstanceOfSameClass(andQuery).validateAndAggregate(),
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
89
|
+
newInvalidArguments = _this$_filterValidato4[0],
|
|
90
|
+
valid = _this$_filterValidato4[1];
|
|
119
91
|
if (valid) {
|
|
120
92
|
const prefix = isEmptyAnd(this.filterTree) ? [] : [this.filterTree];
|
|
121
93
|
return this._copy(inAnd(...prefix, andQuery.filterTree), newInvalidArguments.concat(andQuery.invalidArguments));
|
|
@@ -123,12 +95,10 @@ const filterMixin = (Base = class {}) => class extends Base {
|
|
|
123
95
|
return this._copy(this.filterTree, newInvalidArguments);
|
|
124
96
|
}
|
|
125
97
|
}
|
|
126
|
-
|
|
127
98
|
not(notQuery) {
|
|
128
99
|
const _this$_filterValidato5 = this._filterValidator('.not').arityIsOne(arguments).isInstanceOfSameClass(notQuery).validateAndAggregate(),
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
100
|
+
newInvalidArguments = _this$_filterValidato5[0],
|
|
101
|
+
valid = _this$_filterValidato5[1];
|
|
132
102
|
if (valid) {
|
|
133
103
|
const newFilterTree = (0, _clone.default)(this.filterTree);
|
|
134
104
|
const notClause = {
|
|
@@ -140,94 +110,69 @@ const filterMixin = (Base = class {}) => class extends Base {
|
|
|
140
110
|
return this._copy(this.filterTree, newInvalidArguments);
|
|
141
111
|
}
|
|
142
112
|
}
|
|
143
|
-
|
|
144
113
|
between(field, rangeStart, rangeEnd) {
|
|
145
114
|
const _this$_filterValidato6 = this._filterValidator('.between').arityIsThree(arguments).sameType(rangeStart, rangeEnd).typeIsStringNumberOrDate(rangeStart).typeIsStringNumberOrDate(rangeEnd).validateAndAggregate(),
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
115
|
+
newInvalidArguments = _this$_filterValidato6[0],
|
|
116
|
+
valid = _this$_filterValidato6[1];
|
|
149
117
|
if (valid) {
|
|
150
118
|
return this.ge(field, rangeStart).lt(field, rangeEnd);
|
|
151
119
|
}
|
|
152
|
-
|
|
153
120
|
return this._copy(this.filterTree, newInvalidArguments);
|
|
154
121
|
}
|
|
155
|
-
|
|
156
122
|
getFilterModel() {
|
|
157
123
|
if (this.invalidArguments.length > 0) {
|
|
158
124
|
throw new Error(this.invalidArguments.join(' '));
|
|
159
125
|
}
|
|
160
|
-
|
|
161
126
|
return (0, _queryOptimiser.optimisedQuery)(this.filterTree);
|
|
162
127
|
}
|
|
163
|
-
|
|
164
128
|
setFilterModel(filterModel) {
|
|
165
129
|
return this._copy(filterModel, []);
|
|
166
130
|
}
|
|
167
|
-
|
|
168
131
|
_binaryAnd(filterOperatorSymbol, operatorName, args) {
|
|
169
132
|
const _Array$prototype$slic = Array.prototype.slice.call(args),
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
133
|
+
field = _Array$prototype$slic[0],
|
|
134
|
+
operand = _Array$prototype$slic[1];
|
|
173
135
|
const _this$_filterValidato7 = this._filterValidator(operatorName).arityIsTwo(args).validFieldName(field).validateAndAggregate(),
|
|
174
|
-
|
|
175
|
-
|
|
136
|
+
newInvalidArguments = _this$_filterValidato7[0];
|
|
176
137
|
const newFilterTree = this._makeNewFilter(field, filterOperatorSymbol, operand);
|
|
177
|
-
|
|
178
138
|
return this._copy(newFilterTree, newInvalidArguments);
|
|
179
139
|
}
|
|
180
|
-
|
|
181
140
|
_AndLogicalEquivalence(filterOperatorSymbol, operatorName, args) {
|
|
182
141
|
const _Array$prototype$slic2 = Array.prototype.slice.call(args),
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
142
|
+
field = _Array$prototype$slic2[0],
|
|
143
|
+
operand = _Array$prototype$slic2[1];
|
|
186
144
|
const _this$_filterValidato8 = this._filterValidator(operatorName).arityIsTwo(args).validFieldName(field).typeIsStringNumberOrDate(operand).validateAndAggregate(),
|
|
187
|
-
|
|
188
|
-
|
|
145
|
+
newInvalidArguments = _this$_filterValidato8[0];
|
|
189
146
|
const newFilterTree = this._makeNewFilter(field, filterOperatorSymbol, operand);
|
|
190
|
-
|
|
191
147
|
return this._copy(newFilterTree, newInvalidArguments);
|
|
192
148
|
}
|
|
193
|
-
|
|
194
149
|
_AndStringOperand(filterOperatorName, operatorName, args) {
|
|
195
150
|
const _Array$prototype$slic3 = Array.prototype.slice.call(args),
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
151
|
+
field = _Array$prototype$slic3[0],
|
|
152
|
+
operand = _Array$prototype$slic3[1];
|
|
199
153
|
const _this$_filterValidato9 = this._filterValidator(operatorName).arityIsTwo(args).validFieldName(field).typeIsString(operand).validateAndAggregate(),
|
|
200
|
-
|
|
201
|
-
|
|
154
|
+
newInvalidArguments = _this$_filterValidato9[0];
|
|
202
155
|
const newFilterTree = this._makeNewFilter(field, filterOperatorName, operand);
|
|
203
|
-
|
|
204
156
|
return this._copy(newFilterTree, newInvalidArguments);
|
|
205
157
|
}
|
|
206
|
-
|
|
207
158
|
_AndSetOperand(filterOperatorName, operatorName, args) {
|
|
208
159
|
const _Array$prototype$slic4 = Array.prototype.slice.call(args),
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
160
|
+
field = _Array$prototype$slic4[0],
|
|
161
|
+
rawOperands = _Array$prototype$slic4.slice(1);
|
|
212
162
|
const operands = (0, _typeUtils.isArray)(rawOperands[0]) ? rawOperands[0] : rawOperands;
|
|
213
|
-
|
|
214
163
|
const _this$_filterValidato10 = this._filterValidator(operatorName).arityIsAtLeastTwo(args).validFieldName(field).typeIsStringNumberOrDateForAll(operands).validateAndAggregate(),
|
|
215
|
-
|
|
216
|
-
|
|
164
|
+
newInvalidArguments = _this$_filterValidato10[0];
|
|
217
165
|
const newFilterTree = this._makeNewFilter(field, filterOperatorName, operands);
|
|
218
|
-
|
|
219
166
|
return this._copy(newFilterTree, newInvalidArguments);
|
|
220
167
|
}
|
|
221
|
-
|
|
222
168
|
_makeNewFilter(field, filterOperatorName, operand) {
|
|
223
|
-
const newFilterTree = (0, _clone.default)(this.filterTree);
|
|
169
|
+
const newFilterTree = (0, _clone.default)(this.filterTree);
|
|
170
|
+
|
|
171
|
+
// filters with 'undefined' value are lost during serialization,
|
|
224
172
|
// e.g. { val: { $ne: undefined } | translates to { val: {} }
|
|
225
173
|
// Replacing 'undefined' with 'null' retains the filter.
|
|
226
|
-
|
|
227
174
|
const serializableOperand = operand === undefined ? null : operand;
|
|
228
|
-
|
|
229
175
|
const newFilter = this._buildFilter(field, filterOperatorName, serializableOperand);
|
|
230
|
-
|
|
231
176
|
if ((0, _typeUtils.isArray)(newFilterTree.$and)) {
|
|
232
177
|
newFilterTree.$and.push(newFilter);
|
|
233
178
|
return newFilterTree;
|
|
@@ -236,7 +181,6 @@ const filterMixin = (Base = class {}) => class extends Base {
|
|
|
236
181
|
return result;
|
|
237
182
|
}
|
|
238
183
|
}
|
|
239
|
-
|
|
240
184
|
_buildFilter(field, filterOperatorName, operand) {
|
|
241
185
|
if (filterOperatorName !== '$eq') {
|
|
242
186
|
const newFilter = {};
|
|
@@ -249,7 +193,6 @@ const filterMixin = (Base = class {}) => class extends Base {
|
|
|
249
193
|
return newFilter;
|
|
250
194
|
}
|
|
251
195
|
}
|
|
252
|
-
|
|
253
196
|
_encode(operand) {
|
|
254
197
|
if ((0, _typeUtils.isFunction)(this.encoder)) {
|
|
255
198
|
return this.encoder(operand);
|
|
@@ -257,45 +200,37 @@ const filterMixin = (Base = class {}) => class extends Base {
|
|
|
257
200
|
return operand;
|
|
258
201
|
}
|
|
259
202
|
}
|
|
260
|
-
|
|
261
203
|
_copy(filterTree, invalidArguments) {
|
|
262
204
|
// @ts-ignore-next-line
|
|
263
|
-
return new this.constructor({
|
|
205
|
+
return new this.constructor({
|
|
206
|
+
...this,
|
|
264
207
|
filterTree,
|
|
265
208
|
invalidArguments
|
|
266
209
|
});
|
|
267
210
|
}
|
|
268
|
-
|
|
269
211
|
_filterValidator(filterOperatorName) {
|
|
270
212
|
return new _filterValidator.FilterValidator(filterOperatorName, this.invalidArguments, this.constructor);
|
|
271
213
|
}
|
|
272
|
-
|
|
273
214
|
};
|
|
274
|
-
|
|
275
215
|
function isConjunctiveFormFilter(filterTree) {
|
|
276
216
|
return (0, _typeUtils.isArray)(filterTree.$and);
|
|
277
217
|
}
|
|
278
|
-
|
|
279
218
|
function isEmptyObject(obj) {
|
|
280
219
|
return Object.keys(obj).length === 0;
|
|
281
220
|
}
|
|
282
|
-
|
|
283
221
|
function inAnd(...args) {
|
|
284
222
|
return {
|
|
285
223
|
$and: args
|
|
286
224
|
};
|
|
287
225
|
}
|
|
288
|
-
|
|
289
226
|
function inAndOptimized(...args) {
|
|
290
227
|
return {
|
|
291
228
|
$and: args.reduce((aggr, val) => isConjunctiveFormFilter(val) ? aggr.concat(val.$and) : aggr.concat([val]), [])
|
|
292
229
|
};
|
|
293
230
|
}
|
|
294
|
-
|
|
295
231
|
function isEmptyAnd(node) {
|
|
296
232
|
return node && node.$and && node.$and.length === 0;
|
|
297
233
|
}
|
|
298
|
-
|
|
299
234
|
var _default = filterMixin;
|
|
300
235
|
exports.default = _default;
|
|
301
236
|
//# sourceMappingURL=filter-mixin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/filter-mixin.ts"],"names":["filterMixin","Base","constructor","obj","filterTree","$and","invalidArguments","encoder","eq","args","_binaryAnd","ne","ge","_AndLogicalEquivalence","gt","le","lt","isNotEmpty","field","_filterValidator","arityIsOne","arguments","validFieldName","validateAndAggregate","newInvalidArguments","valid","_copy","isEmpty","startsWith","_AndStringOperand","endsWith","contains","hasSome","_AndSetOperand","hasAll","or","orQuery","isInstanceOfSameClass","prefix","isEmptyAnd","inAnd","$or","concat","and","andQuery","not","notQuery","newFilterTree","notClause","$not","resultingFilter","inAndOptimized","between","rangeStart","rangeEnd","arityIsThree","sameType","typeIsStringNumberOrDate","getFilterModel","length","Error","join","setFilterModel","filterModel","filterOperatorSymbol","operatorName","Array","prototype","slice","call","operand","arityIsTwo","_makeNewFilter","filterOperatorName","typeIsString","rawOperands","operands","arityIsAtLeastTwo","typeIsStringNumberOrDateForAll","serializableOperand","undefined","newFilter","_buildFilter","push","result","isEmptyObject","_encode","FilterValidator","isConjunctiveFormFilter","Object","keys","reduce","aggr","val","node"],"mappings":"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","sourcesContent":["import { isArray, isFunction } from './type-utils'\nimport clone from './clone'\nimport { FilterValidator } from './filter-validator'\nimport { Validator } from './validator'\nimport { optimisedQuery } from './query-optimiser'\n\nconst filterMixin = (Base: any = class {}) =>\n class extends Base {\n filterTree\n invalidArguments\n encoder\n\n constructor(obj: { filterTree?; invalidArguments?; encoder? } = {}) {\n super(obj)\n this.filterTree = obj.filterTree || { $and: [] }\n this.invalidArguments = obj.invalidArguments || []\n this.encoder = obj.encoder || {}\n }\n\n eq(...args) {\n return this._binaryAnd('$eq', '.eq', args)\n }\n\n ne(...args) {\n return this._binaryAnd('$ne', '.ne', args)\n }\n\n ge(...args) {\n return this._AndLogicalEquivalence('$gte', '.ge', args)\n }\n\n gt(...args) {\n return this._AndLogicalEquivalence('$gt', '.gt', args)\n }\n\n le(...args) {\n return this._AndLogicalEquivalence('$lte', '.le', args)\n }\n\n lt(...args) {\n return this._AndLogicalEquivalence('$lt', '.lt', args)\n }\n\n isNotEmpty(field) {\n const [newInvalidArguments, valid] = this._filterValidator('.isNotEmpty')\n .arityIsOne(arguments)\n .validFieldName(field)\n .validateAndAggregate()\n\n if (valid) {\n return this.ne(field, null)\n }\n\n return this._copy(this.filterTree, newInvalidArguments)\n }\n\n isEmpty(field) {\n const [newInvalidArguments, valid] = this._filterValidator('.isEmpty')\n .arityIsOne(arguments)\n .validFieldName(field)\n .validateAndAggregate()\n\n if (valid) {\n return this.eq(field, null)\n }\n\n return this._copy(this.filterTree, newInvalidArguments)\n }\n\n startsWith(...args) {\n return this._AndStringOperand('$startsWith', '.startsWith', args)\n }\n\n endsWith(...args) {\n return this._AndStringOperand('$endsWith', '.endsWith', args)\n }\n\n contains(...args) {\n return this._AndStringOperand('$contains', '.contains', args)\n }\n\n hasSome(...args) {\n return this._AndSetOperand('$hasSome', '.hasSome', args)\n }\n\n hasAll(...args) {\n return this._AndSetOperand('$hasAll', '.hasAll', args)\n }\n\n or(orQuery) {\n const [newInvalidArguments, valid] = this._filterValidator('.or')\n .arityIsOne(arguments)\n .isInstanceOfSameClass(orQuery)\n .validateAndAggregate()\n\n if (valid) {\n const prefix = isEmptyAnd(this.filterTree) ? [] : [this.filterTree]\n return this._copy(\n inAnd({ $or: [...prefix, orQuery.filterTree] }),\n newInvalidArguments.concat(orQuery.invalidArguments)\n )\n } else {\n return this._copy(this.filterTree, newInvalidArguments)\n }\n }\n\n and(andQuery) {\n const [newInvalidArguments, valid] = this._filterValidator('.and')\n .arityIsOne(arguments)\n .isInstanceOfSameClass(andQuery)\n .validateAndAggregate()\n\n if (valid) {\n const prefix = isEmptyAnd(this.filterTree) ? [] : [this.filterTree]\n return this._copy(\n inAnd(...prefix, andQuery.filterTree),\n newInvalidArguments.concat(andQuery.invalidArguments)\n )\n } else {\n return this._copy(this.filterTree, newInvalidArguments)\n }\n }\n\n not(notQuery) {\n const [newInvalidArguments, valid] = this._filterValidator('.not')\n .arityIsOne(arguments)\n .isInstanceOfSameClass(notQuery)\n .validateAndAggregate()\n\n if (valid) {\n const newFilterTree = clone(this.filterTree)\n const notClause = { $not: [notQuery.filterTree] }\n const resultingFilter = inAndOptimized(newFilterTree, notClause)\n\n return this._copy(\n resultingFilter,\n newInvalidArguments.concat(notQuery.invalidArguments)\n )\n } else {\n return this._copy(this.filterTree, newInvalidArguments)\n }\n }\n\n between(field, rangeStart, rangeEnd) {\n const [newInvalidArguments, valid] = this._filterValidator('.between')\n .arityIsThree(arguments)\n .sameType(rangeStart, rangeEnd)\n .typeIsStringNumberOrDate(rangeStart)\n .typeIsStringNumberOrDate(rangeEnd)\n .validateAndAggregate()\n\n if (valid) {\n return this.ge(field, rangeStart).lt(field, rangeEnd)\n }\n\n return this._copy(this.filterTree, newInvalidArguments)\n }\n\n getFilterModel() {\n if (this.invalidArguments.length > 0) {\n throw new Error(this.invalidArguments.join(' '))\n }\n return optimisedQuery(this.filterTree)\n }\n\n setFilterModel(filterModel) {\n return this._copy(filterModel, [])\n }\n\n _binaryAnd(filterOperatorSymbol, operatorName, args) {\n const [field, operand] = Array.prototype.slice.call(args)\n\n const [newInvalidArguments] = this._filterValidator(operatorName)\n .arityIsTwo(args)\n .validFieldName(field)\n .validateAndAggregate()\n\n const newFilterTree = this._makeNewFilter(\n field,\n filterOperatorSymbol,\n operand\n )\n\n return this._copy(newFilterTree, newInvalidArguments)\n }\n\n _AndLogicalEquivalence(filterOperatorSymbol, operatorName, args) {\n const [field, operand] = Array.prototype.slice.call(args)\n\n const [newInvalidArguments] = this._filterValidator(operatorName)\n .arityIsTwo(args)\n .validFieldName(field)\n .typeIsStringNumberOrDate(operand)\n .validateAndAggregate()\n\n const newFilterTree = this._makeNewFilter(\n field,\n filterOperatorSymbol,\n operand\n )\n return this._copy(newFilterTree, newInvalidArguments)\n }\n\n _AndStringOperand(filterOperatorName, operatorName, args) {\n const [field, operand] = Array.prototype.slice.call(args)\n\n const [newInvalidArguments] = this._filterValidator(operatorName)\n .arityIsTwo(args)\n .validFieldName(field)\n .typeIsString(operand)\n .validateAndAggregate()\n\n const newFilterTree = this._makeNewFilter(\n field,\n filterOperatorName,\n operand\n )\n\n return this._copy(newFilterTree, newInvalidArguments)\n }\n\n _AndSetOperand(filterOperatorName, operatorName, args) {\n const [field, ...rawOperands] = Array.prototype.slice.call(args)\n const operands = isArray(rawOperands[0]) ? rawOperands[0] : rawOperands\n\n const [newInvalidArguments] = this._filterValidator(operatorName)\n .arityIsAtLeastTwo(args)\n .validFieldName(field)\n .typeIsStringNumberOrDateForAll(operands)\n .validateAndAggregate()\n\n const newFilterTree = this._makeNewFilter(\n field,\n filterOperatorName,\n operands\n )\n return this._copy(newFilterTree, newInvalidArguments)\n }\n\n _makeNewFilter(field, filterOperatorName, operand) {\n const newFilterTree = clone(this.filterTree)\n\n // filters with 'undefined' value are lost during serialization,\n // e.g. { val: { $ne: undefined } | translates to { val: {} }\n // Replacing 'undefined' with 'null' retains the filter.\n const serializableOperand = operand === undefined ? null : operand\n const newFilter = this._buildFilter(\n field,\n filterOperatorName,\n serializableOperand\n )\n\n if (isArray(newFilterTree.$and)) {\n newFilterTree.$and.push(newFilter)\n return newFilterTree\n } else {\n const result = isEmptyObject(newFilterTree)\n ? inAnd(newFilter)\n : inAnd(newFilterTree, newFilter)\n return result\n }\n }\n\n _buildFilter(field, filterOperatorName, operand) {\n if (filterOperatorName !== '$eq') {\n const newFilter = {}\n newFilter[field] = {}\n newFilter[field][filterOperatorName] = this._encode(operand)\n return newFilter\n } else {\n const newFilter = {}\n newFilter[field] = this._encode(operand)\n return newFilter\n }\n }\n\n _encode(operand) {\n if (isFunction(this.encoder)) {\n return this.encoder(operand)\n } else {\n return operand\n }\n }\n\n _copy(filterTree, invalidArguments) {\n // @ts-ignore-next-line\n return new this.constructor({ ...this, filterTree, invalidArguments })\n }\n\n _filterValidator(filterOperatorName): Validator {\n return new FilterValidator(\n filterOperatorName,\n this.invalidArguments,\n this.constructor\n )\n }\n }\n\nfunction isConjunctiveFormFilter(filterTree) {\n return isArray(filterTree.$and)\n}\n\nfunction isEmptyObject(obj) {\n return Object.keys(obj).length === 0\n}\n\nfunction inAnd(...args) {\n return {\n $and: args,\n }\n}\n\nfunction inAndOptimized(...args) {\n return {\n $and: args.reduce(\n (aggr, val) =>\n isConjunctiveFormFilter(val)\n ? aggr.concat(val.$and)\n : aggr.concat([val]),\n []\n ),\n }\n}\n\nfunction isEmptyAnd(node) {\n return node && node.$and && node.$and.length === 0\n}\n\nexport default filterMixin\n"]}
|
|
1
|
+
{"version":3,"names":["_typeUtils","require","_clone","_interopRequireDefault","_filterValidator","_queryOptimiser","filterMixin","Base","constructor","obj","_defineProperty2","default","filterTree","$and","invalidArguments","encoder","eq","args","_binaryAnd","ne","ge","_AndLogicalEquivalence","gt","le","lt","isNotEmpty","field","_this$_filterValidato","arityIsOne","arguments","validFieldName","validateAndAggregate","newInvalidArguments","valid","_copy","isEmpty","_this$_filterValidato2","startsWith","_AndStringOperand","endsWith","contains","hasSome","_AndSetOperand","hasAll","or","orQuery","_this$_filterValidato3","isInstanceOfSameClass","prefix","isEmptyAnd","inAnd","$or","concat","and","andQuery","_this$_filterValidato4","not","notQuery","_this$_filterValidato5","newFilterTree","clone","notClause","$not","resultingFilter","inAndOptimized","between","rangeStart","rangeEnd","_this$_filterValidato6","arityIsThree","sameType","typeIsStringNumberOrDate","getFilterModel","length","Error","join","optimisedQuery","setFilterModel","filterModel","filterOperatorSymbol","operatorName","_Array$prototype$slic","Array","prototype","slice","call","operand","_this$_filterValidato7","arityIsTwo","_makeNewFilter","_Array$prototype$slic2","_this$_filterValidato8","filterOperatorName","_Array$prototype$slic3","_this$_filterValidato9","typeIsString","_Array$prototype$slic4","rawOperands","operands","isArray","_this$_filterValidato10","arityIsAtLeastTwo","typeIsStringNumberOrDateForAll","serializableOperand","undefined","newFilter","_buildFilter","push","result","isEmptyObject","_encode","isFunction","FilterValidator","isConjunctiveFormFilter","Object","keys","reduce","aggr","val","node","_default","exports"],"sources":["../../src/filter-mixin.ts"],"sourcesContent":["import { isArray, isFunction } from './type-utils'\nimport clone from './clone'\nimport { FilterValidator } from './filter-validator'\nimport { Validator } from './validator'\nimport { optimisedQuery } from './query-optimiser'\n\nconst filterMixin = (Base: any = class {}) =>\n class extends Base {\n filterTree\n invalidArguments\n encoder\n\n constructor(obj: { filterTree?; invalidArguments?; encoder? } = {}) {\n super(obj)\n this.filterTree = obj.filterTree || { $and: [] }\n this.invalidArguments = obj.invalidArguments || []\n this.encoder = obj.encoder || {}\n }\n\n eq(...args) {\n return this._binaryAnd('$eq', '.eq', args)\n }\n\n ne(...args) {\n return this._binaryAnd('$ne', '.ne', args)\n }\n\n ge(...args) {\n return this._AndLogicalEquivalence('$gte', '.ge', args)\n }\n\n gt(...args) {\n return this._AndLogicalEquivalence('$gt', '.gt', args)\n }\n\n le(...args) {\n return this._AndLogicalEquivalence('$lte', '.le', args)\n }\n\n lt(...args) {\n return this._AndLogicalEquivalence('$lt', '.lt', args)\n }\n\n isNotEmpty(field) {\n const [newInvalidArguments, valid] = this._filterValidator('.isNotEmpty')\n .arityIsOne(arguments)\n .validFieldName(field)\n .validateAndAggregate()\n\n if (valid) {\n return this.ne(field, null)\n }\n\n return this._copy(this.filterTree, newInvalidArguments)\n }\n\n isEmpty(field) {\n const [newInvalidArguments, valid] = this._filterValidator('.isEmpty')\n .arityIsOne(arguments)\n .validFieldName(field)\n .validateAndAggregate()\n\n if (valid) {\n return this.eq(field, null)\n }\n\n return this._copy(this.filterTree, newInvalidArguments)\n }\n\n startsWith(...args) {\n return this._AndStringOperand('$startsWith', '.startsWith', args)\n }\n\n endsWith(...args) {\n return this._AndStringOperand('$endsWith', '.endsWith', args)\n }\n\n contains(...args) {\n return this._AndStringOperand('$contains', '.contains', args)\n }\n\n hasSome(...args) {\n return this._AndSetOperand('$hasSome', '.hasSome', args)\n }\n\n hasAll(...args) {\n return this._AndSetOperand('$hasAll', '.hasAll', args)\n }\n\n or(orQuery) {\n const [newInvalidArguments, valid] = this._filterValidator('.or')\n .arityIsOne(arguments)\n .isInstanceOfSameClass(orQuery)\n .validateAndAggregate()\n\n if (valid) {\n const prefix = isEmptyAnd(this.filterTree) ? [] : [this.filterTree]\n return this._copy(\n inAnd({ $or: [...prefix, orQuery.filterTree] }),\n newInvalidArguments.concat(orQuery.invalidArguments)\n )\n } else {\n return this._copy(this.filterTree, newInvalidArguments)\n }\n }\n\n and(andQuery) {\n const [newInvalidArguments, valid] = this._filterValidator('.and')\n .arityIsOne(arguments)\n .isInstanceOfSameClass(andQuery)\n .validateAndAggregate()\n\n if (valid) {\n const prefix = isEmptyAnd(this.filterTree) ? [] : [this.filterTree]\n return this._copy(\n inAnd(...prefix, andQuery.filterTree),\n newInvalidArguments.concat(andQuery.invalidArguments)\n )\n } else {\n return this._copy(this.filterTree, newInvalidArguments)\n }\n }\n\n not(notQuery) {\n const [newInvalidArguments, valid] = this._filterValidator('.not')\n .arityIsOne(arguments)\n .isInstanceOfSameClass(notQuery)\n .validateAndAggregate()\n\n if (valid) {\n const newFilterTree = clone(this.filterTree)\n const notClause = { $not: [notQuery.filterTree] }\n const resultingFilter = inAndOptimized(newFilterTree, notClause)\n\n return this._copy(\n resultingFilter,\n newInvalidArguments.concat(notQuery.invalidArguments)\n )\n } else {\n return this._copy(this.filterTree, newInvalidArguments)\n }\n }\n\n between(field, rangeStart, rangeEnd) {\n const [newInvalidArguments, valid] = this._filterValidator('.between')\n .arityIsThree(arguments)\n .sameType(rangeStart, rangeEnd)\n .typeIsStringNumberOrDate(rangeStart)\n .typeIsStringNumberOrDate(rangeEnd)\n .validateAndAggregate()\n\n if (valid) {\n return this.ge(field, rangeStart).lt(field, rangeEnd)\n }\n\n return this._copy(this.filterTree, newInvalidArguments)\n }\n\n getFilterModel() {\n if (this.invalidArguments.length > 0) {\n throw new Error(this.invalidArguments.join(' '))\n }\n return optimisedQuery(this.filterTree)\n }\n\n setFilterModel(filterModel) {\n return this._copy(filterModel, [])\n }\n\n _binaryAnd(filterOperatorSymbol, operatorName, args) {\n const [field, operand] = Array.prototype.slice.call(args)\n\n const [newInvalidArguments] = this._filterValidator(operatorName)\n .arityIsTwo(args)\n .validFieldName(field)\n .validateAndAggregate()\n\n const newFilterTree = this._makeNewFilter(\n field,\n filterOperatorSymbol,\n operand\n )\n\n return this._copy(newFilterTree, newInvalidArguments)\n }\n\n _AndLogicalEquivalence(filterOperatorSymbol, operatorName, args) {\n const [field, operand] = Array.prototype.slice.call(args)\n\n const [newInvalidArguments] = this._filterValidator(operatorName)\n .arityIsTwo(args)\n .validFieldName(field)\n .typeIsStringNumberOrDate(operand)\n .validateAndAggregate()\n\n const newFilterTree = this._makeNewFilter(\n field,\n filterOperatorSymbol,\n operand\n )\n return this._copy(newFilterTree, newInvalidArguments)\n }\n\n _AndStringOperand(filterOperatorName, operatorName, args) {\n const [field, operand] = Array.prototype.slice.call(args)\n\n const [newInvalidArguments] = this._filterValidator(operatorName)\n .arityIsTwo(args)\n .validFieldName(field)\n .typeIsString(operand)\n .validateAndAggregate()\n\n const newFilterTree = this._makeNewFilter(\n field,\n filterOperatorName,\n operand\n )\n\n return this._copy(newFilterTree, newInvalidArguments)\n }\n\n _AndSetOperand(filterOperatorName, operatorName, args) {\n const [field, ...rawOperands] = Array.prototype.slice.call(args)\n const operands = isArray(rawOperands[0]) ? rawOperands[0] : rawOperands\n\n const [newInvalidArguments] = this._filterValidator(operatorName)\n .arityIsAtLeastTwo(args)\n .validFieldName(field)\n .typeIsStringNumberOrDateForAll(operands)\n .validateAndAggregate()\n\n const newFilterTree = this._makeNewFilter(\n field,\n filterOperatorName,\n operands\n )\n return this._copy(newFilterTree, newInvalidArguments)\n }\n\n _makeNewFilter(field, filterOperatorName, operand) {\n const newFilterTree = clone(this.filterTree)\n\n // filters with 'undefined' value are lost during serialization,\n // e.g. { val: { $ne: undefined } | translates to { val: {} }\n // Replacing 'undefined' with 'null' retains the filter.\n const serializableOperand = operand === undefined ? null : operand\n const newFilter = this._buildFilter(\n field,\n filterOperatorName,\n serializableOperand\n )\n\n if (isArray(newFilterTree.$and)) {\n newFilterTree.$and.push(newFilter)\n return newFilterTree\n } else {\n const result = isEmptyObject(newFilterTree)\n ? inAnd(newFilter)\n : inAnd(newFilterTree, newFilter)\n return result\n }\n }\n\n _buildFilter(field, filterOperatorName, operand) {\n if (filterOperatorName !== '$eq') {\n const newFilter = {}\n newFilter[field] = {}\n newFilter[field][filterOperatorName] = this._encode(operand)\n return newFilter\n } else {\n const newFilter = {}\n newFilter[field] = this._encode(operand)\n return newFilter\n }\n }\n\n _encode(operand) {\n if (isFunction(this.encoder)) {\n return this.encoder(operand)\n } else {\n return operand\n }\n }\n\n _copy(filterTree, invalidArguments) {\n // @ts-ignore-next-line\n return new this.constructor({ ...this, filterTree, invalidArguments })\n }\n\n _filterValidator(filterOperatorName): Validator {\n return new FilterValidator(\n filterOperatorName,\n this.invalidArguments,\n this.constructor\n )\n }\n }\n\nfunction isConjunctiveFormFilter(filterTree) {\n return isArray(filterTree.$and)\n}\n\nfunction isEmptyObject(obj) {\n return Object.keys(obj).length === 0\n}\n\nfunction inAnd(...args) {\n return {\n $and: args,\n }\n}\n\nfunction inAndOptimized(...args) {\n return {\n $and: args.reduce(\n (aggr, val) =>\n isConjunctiveFormFilter(val)\n ? aggr.concat(val.$and)\n : aggr.concat([val]),\n []\n ),\n }\n}\n\nfunction isEmptyAnd(node) {\n return node && node.$and && node.$and.length === 0\n}\n\nexport default filterMixin\n"],"mappings":"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"}
|
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
exports.__esModule = true;
|
|
6
5
|
exports.FilterValidator = void 0;
|
|
7
|
-
|
|
8
6
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
-
|
|
10
7
|
var _typeUtils = require("./type-utils");
|
|
11
|
-
|
|
12
8
|
var _clone = _interopRequireDefault(require("./clone"));
|
|
13
|
-
|
|
14
9
|
class FilterValidator {
|
|
15
10
|
constructor(operatorName, previousInvalidArguments, ctor) {
|
|
16
11
|
(0, _defineProperty2.default)(this, "ctor", void 0);
|
|
@@ -22,79 +17,59 @@ class FilterValidator {
|
|
|
22
17
|
this.ctor = ctor;
|
|
23
18
|
this._invalidArguments = (0, _clone.default)(previousInvalidArguments);
|
|
24
19
|
}
|
|
25
|
-
|
|
26
20
|
typeIsString(value) {
|
|
27
21
|
return this.addValidation(() => (0, _typeUtils.isString)(value), () => `Invalid ${this.operatorName} parameter value [${(0, _typeUtils.typeForDisplay)(value)}]. ${this.operatorName} parameter must be a String.`);
|
|
28
22
|
}
|
|
29
|
-
|
|
30
23
|
typeIsStringNumberOrDate(value) {
|
|
31
24
|
return this.addValidation(() => isDateStringOrNumber(value), () => `Invalid ${this.operatorName} parameter value [${(0, _typeUtils.typeForDisplay)(value)}]. Valid ${this.operatorName} parameter types are String, Number or Date.`);
|
|
32
25
|
}
|
|
33
|
-
|
|
34
26
|
sameType(first, second) {
|
|
35
27
|
return this.addValidation(() => (0, _typeUtils.typeForDisplay)(first) === (0, _typeUtils.typeForDisplay)(second), () => `Invalid ${this.operatorName} parameter values [${(0, _typeUtils.typeForDisplay)(first)}] and [${(0, _typeUtils.typeForDisplay)(second)}]. Both parameters must be of the same type.`);
|
|
36
28
|
}
|
|
37
|
-
|
|
38
29
|
typeIsStringNumberOrDateForAll(values) {
|
|
39
30
|
return this.addValidation(() => values.every(isDateStringOrNumber), () => `Invalid ${this.operatorName} usage. ${this.operatorName} supports only Number, String or Date items.`);
|
|
40
31
|
}
|
|
41
|
-
|
|
42
32
|
validFieldName(field) {
|
|
43
33
|
return this.addValidation(() => (0, _typeUtils.isString)(field), () => `Invalid ${this.operatorName} field value [${(0, _typeUtils.typeForDisplay)(field)}]. ${this.operatorName} field must be a String.`);
|
|
44
34
|
}
|
|
45
|
-
|
|
46
35
|
isInstanceOfSameClass(obj) {
|
|
47
36
|
return this.addValidation(() => obj instanceof this.ctor, () => `Invalid ${this.operatorName} parameter [${(0, _typeUtils.typeForDisplay)(obj)}]. ${this.operatorName} expects FilterBuilder only.`);
|
|
48
37
|
}
|
|
49
|
-
|
|
50
38
|
arityIsOne(args) {
|
|
51
39
|
return this.addValidation(() => args.length === 1, () => `Invalid ${this.operatorName} usage. ${this.operatorName} requires one parameter.`);
|
|
52
40
|
}
|
|
53
|
-
|
|
54
41
|
arityIsTwo(args) {
|
|
55
42
|
return this.addValidation(() => args.length === 2, () => `Invalid ${this.operatorName} usage. ${this.operatorName} requires two parameters.`);
|
|
56
43
|
}
|
|
57
|
-
|
|
58
44
|
arityIsThree(args) {
|
|
59
45
|
return this.addValidation(() => args.length === 3, () => `Invalid ${this.operatorName} usage. ${this.operatorName} requires three parameters.`);
|
|
60
46
|
}
|
|
61
|
-
|
|
62
47
|
arityIsAtLeastTwo(args) {
|
|
63
48
|
return this.addValidation(() => args.length >= 2, () => `Invalid ${this.operatorName} usage. ${this.operatorName} requires at least two parameters.`);
|
|
64
49
|
}
|
|
65
|
-
|
|
66
50
|
addValidation(predicateFn, messageFn) {
|
|
67
51
|
this._validations.push({
|
|
68
52
|
predicateFn,
|
|
69
53
|
messageFn
|
|
70
54
|
});
|
|
71
|
-
|
|
72
55
|
return this;
|
|
73
56
|
}
|
|
74
|
-
|
|
75
57
|
validateAndAggregate() {
|
|
76
58
|
const valid = this._validations.every(({
|
|
77
59
|
predicateFn,
|
|
78
60
|
messageFn
|
|
79
61
|
}) => this._appendIfInvalid(predicateFn(), messageFn()));
|
|
80
|
-
|
|
81
62
|
return [this._invalidArguments, valid];
|
|
82
63
|
}
|
|
83
|
-
|
|
84
64
|
_appendIfInvalid(valid, message) {
|
|
85
65
|
if (!valid) {
|
|
86
66
|
this._invalidArguments.push(message);
|
|
87
|
-
|
|
88
67
|
return false;
|
|
89
68
|
}
|
|
90
|
-
|
|
91
69
|
return true;
|
|
92
70
|
}
|
|
93
|
-
|
|
94
71
|
}
|
|
95
|
-
|
|
96
72
|
exports.FilterValidator = FilterValidator;
|
|
97
|
-
|
|
98
73
|
function isDateStringOrNumber(value) {
|
|
99
74
|
return (0, _typeUtils.isString)(value) || (0, _typeUtils.isNumber)(value) || (0, _typeUtils.isDate)(value);
|
|
100
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["_typeUtils","require","_clone","_interopRequireDefault","FilterValidator","constructor","operatorName","previousInvalidArguments","ctor","_defineProperty2","default","_validations","_invalidArguments","clone","typeIsString","value","addValidation","isString","typeForDisplay","typeIsStringNumberOrDate","isDateStringOrNumber","sameType","first","second","typeIsStringNumberOrDateForAll","values","every","validFieldName","field","isInstanceOfSameClass","obj","arityIsOne","args","length","arityIsTwo","arityIsThree","arityIsAtLeastTwo","predicateFn","messageFn","push","validateAndAggregate","valid","_appendIfInvalid","message","exports","isNumber","isDate"],"sources":["../../src/filter-validator.ts"],"sourcesContent":["import { typeForDisplay, isDate, isString, isNumber } from './type-utils'\nimport clone from './clone'\nimport { Validator } from './validator'\n\nexport class FilterValidator implements Validator {\n private ctor\n private _invalidArguments: string[]\n public _validations: Validation[]\n public operatorName?: string\n\n constructor(operatorName, previousInvalidArguments, ctor) {\n this._validations = []\n this.operatorName = operatorName\n this.ctor = ctor\n this._invalidArguments = clone(previousInvalidArguments)\n }\n\n typeIsString(value) {\n return this.addValidation(\n () => isString(value),\n () =>\n `Invalid ${this.operatorName} parameter value [${typeForDisplay(\n value\n )}]. ${this.operatorName} parameter must be a String.`\n )\n }\n\n typeIsStringNumberOrDate(value) {\n return this.addValidation(\n () => isDateStringOrNumber(value),\n () =>\n `Invalid ${this.operatorName} parameter value [${typeForDisplay(\n value\n )}]. Valid ${\n this.operatorName\n } parameter types are String, Number or Date.`\n )\n }\n\n sameType(first, second) {\n return this.addValidation(\n () => typeForDisplay(first) === typeForDisplay(second),\n () =>\n `Invalid ${this.operatorName} parameter values [${typeForDisplay(\n first\n )}] and [${typeForDisplay(\n second\n )}]. Both parameters must be of the same type.`\n )\n }\n\n typeIsStringNumberOrDateForAll(values) {\n return this.addValidation(\n () => values.every(isDateStringOrNumber),\n () =>\n `Invalid ${this.operatorName} usage. ${this.operatorName} supports only Number, String or Date items.`\n )\n }\n\n validFieldName(field) {\n return this.addValidation(\n () => isString(field),\n () =>\n `Invalid ${this.operatorName} field value [${typeForDisplay(field)}]. ${\n this.operatorName\n } field must be a String.`\n )\n }\n\n isInstanceOfSameClass(obj) {\n return this.addValidation(\n () => obj instanceof this.ctor,\n () =>\n `Invalid ${this.operatorName} parameter [${typeForDisplay(obj)}]. ${\n this.operatorName\n } expects FilterBuilder only.`\n )\n }\n\n arityIsOne(args) {\n return this.addValidation(\n () => args.length === 1,\n () =>\n `Invalid ${this.operatorName} usage. ${this.operatorName} requires one parameter.`\n )\n }\n\n arityIsTwo(args) {\n return this.addValidation(\n () => args.length === 2,\n () =>\n `Invalid ${this.operatorName} usage. ${this.operatorName} requires two parameters.`\n )\n }\n\n arityIsThree(args) {\n return this.addValidation(\n () => args.length === 3,\n () =>\n `Invalid ${this.operatorName} usage. ${this.operatorName} requires three parameters.`\n )\n }\n\n arityIsAtLeastTwo(args) {\n return this.addValidation(\n () => args.length >= 2,\n () =>\n `Invalid ${this.operatorName} usage. ${this.operatorName} requires at least two parameters.`\n )\n }\n\n addValidation(predicateFn, messageFn) {\n this._validations.push({\n predicateFn,\n messageFn,\n })\n return this\n }\n\n validateAndAggregate(): [string[], boolean] {\n const valid = this._validations.every(({ predicateFn, messageFn }) =>\n this._appendIfInvalid(predicateFn(), messageFn())\n )\n return [this._invalidArguments, valid]\n }\n\n _appendIfInvalid(valid, message) {\n if (!valid) {\n this._invalidArguments.push(message)\n return false\n }\n return true\n }\n}\n\nfunction isDateStringOrNumber(value) {\n return isString(value) || isNumber(value) || isDate(value)\n}\n\ninterface Validation {\n predicateFn: Function\n messageFn: Function\n}\n"],"mappings":"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"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,28 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
exports.__esModule = true;
|
|
6
5
|
exports.default = void 0;
|
|
7
|
-
|
|
8
6
|
var _filterBuilder = require("./filter-builder");
|
|
9
|
-
|
|
10
7
|
exports.filterBuilder = _filterBuilder.filterBuilder;
|
|
11
|
-
|
|
12
8
|
var _filterMixin = _interopRequireDefault(require("./filter-mixin"));
|
|
13
|
-
|
|
14
9
|
exports.filterMixin = _filterMixin.default;
|
|
15
|
-
|
|
16
10
|
var _queryOptimiser = require("./query-optimiser");
|
|
17
|
-
|
|
18
11
|
exports.optimiseQuery = _queryOptimiser.optimisedQuery;
|
|
19
|
-
|
|
20
12
|
var _validator = require("./validator");
|
|
21
|
-
|
|
22
13
|
exports.Validator = _validator.Validator;
|
|
23
|
-
|
|
24
14
|
var _wixDataEncoder = require("./wix-data-encoder");
|
|
25
|
-
|
|
26
15
|
exports.wixDataEncoder = _wixDataEncoder.wixDataEncoder;
|
|
27
16
|
var _default = _filterBuilder.filterBuilder;
|
|
28
17
|
exports.default = _default;
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["_filterBuilder","require","exports","filterBuilder","_filterMixin","_interopRequireDefault","filterMixin","default","_queryOptimiser","optimiseQuery","optimisedQuery","_validator","Validator","_wixDataEncoder","wixDataEncoder","_default"],"sources":["../../src/index.ts"],"sourcesContent":["import { filterBuilder } from './filter-builder'\nimport filterMixin from './filter-mixin'\nimport { optimisedQuery as optimiseQuery } from './query-optimiser'\nimport { Validator } from './validator'\nimport { wixDataEncoder } from './wix-data-encoder'\n\nexport { filterMixin, filterBuilder, optimiseQuery, Validator, wixDataEncoder }\n\nexport default filterBuilder\n"],"mappings":";;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAAgDC,OAAA,CAAAC,aAAA,GAAAH,cAAA,CAAAG,aAAA;AAChD,IAAAC,YAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAAwCC,OAAA,CAAAI,WAAA,GAAAF,YAAA,CAAAG,OAAA;AACxC,IAAAC,eAAA,GAAAP,OAAA;AAAmEC,OAAA,CAAAO,aAAA,GAAAD,eAAA,CAAAE,cAAA;AACnE,IAAAC,UAAA,GAAAV,OAAA;AAAuCC,OAAA,CAAAU,SAAA,GAAAD,UAAA,CAAAC,SAAA;AACvC,IAAAC,eAAA,GAAAZ,OAAA;AAAmDC,OAAA,CAAAY,cAAA,GAAAD,eAAA,CAAAC,cAAA;AAAA,IAAAC,QAAA,GAIpCZ,4BAAa;AAAAD,OAAA,CAAAK,OAAA,GAAAQ,QAAA"}
|