@wix/filter-builder 1.0.16 → 1.0.17

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,19 +1,14 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _chai = _interopRequireDefault(require("chai"));
6
-
7
5
  var _ = require("..");
8
-
9
6
  const expect = _chai.default.expect;
10
-
11
7
  function inAnd(...args) {
12
8
  return {
13
9
  $and: args
14
10
  };
15
11
  }
16
-
17
12
  describe('filter', function () {
18
13
  const filter = (0, _.filterBuilder)();
19
14
  describe('custom encoders', function () {
@@ -30,7 +25,6 @@ describe('filter', function () {
30
25
  });
31
26
  it('encode with custom encoder', function () {
32
27
  const encoder = () => 3;
33
-
34
28
  const filterWithEncoder = (0, _.filterBuilder)({
35
29
  encoder
36
30
  });
@@ -136,24 +130,24 @@ describe('filter', function () {
136
130
  expect(() => filter.le('x')._build()).to.throw('Invalid .le usage. .le requires two parameters.');
137
131
  expect(() => filter.startsWith('x')._build()).to.throw('Invalid .startsWith usage. .startsWith requires two parameters.');
138
132
  expect(() => filter.endsWith('x')._build()).to.throw('Invalid .endsWith usage. .endsWith requires two parameters.');
139
- expect(() => filter.contains('x')._build()).to.throw('Invalid .contains usage. .contains requires two parameters.'); // @ts-expect-error
140
-
141
- expect(() => filter.isNotEmpty()._build()).to.throw('Invalid .isNotEmpty usage. .isNotEmpty requires one parameter.'); // @ts-expect-error
142
-
133
+ expect(() => filter.contains('x')._build()).to.throw('Invalid .contains usage. .contains requires two parameters.');
134
+ // @ts-expect-error
135
+ expect(() => filter.isNotEmpty()._build()).to.throw('Invalid .isNotEmpty usage. .isNotEmpty requires one parameter.');
136
+ // @ts-expect-error
143
137
  expect(() => filter.isEmpty()._build()).to.throw('Invalid .isEmpty usage. .isEmpty requires one parameter.');
144
138
  expect(() => filter.isNotEmpty(1)._build()).to.throw('Invalid .isNotEmpty field value [Number]. .isNotEmpty field must be a String.');
145
- expect(() => filter.isEmpty(1)._build()).to.throw('Invalid .isEmpty field value [Number]. .isEmpty field must be a String.'); // @ts-expect-error
146
-
147
- expect(() => filter.or()._build()).to.throw('Invalid .or usage. .or requires one parameter.'); // @ts-expect-error
148
-
149
- expect(() => filter.and()._build()).to.throw('Invalid .and usage. .and requires one parameter.'); // @ts-expect-error
150
-
151
- expect(() => filter.not()._build()).to.throw('Invalid .not usage. .not requires one parameter.'); // @ts-expect-error
152
-
153
- expect(() => filter.between()._build()).to.throw('Invalid .between usage. .between requires three parameters.'); // @ts-expect-error
154
-
155
- expect(() => filter.between('x')._build()).to.throw('Invalid .between usage. .between requires three parameters.'); // @ts-expect-error
156
-
139
+ expect(() => filter.isEmpty(1)._build()).to.throw('Invalid .isEmpty field value [Number]. .isEmpty field must be a String.');
140
+ // @ts-expect-error
141
+ expect(() => filter.or()._build()).to.throw('Invalid .or usage. .or requires one parameter.');
142
+ // @ts-expect-error
143
+ expect(() => filter.and()._build()).to.throw('Invalid .and usage. .and requires one parameter.');
144
+ // @ts-expect-error
145
+ expect(() => filter.not()._build()).to.throw('Invalid .not usage. .not requires one parameter.');
146
+ // @ts-expect-error
147
+ expect(() => filter.between()._build()).to.throw('Invalid .between usage. .between requires three parameters.');
148
+ // @ts-expect-error
149
+ expect(() => filter.between('x')._build()).to.throw('Invalid .between usage. .between requires three parameters.');
150
+ // @ts-expect-error
157
151
  expect(() => filter.between('x', 'x')._build()).to.throw('Invalid .between usage. .between requires three parameters.');
158
152
  expect(() => filter.hasSome('x')._build()).to.throw('Invalid .hasSome usage. .hasSome requires at least two parameters.');
159
153
  expect(() => filter.hasAll('x')._build()).to.throw('Invalid .hasAll usage. .hasAll requires at least two parameters.');
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/__tests__/filter.spec.ts"],"names":["expect","chai","inAnd","args","$and","describe","filter","it","now","Date","filterWithEncoder","encoder","wixDataEncoder","eq","getFilterModel","to","be","eql","x","$date","toJSON","ne","$ne","gt","$gt","ge","$gte","lt","$lt","le","$lte","isNotEmpty","isEmpty","startsWith","$startsWith","endsWith","$endsWith","contains","$contains","hasSome","$hasSome","hasAll","$hasAll","not","throw","Error","filterTreeGetters","forEach","filterTreeGetter","_build","or","and","between","a","$or","f","y","z","filterTree","$not","field","startDate","endDate","setYear","getYear","invalidExamples","undefined","first","second","firstType","secondType","newFilter","setFilterModel","equal","invalidFilter","invalidArguments"],"mappings":"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","sourcesContent":["import chai from 'chai'\nimport { filterBuilder, wixDataEncoder } from '..'\n\nconst expect = chai.expect\n\nfunction inAnd(...args) {\n return { $and: args }\n}\n\ndescribe('filter', function () {\n const filter = filterBuilder()\n\n describe('custom encoders', function () {\n it('encode date with wixDataEncoder', function () {\n const now = new Date()\n const filterWithEncoder = filterBuilder({ encoder: wixDataEncoder })\n\n expect(filterWithEncoder.eq('x', now).getFilterModel()).to.be.eql({\n x: { $date: now.toJSON() },\n })\n })\n\n it('encode with custom encoder', function () {\n const encoder = () => 3\n const filterWithEncoder = filterBuilder({ encoder })\n\n expect(filterWithEncoder.eq('x', 'a').getFilterModel()).to.be.eql({\n x: 3,\n })\n })\n })\n\n describe('filter comparison operators', function () {\n it('should produce the correct filter tree', function () {\n expect(filter.eq('x', 1).getFilterModel()).to.be.eql({ x: 1 })\n expect(filter.ne('x', 1).getFilterModel()).to.be.eql({ x: { $ne: 1 } })\n expect(filter.gt('x', 1).getFilterModel()).to.be.eql({ x: { $gt: 1 } })\n expect(filter.ge('x', 1).getFilterModel()).to.be.eql({ x: { $gte: 1 } })\n expect(filter.lt('x', 1).getFilterModel()).to.be.eql({ x: { $lt: 1 } })\n expect(filter.le('x', 1).getFilterModel()).to.be.eql({ x: { $lte: 1 } })\n expect(filter.isNotEmpty('x').getFilterModel()).to.be.eql({\n x: { $ne: null },\n })\n expect(filter.isEmpty('x').getFilterModel()).to.be.eql({ x: null })\n expect(filter.startsWith('x', 'A').getFilterModel()).to.be.eql({\n x: { $startsWith: 'A' },\n })\n expect(filter.endsWith('x', 'A').getFilterModel()).to.be.eql({\n x: { $endsWith: 'A' },\n })\n expect(filter.contains('x', 'A').getFilterModel()).to.be.eql({\n x: { $contains: 'A' },\n })\n expect(filter.hasSome('x', [1, 2]).getFilterModel()).to.be.eql({\n x: { $hasSome: [1, 2] },\n })\n expect(filter.hasSome('x', 1, 2).getFilterModel()).to.be.eql({\n x: { $hasSome: [1, 2] },\n })\n expect(filter.hasAll('x', [1, 2]).getFilterModel()).to.be.eql({\n x: { $hasAll: [1, 2] },\n })\n expect(filter.hasAll('x', 1, 2).getFilterModel()).to.be.eql({\n x: { $hasAll: [1, 2] },\n })\n })\n\n it('should accept valid arguments for all types of queries', function () {\n expect(() => filter.eq('x', 0)).to.not.throw(Error)\n expect(() => filter.ne('x', 0)).to.not.throw(Error)\n expect(() => filter.gt('x', 0)).to.not.throw(Error)\n expect(() => filter.ge('x', 0)).to.not.throw(Error)\n expect(() => filter.lt('x', 0)).to.not.throw(Error)\n expect(() => filter.le('x', 0)).to.not.throw(Error)\n expect(() => filter.startsWith('x', '')).to.not.throw(Error)\n expect(() => filter.endsWith('x', '')).to.not.throw(Error)\n expect(() => filter.contains('x', '')).to.not.throw(Error)\n })\n\n const filterTreeGetters = ['_build', 'getFilterModel']\n filterTreeGetters.forEach(function (filterTreeGetter) {\n describe(filterTreeGetter, function () {\n it('should throw error if builder is called with too little arguments', function () {\n expect(() => filter.eq('x')._build()).to.throw(\n 'Invalid .eq usage. .eq requires two parameters.'\n )\n expect(() => filter.ne('x')._build()).to.throw(\n 'Invalid .ne usage. .ne requires two parameters.'\n )\n expect(() => filter.gt('x')._build()).to.throw(\n 'Invalid .gt usage. .gt requires two parameters.'\n )\n expect(() => filter.ge('x')._build()).to.throw(\n 'Invalid .ge usage. .ge requires two parameters.'\n )\n expect(() => filter.lt('x')._build()).to.throw(\n 'Invalid .lt usage. .lt requires two parameters.'\n )\n expect(() => filter.le('x')._build()).to.throw(\n 'Invalid .le usage. .le requires two parameters.'\n )\n expect(() => filter.startsWith('x')._build()).to.throw(\n 'Invalid .startsWith usage. .startsWith requires two parameters.'\n )\n expect(() => filter.endsWith('x')._build()).to.throw(\n 'Invalid .endsWith usage. .endsWith requires two parameters.'\n )\n expect(() => filter.contains('x')._build()).to.throw(\n 'Invalid .contains usage. .contains requires two parameters.'\n )\n // @ts-expect-error\n expect(() => filter.isNotEmpty()._build()).to.throw(\n 'Invalid .isNotEmpty usage. .isNotEmpty requires one parameter.'\n )\n // @ts-expect-error\n expect(() => filter.isEmpty()._build()).to.throw(\n 'Invalid .isEmpty usage. .isEmpty requires one parameter.'\n )\n expect(() => filter.isNotEmpty(1)._build()).to.throw(\n 'Invalid .isNotEmpty field value [Number]. .isNotEmpty field must be a String.'\n )\n expect(() => filter.isEmpty(1)._build()).to.throw(\n 'Invalid .isEmpty field value [Number]. .isEmpty field must be a String.'\n )\n // @ts-expect-error\n expect(() => filter.or()._build()).to.throw(\n 'Invalid .or usage. .or requires one parameter.'\n )\n // @ts-expect-error\n expect(() => filter.and()._build()).to.throw(\n 'Invalid .and usage. .and requires one parameter.'\n )\n // @ts-expect-error\n expect(() => filter.not()._build()).to.throw(\n 'Invalid .not usage. .not requires one parameter.'\n )\n // @ts-expect-error\n expect(() => filter.between()._build()).to.throw(\n 'Invalid .between usage. .between requires three parameters.'\n )\n // @ts-expect-error\n expect(() => filter.between('x')._build()).to.throw(\n 'Invalid .between usage. .between requires three parameters.'\n )\n // @ts-expect-error\n expect(() => filter.between('x', 'x')._build()).to.throw(\n 'Invalid .between usage. .between requires three parameters.'\n )\n expect(() => filter.hasSome('x')._build()).to.throw(\n 'Invalid .hasSome usage. .hasSome requires at least two parameters.'\n )\n expect(() => filter.hasAll('x')._build()).to.throw(\n 'Invalid .hasAll usage. .hasAll requires at least two parameters.'\n )\n })\n\n it('should validate the type of the other query', function () {\n expect(() => filter.or(null)._build()).to.throw(\n 'Invalid .or parameter [Null]. .or expects FilterBuilder only.'\n )\n expect(() => filter.or({})._build()).to.throw(\n 'Invalid .or parameter [Object]. .or expects FilterBuilder only.'\n )\n expect(() => filter.or([])._build()).to.throw(\n 'Invalid .or parameter [Array]. .or expects FilterBuilder only.'\n )\n expect(() => filter.not(null)._build()).to.throw(\n 'Invalid .not parameter [Null]. .not expects FilterBuilder only'\n )\n expect(() => filter.not({})._build()).to.throw(\n 'Invalid .not parameter [Object]. .not expects FilterBuilder only'\n )\n expect(() => filter.not([])._build()).to.throw(\n 'Invalid .not parameter [Array]. .not expects FilterBuilder only'\n )\n })\n\n it('should return filter tree', function () {\n expect(\n filter.ge('a', 'b').eq('a', 1).le('a', 4)[filterTreeGetter]()\n ).to.be.eql({\n $and: [{ a: { $gte: 'b' } }, { a: 1 }, { a: { $lte: 4 } }],\n })\n expect(\n filter\n .eq('a', 1)\n .lt('a', 2)\n .or(filter.ge('a', 'b'))\n [filterTreeGetter]()\n ).to.be.eql({\n $or: [\n { $and: [{ a: 1 }, { a: { $lt: 2 } }] },\n { a: { $gte: 'b' } },\n ],\n })\n expect(filter.eq('a', 3).ne('a', 2)[filterTreeGetter]()).to.be.eql(\n inAnd({ a: 3 }, { a: { $ne: 2 } })\n )\n })\n })\n })\n })\n\n describe('filter.or', function () {\n it('should produce correct filter tree', function () {\n const f = filter.eq('x', 1).or(filter.eq('y', 2))\n\n expect(f.getFilterModel()).to.be.eql({ $or: [{ x: 1 }, { y: 2 }] })\n expect(f.eq('z', 3).getFilterModel()).to.be.eql(\n inAnd({ $or: [{ x: 1 }, { y: 2 }] }, { z: 3 })\n )\n })\n\n it('should produce valid query if used directly', function () {\n const f = filter.or(filter.eq('x', 1))\n\n expect(f.filterTree).to.be.eql(inAnd({ $or: [inAnd({ x: 1 })] }))\n })\n })\n\n describe('filter.and', function () {\n it('should produce correct filter tree', function () {\n const f = filter.eq('x', 1).and(filter.eq('y', 2))\n\n expect(f.getFilterModel()).to.be.eql({ x: 1, y: 2 })\n expect(f.eq('x', 3).getFilterModel()).to.be.eql({\n $and: [{ x: 1 }, { y: 2 }, { x: 3 }],\n })\n })\n\n it('should produce valid query if used directly', function () {\n const f = filter.and(filter.eq('x', 1))\n\n expect(f.filterTree).to.be.eql(inAnd({ $and: [{ x: 1 }] }))\n })\n })\n\n describe('filter.not', function () {\n it('should produce the correct filter tree', function () {\n const f = filter.eq('x', 1).not(filter.eq('y', 2).eq('z', 3))\n\n expect(f.getFilterModel()).to.be.eql(\n inAnd({ x: 1 }, { $not: [{ y: 2, z: 3 }] })\n )\n })\n })\n\n describe('between', function () {\n it('should produce the correct filter tree for numbers', function () {\n const f = filter.between('field', 1, 3)\n\n expect(f.getFilterModel()).to.be.eql(\n inAnd({ field: { $gte: 1 } }, { field: { $lt: 3 } })\n )\n })\n\n it('should produce the correct filter tree for dates', function () {\n const startDate: any = new Date()\n const endDate: any = new Date()\n endDate.setYear(startDate.getYear() + 1)\n const f = filter.between('field', startDate, endDate)\n\n expect(f.getFilterModel()).to.be.eql(\n inAnd({ field: { $gte: startDate } }, { field: { $lt: endDate } })\n )\n })\n\n it('should produce the correct filter tree for strings', function () {\n const f = filter.between('field', 'start', 'end')\n\n expect(f.getFilterModel()).to.be.eql(\n inAnd({ field: { $gte: 'start' } }, { field: { $lt: 'end' } })\n )\n })\n\n describe('validation', function () {\n const filterTreeGetters = ['_build', 'getFilterModel']\n filterTreeGetters.forEach(function (filterTreeGetter) {\n describe(filterTreeGetter, function () {\n const invalidExamples = [\n [1, new Date(), 'Number', 'Date'],\n [1, '2015-02-02', 'Number', 'String'],\n [new Date(), '2015-01-01', 'Date', 'String'],\n [null, new Date(), 'Null', 'Date'],\n [undefined, new Date(), 'Undefined', 'Date'],\n ]\n\n invalidExamples.forEach(function ([\n first,\n second,\n firstType,\n secondType,\n ]) {\n it(\n \"should reject invalid query.between('x',\" +\n first +\n ',' +\n second +\n ')',\n function () {\n expect(function () {\n filter.between('x', first, second)[filterTreeGetter]()\n }).to.throw(\n `Invalid .between parameter values [${firstType}] and [${secondType}]. Both parameters must be of the same type.`\n )\n expect(function () {\n filter.between('x', second, first)[filterTreeGetter]()\n }).to.throw(\n `Invalid .between parameter values [${secondType}] and [${firstType}]. Both parameters must be of the same type.`\n )\n }\n )\n })\n })\n })\n })\n })\n\n describe('setFilterModel', function () {\n it('should return a new filter instance with the new filterTree value set', function () {\n const newFilter = filter.setFilterModel(\n inAnd({ a: { $gte: 'b' } }, { a: 1 }, { a: { $lte: 4 } })\n )\n\n expect(newFilter).not.to.equal(filter)\n })\n\n it('should set filterTree to the filterModel value when the value is a valid filterTree', function () {\n const newFilter = filter.setFilterModel(\n inAnd({ a: { $gte: 'b' } }, { a: 1 }, { a: { $lte: 4 } })\n )\n\n expect(newFilter.getFilterModel()).to.be.eql(\n inAnd({ a: { $gte: 'b' } }, { a: 1 }, { a: { $lte: 4 } })\n )\n })\n\n it('should set filterTree to the filterModel value even when the value is not a valid filterTree', function () {\n const newFilter = filter.setFilterModel(5)\n\n expect(newFilter.getFilterModel()).to.be.eql(5)\n })\n\n it('should set invalidArguments to an empty array when the value is a valid filterTree', function () {\n const invalidFilter = filter.eq('x')\n const newFilter = invalidFilter.setFilterModel(\n inAnd({ a: { $gte: 'b' } }, { a: 1 }, { a: { $lte: 4 } })\n )\n\n expect(newFilter.invalidArguments).to.be.eql([])\n })\n\n it('should set invalidArguments to an empty array when the value is not a valid filterTree', function () {\n const invalidFilter = filter.eq('x')\n const newFilter = invalidFilter.setFilterModel(5)\n\n expect(newFilter.invalidArguments).to.be.eql([])\n })\n })\n})\n"]}
1
+ {"version":3,"names":["_chai","_interopRequireDefault","require","_","expect","chai","inAnd","args","$and","describe","filter","filterBuilder","it","now","Date","filterWithEncoder","encoder","wixDataEncoder","eq","getFilterModel","to","be","eql","x","$date","toJSON","ne","$ne","gt","$gt","ge","$gte","lt","$lt","le","$lte","isNotEmpty","isEmpty","startsWith","$startsWith","endsWith","$endsWith","contains","$contains","hasSome","$hasSome","hasAll","$hasAll","not","throw","Error","filterTreeGetters","forEach","filterTreeGetter","_build","or","and","between","a","$or","f","y","z","filterTree","$not","field","startDate","endDate","setYear","getYear","invalidExamples","undefined","first","second","firstType","secondType","newFilter","setFilterModel","equal","invalidFilter","invalidArguments"],"sources":["../../../src/__tests__/filter.spec.ts"],"sourcesContent":["import chai from 'chai'\nimport { filterBuilder, wixDataEncoder } from '..'\n\nconst expect = chai.expect\n\nfunction inAnd(...args) {\n return { $and: args }\n}\n\ndescribe('filter', function () {\n const filter = filterBuilder()\n\n describe('custom encoders', function () {\n it('encode date with wixDataEncoder', function () {\n const now = new Date()\n const filterWithEncoder = filterBuilder({ encoder: wixDataEncoder })\n\n expect(filterWithEncoder.eq('x', now).getFilterModel()).to.be.eql({\n x: { $date: now.toJSON() },\n })\n })\n\n it('encode with custom encoder', function () {\n const encoder = () => 3\n const filterWithEncoder = filterBuilder({ encoder })\n\n expect(filterWithEncoder.eq('x', 'a').getFilterModel()).to.be.eql({\n x: 3,\n })\n })\n })\n\n describe('filter comparison operators', function () {\n it('should produce the correct filter tree', function () {\n expect(filter.eq('x', 1).getFilterModel()).to.be.eql({ x: 1 })\n expect(filter.ne('x', 1).getFilterModel()).to.be.eql({ x: { $ne: 1 } })\n expect(filter.gt('x', 1).getFilterModel()).to.be.eql({ x: { $gt: 1 } })\n expect(filter.ge('x', 1).getFilterModel()).to.be.eql({ x: { $gte: 1 } })\n expect(filter.lt('x', 1).getFilterModel()).to.be.eql({ x: { $lt: 1 } })\n expect(filter.le('x', 1).getFilterModel()).to.be.eql({ x: { $lte: 1 } })\n expect(filter.isNotEmpty('x').getFilterModel()).to.be.eql({\n x: { $ne: null },\n })\n expect(filter.isEmpty('x').getFilterModel()).to.be.eql({ x: null })\n expect(filter.startsWith('x', 'A').getFilterModel()).to.be.eql({\n x: { $startsWith: 'A' },\n })\n expect(filter.endsWith('x', 'A').getFilterModel()).to.be.eql({\n x: { $endsWith: 'A' },\n })\n expect(filter.contains('x', 'A').getFilterModel()).to.be.eql({\n x: { $contains: 'A' },\n })\n expect(filter.hasSome('x', [1, 2]).getFilterModel()).to.be.eql({\n x: { $hasSome: [1, 2] },\n })\n expect(filter.hasSome('x', 1, 2).getFilterModel()).to.be.eql({\n x: { $hasSome: [1, 2] },\n })\n expect(filter.hasAll('x', [1, 2]).getFilterModel()).to.be.eql({\n x: { $hasAll: [1, 2] },\n })\n expect(filter.hasAll('x', 1, 2).getFilterModel()).to.be.eql({\n x: { $hasAll: [1, 2] },\n })\n })\n\n it('should accept valid arguments for all types of queries', function () {\n expect(() => filter.eq('x', 0)).to.not.throw(Error)\n expect(() => filter.ne('x', 0)).to.not.throw(Error)\n expect(() => filter.gt('x', 0)).to.not.throw(Error)\n expect(() => filter.ge('x', 0)).to.not.throw(Error)\n expect(() => filter.lt('x', 0)).to.not.throw(Error)\n expect(() => filter.le('x', 0)).to.not.throw(Error)\n expect(() => filter.startsWith('x', '')).to.not.throw(Error)\n expect(() => filter.endsWith('x', '')).to.not.throw(Error)\n expect(() => filter.contains('x', '')).to.not.throw(Error)\n })\n\n const filterTreeGetters = ['_build', 'getFilterModel']\n filterTreeGetters.forEach(function (filterTreeGetter) {\n describe(filterTreeGetter, function () {\n it('should throw error if builder is called with too little arguments', function () {\n expect(() => filter.eq('x')._build()).to.throw(\n 'Invalid .eq usage. .eq requires two parameters.'\n )\n expect(() => filter.ne('x')._build()).to.throw(\n 'Invalid .ne usage. .ne requires two parameters.'\n )\n expect(() => filter.gt('x')._build()).to.throw(\n 'Invalid .gt usage. .gt requires two parameters.'\n )\n expect(() => filter.ge('x')._build()).to.throw(\n 'Invalid .ge usage. .ge requires two parameters.'\n )\n expect(() => filter.lt('x')._build()).to.throw(\n 'Invalid .lt usage. .lt requires two parameters.'\n )\n expect(() => filter.le('x')._build()).to.throw(\n 'Invalid .le usage. .le requires two parameters.'\n )\n expect(() => filter.startsWith('x')._build()).to.throw(\n 'Invalid .startsWith usage. .startsWith requires two parameters.'\n )\n expect(() => filter.endsWith('x')._build()).to.throw(\n 'Invalid .endsWith usage. .endsWith requires two parameters.'\n )\n expect(() => filter.contains('x')._build()).to.throw(\n 'Invalid .contains usage. .contains requires two parameters.'\n )\n // @ts-expect-error\n expect(() => filter.isNotEmpty()._build()).to.throw(\n 'Invalid .isNotEmpty usage. .isNotEmpty requires one parameter.'\n )\n // @ts-expect-error\n expect(() => filter.isEmpty()._build()).to.throw(\n 'Invalid .isEmpty usage. .isEmpty requires one parameter.'\n )\n expect(() => filter.isNotEmpty(1)._build()).to.throw(\n 'Invalid .isNotEmpty field value [Number]. .isNotEmpty field must be a String.'\n )\n expect(() => filter.isEmpty(1)._build()).to.throw(\n 'Invalid .isEmpty field value [Number]. .isEmpty field must be a String.'\n )\n // @ts-expect-error\n expect(() => filter.or()._build()).to.throw(\n 'Invalid .or usage. .or requires one parameter.'\n )\n // @ts-expect-error\n expect(() => filter.and()._build()).to.throw(\n 'Invalid .and usage. .and requires one parameter.'\n )\n // @ts-expect-error\n expect(() => filter.not()._build()).to.throw(\n 'Invalid .not usage. .not requires one parameter.'\n )\n // @ts-expect-error\n expect(() => filter.between()._build()).to.throw(\n 'Invalid .between usage. .between requires three parameters.'\n )\n // @ts-expect-error\n expect(() => filter.between('x')._build()).to.throw(\n 'Invalid .between usage. .between requires three parameters.'\n )\n // @ts-expect-error\n expect(() => filter.between('x', 'x')._build()).to.throw(\n 'Invalid .between usage. .between requires three parameters.'\n )\n expect(() => filter.hasSome('x')._build()).to.throw(\n 'Invalid .hasSome usage. .hasSome requires at least two parameters.'\n )\n expect(() => filter.hasAll('x')._build()).to.throw(\n 'Invalid .hasAll usage. .hasAll requires at least two parameters.'\n )\n })\n\n it('should validate the type of the other query', function () {\n expect(() => filter.or(null)._build()).to.throw(\n 'Invalid .or parameter [Null]. .or expects FilterBuilder only.'\n )\n expect(() => filter.or({})._build()).to.throw(\n 'Invalid .or parameter [Object]. .or expects FilterBuilder only.'\n )\n expect(() => filter.or([])._build()).to.throw(\n 'Invalid .or parameter [Array]. .or expects FilterBuilder only.'\n )\n expect(() => filter.not(null)._build()).to.throw(\n 'Invalid .not parameter [Null]. .not expects FilterBuilder only'\n )\n expect(() => filter.not({})._build()).to.throw(\n 'Invalid .not parameter [Object]. .not expects FilterBuilder only'\n )\n expect(() => filter.not([])._build()).to.throw(\n 'Invalid .not parameter [Array]. .not expects FilterBuilder only'\n )\n })\n\n it('should return filter tree', function () {\n expect(\n filter.ge('a', 'b').eq('a', 1).le('a', 4)[filterTreeGetter]()\n ).to.be.eql({\n $and: [{ a: { $gte: 'b' } }, { a: 1 }, { a: { $lte: 4 } }],\n })\n expect(\n filter\n .eq('a', 1)\n .lt('a', 2)\n .or(filter.ge('a', 'b'))\n [filterTreeGetter]()\n ).to.be.eql({\n $or: [\n { $and: [{ a: 1 }, { a: { $lt: 2 } }] },\n { a: { $gte: 'b' } },\n ],\n })\n expect(filter.eq('a', 3).ne('a', 2)[filterTreeGetter]()).to.be.eql(\n inAnd({ a: 3 }, { a: { $ne: 2 } })\n )\n })\n })\n })\n })\n\n describe('filter.or', function () {\n it('should produce correct filter tree', function () {\n const f = filter.eq('x', 1).or(filter.eq('y', 2))\n\n expect(f.getFilterModel()).to.be.eql({ $or: [{ x: 1 }, { y: 2 }] })\n expect(f.eq('z', 3).getFilterModel()).to.be.eql(\n inAnd({ $or: [{ x: 1 }, { y: 2 }] }, { z: 3 })\n )\n })\n\n it('should produce valid query if used directly', function () {\n const f = filter.or(filter.eq('x', 1))\n\n expect(f.filterTree).to.be.eql(inAnd({ $or: [inAnd({ x: 1 })] }))\n })\n })\n\n describe('filter.and', function () {\n it('should produce correct filter tree', function () {\n const f = filter.eq('x', 1).and(filter.eq('y', 2))\n\n expect(f.getFilterModel()).to.be.eql({ x: 1, y: 2 })\n expect(f.eq('x', 3).getFilterModel()).to.be.eql({\n $and: [{ x: 1 }, { y: 2 }, { x: 3 }],\n })\n })\n\n it('should produce valid query if used directly', function () {\n const f = filter.and(filter.eq('x', 1))\n\n expect(f.filterTree).to.be.eql(inAnd({ $and: [{ x: 1 }] }))\n })\n })\n\n describe('filter.not', function () {\n it('should produce the correct filter tree', function () {\n const f = filter.eq('x', 1).not(filter.eq('y', 2).eq('z', 3))\n\n expect(f.getFilterModel()).to.be.eql(\n inAnd({ x: 1 }, { $not: [{ y: 2, z: 3 }] })\n )\n })\n })\n\n describe('between', function () {\n it('should produce the correct filter tree for numbers', function () {\n const f = filter.between('field', 1, 3)\n\n expect(f.getFilterModel()).to.be.eql(\n inAnd({ field: { $gte: 1 } }, { field: { $lt: 3 } })\n )\n })\n\n it('should produce the correct filter tree for dates', function () {\n const startDate: any = new Date()\n const endDate: any = new Date()\n endDate.setYear(startDate.getYear() + 1)\n const f = filter.between('field', startDate, endDate)\n\n expect(f.getFilterModel()).to.be.eql(\n inAnd({ field: { $gte: startDate } }, { field: { $lt: endDate } })\n )\n })\n\n it('should produce the correct filter tree for strings', function () {\n const f = filter.between('field', 'start', 'end')\n\n expect(f.getFilterModel()).to.be.eql(\n inAnd({ field: { $gte: 'start' } }, { field: { $lt: 'end' } })\n )\n })\n\n describe('validation', function () {\n const filterTreeGetters = ['_build', 'getFilterModel']\n filterTreeGetters.forEach(function (filterTreeGetter) {\n describe(filterTreeGetter, function () {\n const invalidExamples = [\n [1, new Date(), 'Number', 'Date'],\n [1, '2015-02-02', 'Number', 'String'],\n [new Date(), '2015-01-01', 'Date', 'String'],\n [null, new Date(), 'Null', 'Date'],\n [undefined, new Date(), 'Undefined', 'Date'],\n ]\n\n invalidExamples.forEach(function ([\n first,\n second,\n firstType,\n secondType,\n ]) {\n it(\n \"should reject invalid query.between('x',\" +\n first +\n ',' +\n second +\n ')',\n function () {\n expect(function () {\n filter.between('x', first, second)[filterTreeGetter]()\n }).to.throw(\n `Invalid .between parameter values [${firstType}] and [${secondType}]. Both parameters must be of the same type.`\n )\n expect(function () {\n filter.between('x', second, first)[filterTreeGetter]()\n }).to.throw(\n `Invalid .between parameter values [${secondType}] and [${firstType}]. Both parameters must be of the same type.`\n )\n }\n )\n })\n })\n })\n })\n })\n\n describe('setFilterModel', function () {\n it('should return a new filter instance with the new filterTree value set', function () {\n const newFilter = filter.setFilterModel(\n inAnd({ a: { $gte: 'b' } }, { a: 1 }, { a: { $lte: 4 } })\n )\n\n expect(newFilter).not.to.equal(filter)\n })\n\n it('should set filterTree to the filterModel value when the value is a valid filterTree', function () {\n const newFilter = filter.setFilterModel(\n inAnd({ a: { $gte: 'b' } }, { a: 1 }, { a: { $lte: 4 } })\n )\n\n expect(newFilter.getFilterModel()).to.be.eql(\n inAnd({ a: { $gte: 'b' } }, { a: 1 }, { a: { $lte: 4 } })\n )\n })\n\n it('should set filterTree to the filterModel value even when the value is not a valid filterTree', function () {\n const newFilter = filter.setFilterModel(5)\n\n expect(newFilter.getFilterModel()).to.be.eql(5)\n })\n\n it('should set invalidArguments to an empty array when the value is a valid filterTree', function () {\n const invalidFilter = filter.eq('x')\n const newFilter = invalidFilter.setFilterModel(\n inAnd({ a: { $gte: 'b' } }, { a: 1 }, { a: { $lte: 4 } })\n )\n\n expect(newFilter.invalidArguments).to.be.eql([])\n })\n\n it('should set invalidArguments to an empty array when the value is not a valid filterTree', function () {\n const invalidFilter = filter.eq('x')\n const newFilter = invalidFilter.setFilterModel(5)\n\n expect(newFilter.invalidArguments).to.be.eql([])\n })\n })\n})\n"],"mappings":"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"}
@@ -1,11 +1,8 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _chai = _interopRequireDefault(require("chai"));
6
-
7
5
  var _queryOptimiser = require("../query-optimiser");
8
-
9
6
  const expect = _chai.default.expect;
10
7
  describe('query optimisations', () => {
11
8
  describe('$and with single element', () => {
@@ -142,7 +139,6 @@ describe('query optimisations', () => {
142
139
  });
143
140
  });
144
141
  });
145
-
146
142
  function testCase(description, input, expectedOutput) {
147
143
  it(description, () => {
148
144
  const actualOutput = (0, _queryOptimiser.optimisedQuery)(input);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/__tests__/query-optimizer.spec.ts"],"names":["expect","chai","describe","testCase","$and","a","b","$lte","it","actualOutput","to","be","eql","$or","x","Date","description","input","expectedOutput"],"mappings":"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","sourcesContent":["import chai from 'chai'\nimport { optimisedQuery as optimised } from '../query-optimiser'\n\nconst expect = chai.expect\n\ndescribe('query optimisations', () => {\n describe('$and with single element', () => {\n testCase('gets unwrapped', { $and: [{ a: 1 }] }, { a: 1 })\n })\n\n describe('$and with object pieces', () => {\n testCase(\n 'gets unwrapped as object',\n { $and: [{ a: 1 }, { b: 2 }] },\n { a: 1, b: 2 }\n )\n testCase(\n 'remains if keys overlap',\n { $and: [{ a: 1 }, { b: 2 }, { a: 1 }] },\n { $and: [{ a: 1 }, { b: 2 }, { a: 1 }] }\n )\n testCase(\n \"nested operators don't get merged\",\n { $and: [{ a: 1 }, { $lte: 4 }, { b: 2 }] },\n { $and: [{ a: 1, b: 2 }, { $lte: 4 }] }\n )\n it('merges empty objects', () => {\n const actualOutput = optimised({ $and: [{}, {}, {}] })\n expect(actualOutput).to.be.eql({})\n })\n })\n\n describe('empty $and', () => {\n testCase('is removed', { $and: [{ $and: [] }] }, {})\n testCase('is removed when nested', { $and: [{ $and: [] }] }, {})\n })\n\n describe('nested $and', () => {\n testCase(\n 'get flattened',\n {\n $and: [{ a: 1 }, { $and: [{ a: 1 }] }, { $and: [{ a: 1 }, { a: 1 }] }],\n },\n { $and: [{ a: 1 }, { a: 1 }, { a: 1 }, { a: 1 }] }\n )\n })\n\n describe('nested $or', () => {\n testCase(\n 'get flattened',\n { $or: [{ a: 1 }, { $or: [{ a: 1 }] }, { $or: [{ a: 1 }, { a: 1 }] }] },\n { $or: [{ a: 1 }, { a: 1 }, { a: 1 }, { a: 1 }] }\n )\n })\n\n describe('type compatibility', () => {\n testCase(\n 'maintains date objects',\n { x: [new Date('2020-01-01T00:00:00Z')] },\n { x: [new Date('2020-01-01T00:00:00Z')] }\n )\n })\n})\n\nfunction testCase(description, input, expectedOutput) {\n it(description, () => {\n const actualOutput = optimised(input)\n expect(actualOutput).to.be.eql(expectedOutput)\n })\n}\n"]}
1
+ {"version":3,"names":["_chai","_interopRequireDefault","require","_queryOptimiser","expect","chai","describe","testCase","$and","a","b","$lte","it","actualOutput","optimised","to","be","eql","$or","x","Date","description","input","expectedOutput"],"sources":["../../../src/__tests__/query-optimizer.spec.ts"],"sourcesContent":["import chai from 'chai'\nimport { optimisedQuery as optimised } from '../query-optimiser'\n\nconst expect = chai.expect\n\ndescribe('query optimisations', () => {\n describe('$and with single element', () => {\n testCase('gets unwrapped', { $and: [{ a: 1 }] }, { a: 1 })\n })\n\n describe('$and with object pieces', () => {\n testCase(\n 'gets unwrapped as object',\n { $and: [{ a: 1 }, { b: 2 }] },\n { a: 1, b: 2 }\n )\n testCase(\n 'remains if keys overlap',\n { $and: [{ a: 1 }, { b: 2 }, { a: 1 }] },\n { $and: [{ a: 1 }, { b: 2 }, { a: 1 }] }\n )\n testCase(\n \"nested operators don't get merged\",\n { $and: [{ a: 1 }, { $lte: 4 }, { b: 2 }] },\n { $and: [{ a: 1, b: 2 }, { $lte: 4 }] }\n )\n it('merges empty objects', () => {\n const actualOutput = optimised({ $and: [{}, {}, {}] })\n expect(actualOutput).to.be.eql({})\n })\n })\n\n describe('empty $and', () => {\n testCase('is removed', { $and: [{ $and: [] }] }, {})\n testCase('is removed when nested', { $and: [{ $and: [] }] }, {})\n })\n\n describe('nested $and', () => {\n testCase(\n 'get flattened',\n {\n $and: [{ a: 1 }, { $and: [{ a: 1 }] }, { $and: [{ a: 1 }, { a: 1 }] }],\n },\n { $and: [{ a: 1 }, { a: 1 }, { a: 1 }, { a: 1 }] }\n )\n })\n\n describe('nested $or', () => {\n testCase(\n 'get flattened',\n { $or: [{ a: 1 }, { $or: [{ a: 1 }] }, { $or: [{ a: 1 }, { a: 1 }] }] },\n { $or: [{ a: 1 }, { a: 1 }, { a: 1 }, { a: 1 }] }\n )\n })\n\n describe('type compatibility', () => {\n testCase(\n 'maintains date objects',\n { x: [new Date('2020-01-01T00:00:00Z')] },\n { x: [new Date('2020-01-01T00:00:00Z')] }\n )\n })\n})\n\nfunction testCase(description, input, expectedOutput) {\n it(description, () => {\n const actualOutput = optimised(input)\n expect(actualOutput).to.be.eql(expectedOutput)\n })\n}\n"],"mappings":"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"}
package/dist/cjs/clone.js CHANGED
@@ -2,26 +2,20 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.default = clone;
5
-
6
5
  var _typeUtils = require("./type-utils");
7
-
8
6
  function clone(obj) {
9
7
  if (obj == null || typeof obj !== 'object') {
10
8
  return obj;
11
9
  }
12
-
13
10
  let temp = null;
14
-
15
11
  if ((0, _typeUtils.isDate)(obj)) {
16
12
  temp = new Date(obj.getTime());
17
13
  } else {
18
14
  temp = obj.constructor();
19
-
20
15
  for (const key in obj) {
21
16
  temp[key] = clone(obj[key]);
22
17
  }
23
18
  }
24
-
25
19
  return temp;
26
20
  }
27
21
  //# sourceMappingURL=clone.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/clone.ts"],"names":["clone","obj","temp","Date","getTime","constructor","key"],"mappings":";;;;;AAAA;;AAEe,SAASA,KAAT,CAAeC,GAAf,EAAoB;AACjC,MAAIA,GAAG,IAAI,IAAP,IAAe,OAAOA,GAAP,KAAe,QAAlC,EAA4C;AAC1C,WAAOA,GAAP;AACD;;AAED,MAAIC,IAAS,GAAG,IAAhB;;AAEA,MAAI,uBAAOD,GAAP,CAAJ,EAAiB;AACfC,IAAAA,IAAI,GAAG,IAAIC,IAAJ,CAASF,GAAG,CAACG,OAAJ,EAAT,CAAP;AACD,GAFD,MAEO;AACLF,IAAAA,IAAI,GAAGD,GAAG,CAACI,WAAJ,EAAP;;AACA,SAAK,MAAMC,GAAX,IAAkBL,GAAlB,EAAuB;AACrBC,MAAAA,IAAI,CAACI,GAAD,CAAJ,GAAYN,KAAK,CAACC,GAAG,CAACK,GAAD,CAAJ,CAAjB;AACD;AACF;;AAED,SAAOJ,IAAP;AACD","sourcesContent":["import { isDate } from './type-utils'\n\nexport default function clone(obj) {\n if (obj == null || typeof obj !== 'object') {\n return obj\n }\n\n let temp: any = null\n\n if (isDate(obj)) {\n temp = new Date(obj.getTime())\n } else {\n temp = obj.constructor()\n for (const key in obj) {\n temp[key] = clone(obj[key])\n }\n }\n\n return temp\n}\n"]}
1
+ {"version":3,"names":["_typeUtils","require","clone","obj","temp","isDate","Date","getTime","constructor","key"],"sources":["../../src/clone.ts"],"sourcesContent":["import { isDate } from './type-utils'\n\nexport default function clone(obj) {\n if (obj == null || typeof obj !== 'object') {\n return obj\n }\n\n let temp: any = null\n\n if (isDate(obj)) {\n temp = new Date(obj.getTime())\n } else {\n temp = obj.constructor()\n for (const key in obj) {\n temp[key] = clone(obj[key])\n }\n }\n\n return temp\n}\n"],"mappings":";;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEe,SAASC,KAAKA,CAACC,GAAG,EAAE;EACjC,IAAIA,GAAG,IAAI,IAAI,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;IAC1C,OAAOA,GAAG;EACZ;EAEA,IAAIC,IAAS,GAAG,IAAI;EAEpB,IAAI,IAAAC,iBAAM,EAACF,GAAG,CAAC,EAAE;IACfC,IAAI,GAAG,IAAIE,IAAI,CAACH,GAAG,CAACI,OAAO,EAAE,CAAC;EAChC,CAAC,MAAM;IACLH,IAAI,GAAGD,GAAG,CAACK,WAAW,EAAE;IACxB,KAAK,MAAMC,GAAG,IAAIN,GAAG,EAAE;MACrBC,IAAI,CAACK,GAAG,CAAC,GAAGP,KAAK,CAACC,GAAG,CAACM,GAAG,CAAC,CAAC;IAC7B;EACF;EAEA,OAAOL,IAAI;AACb"}
@@ -1,30 +1,22 @@
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 = exports.FilterBuilder = void 0;
7
6
  exports.filterBuilder = filterBuilder;
8
-
9
7
  var _filterMixin = _interopRequireDefault(require("./filter-mixin"));
10
-
11
8
  class FilterBuilder extends (0, _filterMixin.default)() {
12
9
  get constructorName() {
13
10
  return 'FilterBuilder';
14
11
  }
15
-
16
12
  _build() {
17
13
  return this.getFilterModel();
18
14
  }
19
-
20
15
  }
21
-
22
16
  exports.FilterBuilder = FilterBuilder;
23
-
24
17
  function filterBuilder(params = {}) {
25
18
  return new FilterBuilder(params);
26
19
  }
27
-
28
20
  var _default = filterBuilder;
29
21
  exports.default = _default;
30
22
  //# sourceMappingURL=filter-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/filter-builder.ts"],"names":["FilterBuilder","constructorName","_build","getFilterModel","filterBuilder","params"],"mappings":";;;;;;;;AAAA;;AAEO,MAAMA,aAAN,SAA4B,2BAA5B,CAA0C;AAC5B,MAAfC,eAAe,GAAG;AACpB,WAAO,eAAP;AACD;;AAEDC,EAAAA,MAAM,GAAG;AACP,WAAO,KAAKC,cAAL,EAAP;AACD;;AAP8C;;;;AAU1C,SAASC,aAAT,CAAuBC,MAAM,GAAG,EAAhC,EAAoC;AACzC,SAAO,IAAIL,aAAJ,CAAkBK,MAAlB,CAAP;AACD;;eAEcD,a","sourcesContent":["import filterMixin from './filter-mixin'\n\nexport class FilterBuilder extends filterMixin() {\n get constructorName() {\n return 'FilterBuilder'\n }\n\n _build() {\n return this.getFilterModel()\n }\n}\n\nexport function filterBuilder(params = {}) {\n return new FilterBuilder(params)\n}\n\nexport default filterBuilder\n"]}
1
+ {"version":3,"names":["_filterMixin","_interopRequireDefault","require","FilterBuilder","filterMixin","constructorName","_build","getFilterModel","exports","filterBuilder","params","_default","default"],"sources":["../../src/filter-builder.ts"],"sourcesContent":["import filterMixin from './filter-mixin'\n\nexport class FilterBuilder extends filterMixin() {\n get constructorName() {\n return 'FilterBuilder'\n }\n\n _build() {\n return this.getFilterModel()\n }\n}\n\nexport function filterBuilder(params = {}) {\n return new FilterBuilder(params)\n}\n\nexport default filterBuilder\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEO,MAAMC,aAAa,SAAS,IAAAC,oBAAW,GAAE,CAAC;EAC/C,IAAIC,eAAeA,CAAA,EAAG;IACpB,OAAO,eAAe;EACxB;EAEAC,MAAMA,CAAA,EAAG;IACP,OAAO,IAAI,CAACC,cAAc,EAAE;EAC9B;AACF;AAACC,OAAA,CAAAL,aAAA,GAAAA,aAAA;AAEM,SAASM,aAAaA,CAACC,MAAM,GAAG,CAAC,CAAC,EAAE;EACzC,OAAO,IAAIP,aAAa,CAACO,MAAM,CAAC;AAClC;AAAC,IAAAC,QAAA,GAEcF,aAAa;AAAAD,OAAA,CAAAI,OAAA,GAAAD,QAAA"}