@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.
@@ -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
- newInvalidArguments = _this$_filterValidato[0],
58
- valid = _this$_filterValidato[1];
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
- newInvalidArguments = _this$_filterValidato2[0],
70
- valid = _this$_filterValidato2[1];
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
- newInvalidArguments = _this$_filterValidato3[0],
102
- valid = _this$_filterValidato3[1];
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
- newInvalidArguments = _this$_filterValidato4[0],
117
- valid = _this$_filterValidato4[1];
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
- newInvalidArguments = _this$_filterValidato5[0],
130
- valid = _this$_filterValidato5[1];
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
- newInvalidArguments = _this$_filterValidato6[0],
147
- valid = _this$_filterValidato6[1];
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
- field = _Array$prototype$slic[0],
171
- operand = _Array$prototype$slic[1];
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
- newInvalidArguments = _this$_filterValidato7[0];
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
- field = _Array$prototype$slic2[0],
184
- operand = _Array$prototype$slic2[1];
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
- newInvalidArguments = _this$_filterValidato8[0];
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
- field = _Array$prototype$slic3[0],
197
- operand = _Array$prototype$slic3[1];
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
- newInvalidArguments = _this$_filterValidato9[0];
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
- field = _Array$prototype$slic4[0],
210
- rawOperands = _Array$prototype$slic4.slice(1);
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
- newInvalidArguments = _this$_filterValidato10[0];
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); // filters with 'undefined' value are lost during serialization,
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({ ...this,
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,"sources":["../../src/filter-validator.ts"],"names":["FilterValidator","constructor","operatorName","previousInvalidArguments","ctor","_validations","_invalidArguments","typeIsString","value","addValidation","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"],"mappings":"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","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"]}
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;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":["filterBuilder"],"mappings":";;;;;;;AAAA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;eAIeA,4B","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"]}
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"}