@nulledexp/translatable-criteria 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/criteria/criteria-factory.d.ts +70 -0
- package/dist/criteria/criteria-factory.d.ts.map +1 -0
- package/dist/criteria/criteria-factory.js +77 -0
- package/dist/criteria/criteria-factory.js.map +1 -0
- package/dist/criteria/criteria-filter-manager.d.ts +13 -0
- package/dist/criteria/criteria-filter-manager.d.ts.map +1 -0
- package/dist/criteria/criteria-filter-manager.js +21 -0
- package/dist/criteria/criteria-filter-manager.js.map +1 -0
- package/dist/criteria/criteria-join-manager.d.ts +10 -0
- package/dist/criteria/criteria-join-manager.d.ts.map +1 -0
- package/dist/criteria/criteria-join-manager.js +14 -0
- package/dist/criteria/criteria-join-manager.js.map +1 -0
- package/dist/criteria/criteria.d.ts +48 -0
- package/dist/criteria/criteria.d.ts.map +1 -0
- package/dist/criteria/criteria.js +162 -0
- package/dist/criteria/criteria.js.map +1 -0
- package/dist/criteria/cursor.d.ts +13 -0
- package/dist/criteria/cursor.d.ts.map +1 -0
- package/dist/criteria/cursor.js +31 -0
- package/dist/criteria/cursor.js.map +1 -0
- package/dist/criteria/filter/filter-group.d.ts +18 -0
- package/dist/criteria/filter/filter-group.d.ts.map +1 -0
- package/dist/criteria/filter/filter-group.js +104 -0
- package/dist/criteria/filter/filter-group.js.map +1 -0
- package/dist/criteria/filter/filter-utils.d.ts +5 -0
- package/dist/criteria/filter/filter-utils.d.ts.map +1 -0
- package/dist/criteria/filter/filter-utils.js +74 -0
- package/dist/criteria/filter/filter-utils.js.map +1 -0
- package/dist/criteria/filter/filter.d.ts +23 -0
- package/dist/criteria/filter/filter.d.ts.map +1 -0
- package/dist/criteria/filter/filter.js +126 -0
- package/dist/criteria/filter/filter.js.map +1 -0
- package/dist/criteria/filter/types/filter-primitive.types.d.ts +66 -0
- package/dist/criteria/filter/types/filter-primitive.types.d.ts.map +1 -0
- package/dist/criteria/filter/types/filter-primitive.types.js +2 -0
- package/dist/criteria/filter/types/filter-primitive.types.js.map +1 -0
- package/dist/criteria/index.d.ts +22 -0
- package/dist/criteria/index.d.ts.map +1 -0
- package/dist/criteria/index.js +16 -0
- package/dist/criteria/index.js.map +1 -0
- package/dist/criteria/join/inner.join-criteria.d.ts +27 -0
- package/dist/criteria/join/inner.join-criteria.d.ts.map +1 -0
- package/dist/criteria/join/inner.join-criteria.js +31 -0
- package/dist/criteria/join/inner.join-criteria.js.map +1 -0
- package/dist/criteria/join/left.join-criteria.d.ts +26 -0
- package/dist/criteria/join/left.join-criteria.d.ts.map +1 -0
- package/dist/criteria/join/left.join-criteria.js +30 -0
- package/dist/criteria/join/left.join-criteria.js.map +1 -0
- package/dist/criteria/join/outer.join-criteria.d.ts +27 -0
- package/dist/criteria/join/outer.join-criteria.d.ts.map +1 -0
- package/dist/criteria/join/outer.join-criteria.js +31 -0
- package/dist/criteria/join/outer.join-criteria.js.map +1 -0
- package/dist/criteria/order/order.d.ts +20 -0
- package/dist/criteria/order/order.d.ts.map +1 -0
- package/dist/criteria/order/order.js +32 -0
- package/dist/criteria/order/order.js.map +1 -0
- package/dist/criteria/root.criteria.d.ts +28 -0
- package/dist/criteria/root.criteria.d.ts.map +1 -0
- package/dist/criteria/root.criteria.js +30 -0
- package/dist/criteria/root.criteria.js.map +1 -0
- package/dist/criteria/translator/criteria-translator.d.ts +45 -0
- package/dist/criteria/translator/criteria-translator.d.ts.map +1 -0
- package/dist/criteria/translator/criteria-translator.js +30 -0
- package/dist/criteria/translator/criteria-translator.js.map +1 -0
- package/dist/criteria/types/criteria.interface.d.ts +166 -0
- package/dist/criteria/types/criteria.interface.d.ts.map +1 -0
- package/dist/criteria/types/criteria.interface.js +2 -0
- package/dist/criteria/types/criteria.interface.js.map +1 -0
- package/dist/criteria/types/filter-expression.interface.d.ts +7 -0
- package/dist/criteria/types/filter-expression.interface.d.ts.map +1 -0
- package/dist/criteria/types/filter-expression.interface.js +2 -0
- package/dist/criteria/types/filter-expression.interface.js.map +1 -0
- package/dist/criteria/types/join-input.types.d.ts +54 -0
- package/dist/criteria/types/join-input.types.d.ts.map +1 -0
- package/dist/criteria/types/join-input.types.js +2 -0
- package/dist/criteria/types/join-input.types.js.map +1 -0
- package/dist/criteria/types/join-parameter.types.d.ts +70 -0
- package/dist/criteria/types/join-parameter.types.d.ts.map +1 -0
- package/dist/criteria/types/join-parameter.types.js +2 -0
- package/dist/criteria/types/join-parameter.types.js.map +1 -0
- package/dist/criteria/types/join-utility.types.d.ts +71 -0
- package/dist/criteria/types/join-utility.types.d.ts.map +1 -0
- package/dist/criteria/types/join-utility.types.js +2 -0
- package/dist/criteria/types/join-utility.types.js.map +1 -0
- package/dist/criteria/types/manager.interface.d.ts +59 -0
- package/dist/criteria/types/manager.interface.d.ts.map +1 -0
- package/dist/criteria/types/manager.interface.js +2 -0
- package/dist/criteria/types/manager.interface.js.map +1 -0
- package/dist/criteria/types/operator.types.d.ts +92 -0
- package/dist/criteria/types/operator.types.d.ts.map +1 -0
- package/dist/criteria/types/operator.types.js +95 -0
- package/dist/criteria/types/operator.types.js.map +1 -0
- package/dist/criteria/types/schema.types.d.ts +61 -0
- package/dist/criteria/types/schema.types.d.ts.map +1 -0
- package/dist/criteria/types/schema.types.js +18 -0
- package/dist/criteria/types/schema.types.js.map +1 -0
- package/dist/criteria/types/visitor-interface.types.d.ts +24 -0
- package/dist/criteria/types/visitor-interface.types.d.ts.map +1 -0
- package/dist/criteria/types/visitor-interface.types.js +2 -0
- package/dist/criteria/types/visitor-interface.types.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { RootCriteria } from './root.criteria.js';
|
|
2
|
+
import type { CriteriaSchema, SelectedAliasOf } from './types/schema.types.js';
|
|
3
|
+
import { InnerJoinCriteria } from './join/inner.join-criteria.js';
|
|
4
|
+
import { LeftJoinCriteria } from './join/left.join-criteria.js';
|
|
5
|
+
import { OuterJoinCriteria } from './join/outer.join-criteria.js';
|
|
6
|
+
/**
|
|
7
|
+
* Provides static methods for creating instances of different types of `Criteria`.
|
|
8
|
+
* This simplifies the creation of `Criteria` objects and ensures they are instantiated
|
|
9
|
+
* with the correct schema and alias configuration.
|
|
10
|
+
*/
|
|
11
|
+
export declare class CriteriaFactory {
|
|
12
|
+
/**
|
|
13
|
+
* Creates an instance of `RootCriteria`. This is the starting point for building a main query.
|
|
14
|
+
* @template CSchema - The type of the `CriteriaSchema` for the root entity.
|
|
15
|
+
* @template Alias - The type of the selected alias for the root entity.
|
|
16
|
+
* @param {CSchema} schema - An instance of `CriteriaSchema` that defines the structure of the root entity.
|
|
17
|
+
* @param {Alias} alias - A valid alias (string) for the root entity, defined within the `schema`.
|
|
18
|
+
* @returns {RootCriteria<CSchema, Alias>} An instance of `RootCriteria`.
|
|
19
|
+
* @example
|
|
20
|
+
* import { CriteriaFactory } from './criteria-factory';
|
|
21
|
+
* import { UserSchema } from './path/to/your/schemas';
|
|
22
|
+
*
|
|
23
|
+
* const userCriteria = CriteriaFactory.GetCriteria(UserSchema, 'users');
|
|
24
|
+
*/
|
|
25
|
+
static GetCriteria<CSchema extends CriteriaSchema, Alias extends SelectedAliasOf<CSchema>>(schema: CSchema, alias: Alias): RootCriteria<CSchema, Alias>;
|
|
26
|
+
/**
|
|
27
|
+
* Creates an instance of `InnerJoinCriteria`. Used to define an `INNER JOIN` in a query.
|
|
28
|
+
* @template CSchema - The type of the `CriteriaSchema` for the entity to be joined.
|
|
29
|
+
* @template Alias - The type of the selected alias for the joined entity.
|
|
30
|
+
* @param {CSchema} schema - An instance of `CriteriaSchema` that defines the structure of the entity to be joined.
|
|
31
|
+
* @param {Alias} alias - A valid alias (string) for the joined entity, defined within its `schema`.
|
|
32
|
+
* @returns {InnerJoinCriteria<CSchema, Alias>} An instance of `InnerJoinCriteria`.
|
|
33
|
+
* @example
|
|
34
|
+
* import { CriteriaFactory } from './criteria-factory';
|
|
35
|
+
* import { PostSchema } from './path/to/your/schemas';
|
|
36
|
+
*
|
|
37
|
+
* const postJoinCriteria = CriteriaFactory.GetInnerJoinCriteria(PostSchema, 'posts');
|
|
38
|
+
* // postJoinCriteria can then be used in the .join() method of another Criteria
|
|
39
|
+
*/
|
|
40
|
+
static GetInnerJoinCriteria<CSchema extends CriteriaSchema, Alias extends SelectedAliasOf<CSchema>>(schema: CSchema, alias: Alias): InnerJoinCriteria<CSchema, Alias>;
|
|
41
|
+
/**
|
|
42
|
+
* Creates an instance of `LeftJoinCriteria`. Used to define a `LEFT JOIN` in a query.
|
|
43
|
+
* @template CSchema - The type of the `CriteriaSchema` for the entity to be joined.
|
|
44
|
+
* @template Alias - The type of the selected alias for the joined entity.
|
|
45
|
+
* @param {CSchema} schema - An instance of `CriteriaSchema` that defines the structure of the entity to be joined.
|
|
46
|
+
* @param {Alias} alias - A valid alias (string) for the joined entity, defined within its `schema`.
|
|
47
|
+
* @returns {LeftJoinCriteria<CSchema, Alias>} An instance of `LeftJoinCriteria`.
|
|
48
|
+
* @example
|
|
49
|
+
* import { CriteriaFactory } from './criteria-factory';
|
|
50
|
+
* import { CommentSchema } from './path/to/your/schemas';
|
|
51
|
+
*
|
|
52
|
+
* const commentJoinCriteria = CriteriaFactory.GetLeftJoinCriteria(CommentSchema, 'comments');
|
|
53
|
+
*/
|
|
54
|
+
static GetLeftJoinCriteria<CSchema extends CriteriaSchema, Alias extends SelectedAliasOf<CSchema>>(schema: CSchema, alias: Alias): LeftJoinCriteria<CSchema, Alias>;
|
|
55
|
+
/**
|
|
56
|
+
* Creates an instance of `OuterJoinCriteria`. Used to define a `FULL OUTER JOIN` in a query.
|
|
57
|
+
* @template CSchema - The type of the `CriteriaSchema` for the entity to be joined.
|
|
58
|
+
* @template Alias - The type of the selected alias for the joined entity.
|
|
59
|
+
* @param {CSchema} schema - An instance of `CriteriaSchema` that defines the structure of the entity to be joined.
|
|
60
|
+
* @param {Alias} alias - A valid alias (string) for the joined entity, defined within its `schema`.
|
|
61
|
+
* @returns {OuterJoinCriteria<CSchema, Alias>} An instance of `OuterJoinCriteria`.
|
|
62
|
+
* @example
|
|
63
|
+
* import { CriteriaFactory } from './criteria-factory';
|
|
64
|
+
* import { ProfileSchema } from './path/to/your/schemas';
|
|
65
|
+
*
|
|
66
|
+
* const profileJoinCriteria = CriteriaFactory.GetOuterJoinCriteria(ProfileSchema, 'profiles');
|
|
67
|
+
*/
|
|
68
|
+
static GetOuterJoinCriteria<CSchema extends CriteriaSchema, Alias extends SelectedAliasOf<CSchema>>(schema: CSchema, alias: Alias): OuterJoinCriteria<CSchema, Alias>;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=criteria-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"criteria-factory.d.ts","sourceRoot":"","sources":["../../src/criteria/criteria-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE;;;;GAIG;AACH,qBAAa,eAAe;IAC1B;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,WAAW,CAChB,OAAO,SAAS,cAAc,EAC9B,KAAK,SAAS,eAAe,CAAC,OAAO,CAAC,EACtC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC;IAI9D;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,oBAAoB,CACzB,OAAO,SAAS,cAAc,EAC9B,KAAK,SAAS,eAAe,CAAC,OAAO,CAAC,EACtC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC;IAInE;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,mBAAmB,CACxB,OAAO,SAAS,cAAc,EAC9B,KAAK,SAAS,eAAe,CAAC,OAAO,CAAC,EACtC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC;IAIlE;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,oBAAoB,CACzB,OAAO,SAAS,cAAc,EAC9B,KAAK,SAAS,eAAe,CAAC,OAAO,CAAC,EACtC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC;CAGpE"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { RootCriteria } from './root.criteria.js';
|
|
2
|
+
import { InnerJoinCriteria } from './join/inner.join-criteria.js';
|
|
3
|
+
import { LeftJoinCriteria } from './join/left.join-criteria.js';
|
|
4
|
+
import { OuterJoinCriteria } from './join/outer.join-criteria.js';
|
|
5
|
+
/**
|
|
6
|
+
* Provides static methods for creating instances of different types of `Criteria`.
|
|
7
|
+
* This simplifies the creation of `Criteria` objects and ensures they are instantiated
|
|
8
|
+
* with the correct schema and alias configuration.
|
|
9
|
+
*/
|
|
10
|
+
export class CriteriaFactory {
|
|
11
|
+
/**
|
|
12
|
+
* Creates an instance of `RootCriteria`. This is the starting point for building a main query.
|
|
13
|
+
* @template CSchema - The type of the `CriteriaSchema` for the root entity.
|
|
14
|
+
* @template Alias - The type of the selected alias for the root entity.
|
|
15
|
+
* @param {CSchema} schema - An instance of `CriteriaSchema` that defines the structure of the root entity.
|
|
16
|
+
* @param {Alias} alias - A valid alias (string) for the root entity, defined within the `schema`.
|
|
17
|
+
* @returns {RootCriteria<CSchema, Alias>} An instance of `RootCriteria`.
|
|
18
|
+
* @example
|
|
19
|
+
* import { CriteriaFactory } from './criteria-factory';
|
|
20
|
+
* import { UserSchema } from './path/to/your/schemas';
|
|
21
|
+
*
|
|
22
|
+
* const userCriteria = CriteriaFactory.GetCriteria(UserSchema, 'users');
|
|
23
|
+
*/
|
|
24
|
+
static GetCriteria(schema, alias) {
|
|
25
|
+
return new RootCriteria(schema, alias);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Creates an instance of `InnerJoinCriteria`. Used to define an `INNER JOIN` in a query.
|
|
29
|
+
* @template CSchema - The type of the `CriteriaSchema` for the entity to be joined.
|
|
30
|
+
* @template Alias - The type of the selected alias for the joined entity.
|
|
31
|
+
* @param {CSchema} schema - An instance of `CriteriaSchema` that defines the structure of the entity to be joined.
|
|
32
|
+
* @param {Alias} alias - A valid alias (string) for the joined entity, defined within its `schema`.
|
|
33
|
+
* @returns {InnerJoinCriteria<CSchema, Alias>} An instance of `InnerJoinCriteria`.
|
|
34
|
+
* @example
|
|
35
|
+
* import { CriteriaFactory } from './criteria-factory';
|
|
36
|
+
* import { PostSchema } from './path/to/your/schemas';
|
|
37
|
+
*
|
|
38
|
+
* const postJoinCriteria = CriteriaFactory.GetInnerJoinCriteria(PostSchema, 'posts');
|
|
39
|
+
* // postJoinCriteria can then be used in the .join() method of another Criteria
|
|
40
|
+
*/
|
|
41
|
+
static GetInnerJoinCriteria(schema, alias) {
|
|
42
|
+
return new InnerJoinCriteria(schema, alias);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Creates an instance of `LeftJoinCriteria`. Used to define a `LEFT JOIN` in a query.
|
|
46
|
+
* @template CSchema - The type of the `CriteriaSchema` for the entity to be joined.
|
|
47
|
+
* @template Alias - The type of the selected alias for the joined entity.
|
|
48
|
+
* @param {CSchema} schema - An instance of `CriteriaSchema` that defines the structure of the entity to be joined.
|
|
49
|
+
* @param {Alias} alias - A valid alias (string) for the joined entity, defined within its `schema`.
|
|
50
|
+
* @returns {LeftJoinCriteria<CSchema, Alias>} An instance of `LeftJoinCriteria`.
|
|
51
|
+
* @example
|
|
52
|
+
* import { CriteriaFactory } from './criteria-factory';
|
|
53
|
+
* import { CommentSchema } from './path/to/your/schemas';
|
|
54
|
+
*
|
|
55
|
+
* const commentJoinCriteria = CriteriaFactory.GetLeftJoinCriteria(CommentSchema, 'comments');
|
|
56
|
+
*/
|
|
57
|
+
static GetLeftJoinCriteria(schema, alias) {
|
|
58
|
+
return new LeftJoinCriteria(schema, alias);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Creates an instance of `OuterJoinCriteria`. Used to define a `FULL OUTER JOIN` in a query.
|
|
62
|
+
* @template CSchema - The type of the `CriteriaSchema` for the entity to be joined.
|
|
63
|
+
* @template Alias - The type of the selected alias for the joined entity.
|
|
64
|
+
* @param {CSchema} schema - An instance of `CriteriaSchema` that defines the structure of the entity to be joined.
|
|
65
|
+
* @param {Alias} alias - A valid alias (string) for the joined entity, defined within its `schema`.
|
|
66
|
+
* @returns {OuterJoinCriteria<CSchema, Alias>} An instance of `OuterJoinCriteria`.
|
|
67
|
+
* @example
|
|
68
|
+
* import { CriteriaFactory } from './criteria-factory';
|
|
69
|
+
* import { ProfileSchema } from './path/to/your/schemas';
|
|
70
|
+
*
|
|
71
|
+
* const profileJoinCriteria = CriteriaFactory.GetOuterJoinCriteria(ProfileSchema, 'profiles');
|
|
72
|
+
*/
|
|
73
|
+
static GetOuterJoinCriteria(schema, alias) {
|
|
74
|
+
return new OuterJoinCriteria(schema, alias);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=criteria-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"criteria-factory.js","sourceRoot":"","sources":["../../src/criteria/criteria-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE;;;;GAIG;AACH,MAAM,OAAO,eAAe;IAC1B;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,WAAW,CAGhB,MAAe,EAAE,KAAY;QAC7B,OAAO,IAAI,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,oBAAoB,CAGzB,MAAe,EAAE,KAAY;QAC7B,OAAO,IAAI,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,mBAAmB,CAGxB,MAAe,EAAE,KAAY;QAC7B,OAAO,IAAI,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,oBAAoB,CAGzB,MAAe,EAAE,KAAY;QAC7B,OAAO,IAAI,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { CriteriaSchema, FieldOfSchema } from './types/schema.types.js';
|
|
2
|
+
import { FilterGroup } from './filter/filter-group.js';
|
|
3
|
+
import type { IFilterManager } from './types/manager.interface.js';
|
|
4
|
+
import { type FilterOperator } from './types/operator.types.js';
|
|
5
|
+
import type { FilterPrimitive } from './filter/types/filter-primitive.types.js';
|
|
6
|
+
export declare class CriteriaFilterManager<CSchema extends CriteriaSchema> implements IFilterManager<CSchema> {
|
|
7
|
+
private _rootFilterGroup;
|
|
8
|
+
where<Operator extends FilterOperator>(filterPrimitive: FilterPrimitive<FieldOfSchema<CSchema>, Operator>): void;
|
|
9
|
+
andWhere<Operator extends FilterOperator>(filterPrimitive: FilterPrimitive<FieldOfSchema<CSchema>, Operator>): void;
|
|
10
|
+
orWhere<Operator extends FilterOperator>(filterPrimitive: FilterPrimitive<FieldOfSchema<CSchema>, Operator>): void;
|
|
11
|
+
getRootFilterGroup(): FilterGroup;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=criteria-filter-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"criteria-filter-manager.d.ts","sourceRoot":"","sources":["../../src/criteria/criteria-filter-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EACL,KAAK,cAAc,EAEpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAEhF,qBAAa,qBAAqB,CAAC,OAAO,SAAS,cAAc,CAC/D,YAAW,cAAc,CAAC,OAAO,CAAC;IAElC,OAAO,CAAC,gBAAgB,CAGrB;IAEH,KAAK,CAAC,QAAQ,SAAS,cAAc,EACnC,eAAe,EAAE,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,GACjE,IAAI;IAIP,QAAQ,CAAC,QAAQ,SAAS,cAAc,EACtC,eAAe,EAAE,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,GACjE,IAAI;IAIP,OAAO,CAAC,QAAQ,SAAS,cAAc,EACrC,eAAe,EAAE,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,GACjE,IAAI;IAIP,kBAAkB,IAAI,WAAW;CAGlC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { FilterGroup } from './filter/filter-group.js';
|
|
2
|
+
import { LogicalOperator, } from './types/operator.types.js';
|
|
3
|
+
export class CriteriaFilterManager {
|
|
4
|
+
_rootFilterGroup = new FilterGroup({
|
|
5
|
+
items: [],
|
|
6
|
+
logicalOperator: LogicalOperator.AND,
|
|
7
|
+
});
|
|
8
|
+
where(filterPrimitive) {
|
|
9
|
+
this._rootFilterGroup = FilterGroup.createInitial(filterPrimitive);
|
|
10
|
+
}
|
|
11
|
+
andWhere(filterPrimitive) {
|
|
12
|
+
this._rootFilterGroup = this._rootFilterGroup.addAnd(filterPrimitive);
|
|
13
|
+
}
|
|
14
|
+
orWhere(filterPrimitive) {
|
|
15
|
+
this._rootFilterGroup = this._rootFilterGroup.addOr(filterPrimitive);
|
|
16
|
+
}
|
|
17
|
+
getRootFilterGroup() {
|
|
18
|
+
return this._rootFilterGroup;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=criteria-filter-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"criteria-filter-manager.js","sourceRoot":"","sources":["../../src/criteria/criteria-filter-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAEL,eAAe,GAChB,MAAM,2BAA2B,CAAC;AAGnC,MAAM,OAAO,qBAAqB;IAGxB,gBAAgB,GAAgB,IAAI,WAAW,CAAC;QACtD,KAAK,EAAE,EAAE;QACT,eAAe,EAAE,eAAe,CAAC,GAAG;KACrC,CAAC,CAAC;IAEH,KAAK,CACH,eAAkE;QAElE,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IACrE,CAAC;IAED,QAAQ,CACN,eAAkE;QAElE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,CACL,eAAkE;QAElE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACvE,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { CriteriaSchema, JoinRelationType } from './types/schema.types.js';
|
|
2
|
+
import type { IJoinManager } from './types/manager.interface.js';
|
|
3
|
+
import type { PivotJoin, SimpleJoin } from './types/join-parameter.types.js';
|
|
4
|
+
import type { AnyJoinCriteria, StoredJoinDetails } from './types/join-utility.types.js';
|
|
5
|
+
export declare class CriteriaJoinManager<CSchema extends CriteriaSchema> implements IJoinManager<CSchema> {
|
|
6
|
+
private _joins;
|
|
7
|
+
addJoin<JoinSchema extends CriteriaSchema>(criteriaToJoin: AnyJoinCriteria<JoinSchema>, joinParameter: PivotJoin<CSchema, JoinSchema, JoinRelationType> | SimpleJoin<CSchema, JoinSchema, JoinRelationType>): void;
|
|
8
|
+
getJoins(): Array<StoredJoinDetails<CSchema>>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=criteria-join-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"criteria-join-manager.d.ts","sourceRoot":"","sources":["../../src/criteria/criteria-join-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EAClB,MAAM,+BAA+B,CAAC;AAEvC,qBAAa,mBAAmB,CAAC,OAAO,SAAS,cAAc,CAC7D,YAAW,YAAY,CAAC,OAAO,CAAC;IAEhC,OAAO,CAAC,MAAM,CAAsD;IAEpE,OAAO,CAAC,UAAU,SAAS,cAAc,EACvC,cAAc,EAAE,eAAe,CAAC,UAAU,CAAC,EAC3C,aAAa,EACT,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,gBAAgB,CAAC,GAChD,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,gBAAgB,CAAC,GACpD,IAAI;IASP,QAAQ,IAAI,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;CAG9C"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export class CriteriaJoinManager {
|
|
2
|
+
_joins = new Map();
|
|
3
|
+
addJoin(criteriaToJoin, joinParameter) {
|
|
4
|
+
const joinDetails = {
|
|
5
|
+
parameters: joinParameter,
|
|
6
|
+
criteria: criteriaToJoin,
|
|
7
|
+
};
|
|
8
|
+
this._joins.set(criteriaToJoin.alias, joinDetails);
|
|
9
|
+
}
|
|
10
|
+
getJoins() {
|
|
11
|
+
return Array.from(this._joins.values());
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=criteria-join-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"criteria-join-manager.js","sourceRoot":"","sources":["../../src/criteria/criteria-join-manager.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,mBAAmB;IAGtB,MAAM,GAA4C,IAAI,GAAG,EAAE,CAAC;IAEpE,OAAO,CACL,cAA2C,EAC3C,aAEqD;QAErD,MAAM,WAAW,GAA+B;YAC9C,UAAU,EAAE,aAAa;YACzB,QAAQ,EAAE,cAAc;SACzB,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACrD,CAAC;IAED,QAAQ;QACN,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { CriteriaSchema, FieldOfSchema, SelectedAliasOf } from './types/schema.types.js';
|
|
2
|
+
import { Cursor } from './cursor.js';
|
|
3
|
+
import { Order, OrderDirection } from './order/order.js';
|
|
4
|
+
import type { FilterPrimitive } from './filter/types/filter-primitive.types.js';
|
|
5
|
+
import type { ICriteriaBase } from './types/criteria.interface.js';
|
|
6
|
+
import type { JoinCriteriaParameterType, JoinParameterType, SpecificMatchingJoinConfig } from './types/join-utility.types.js';
|
|
7
|
+
import { FilterOperator } from './types/operator.types.js';
|
|
8
|
+
export declare abstract class Criteria<TSchema extends CriteriaSchema, CurrentAlias extends SelectedAliasOf<TSchema> = SelectedAliasOf<TSchema>> implements ICriteriaBase<TSchema, CurrentAlias> {
|
|
9
|
+
protected readonly schema: TSchema;
|
|
10
|
+
protected _alias: CurrentAlias;
|
|
11
|
+
private readonly _filterManager;
|
|
12
|
+
private readonly _joinManager;
|
|
13
|
+
private readonly _source_name;
|
|
14
|
+
private _take;
|
|
15
|
+
protected _select: Set<FieldOfSchema<TSchema>>;
|
|
16
|
+
private _selectAll;
|
|
17
|
+
protected _cursor: Cursor<FieldOfSchema<TSchema>, FilterOperator.GREATER_THAN | FilterOperator.LESS_THAN> | undefined;
|
|
18
|
+
constructor(schema: TSchema, _alias: CurrentAlias);
|
|
19
|
+
get select(): FieldOfSchema<TSchema>[];
|
|
20
|
+
abstract resetCriteria(): ICriteriaBase<TSchema, CurrentAlias>;
|
|
21
|
+
resetSelect(): this;
|
|
22
|
+
get selectAll(): boolean;
|
|
23
|
+
setSelect(selectFields: Array<FieldOfSchema<TSchema>>): this;
|
|
24
|
+
get take(): number;
|
|
25
|
+
private _skip;
|
|
26
|
+
get skip(): number;
|
|
27
|
+
private _orders;
|
|
28
|
+
get orders(): ReadonlyArray<Order<FieldOfSchema<TSchema>>>;
|
|
29
|
+
get joins(): import("./types/join-utility.types.js").StoredJoinDetails<TSchema>[];
|
|
30
|
+
get rootFilterGroup(): import("./index.js").FilterGroup<string>;
|
|
31
|
+
get sourceName(): TSchema["source_name"];
|
|
32
|
+
get alias(): CurrentAlias;
|
|
33
|
+
setTake(amount: number): this;
|
|
34
|
+
setSkip(amount: number): this;
|
|
35
|
+
protected assetFieldOnSchema(field: FieldOfSchema<TSchema>): void;
|
|
36
|
+
orderBy(field: FieldOfSchema<TSchema>, direction: OrderDirection): this;
|
|
37
|
+
where<Operator extends FilterOperator>(filterPrimitive: FilterPrimitive<FieldOfSchema<TSchema>, Operator>): this;
|
|
38
|
+
andWhere<Operator extends FilterOperator>(filterPrimitive: FilterPrimitive<FieldOfSchema<TSchema>, Operator>): this;
|
|
39
|
+
orWhere<Operator extends FilterOperator>(filterPrimitive: FilterPrimitive<FieldOfSchema<TSchema>, Operator>): this;
|
|
40
|
+
join<TJoinSchema extends CriteriaSchema, TJoinedCriteriaAlias extends SelectedAliasOf<TJoinSchema>, TMatchingJoinConfig extends SpecificMatchingJoinConfig<TSchema, TJoinedCriteriaAlias>>(criteriaToJoin: JoinCriteriaParameterType<TSchema, TJoinSchema, TJoinedCriteriaAlias, TMatchingJoinConfig>, joinParameter: JoinParameterType<TSchema, TJoinSchema, TMatchingJoinConfig>): this;
|
|
41
|
+
private assertIsValidJoinOptions;
|
|
42
|
+
get cursor(): Cursor<FieldOfSchema<TSchema>, FilterOperator.GREATER_THAN | FilterOperator.LESS_THAN> | undefined;
|
|
43
|
+
setCursor(cursorFilters: [
|
|
44
|
+
Omit<FilterPrimitive<FieldOfSchema<TSchema>, FilterOperator.GREATER_THAN | FilterOperator.LESS_THAN>, 'operator'>,
|
|
45
|
+
Omit<FilterPrimitive<FieldOfSchema<TSchema>, FilterOperator.GREATER_THAN | FilterOperator.LESS_THAN>, 'operator'>
|
|
46
|
+
], operator: FilterOperator.GREATER_THAN | FilterOperator.LESS_THAN, order: OrderDirection): this;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=criteria.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"criteria.d.ts","sourceRoot":"","sources":["../../src/criteria/criteria.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { CriteriaFilterManager } from './criteria-filter-manager.js';
|
|
2
|
+
import { CriteriaJoinManager } from './criteria-join-manager.js';
|
|
3
|
+
import { Cursor } from './cursor.js';
|
|
4
|
+
import { Order, OrderDirection } from './order/order.js';
|
|
5
|
+
import { FilterOperator } from './types/operator.types.js';
|
|
6
|
+
export class Criteria {
|
|
7
|
+
schema;
|
|
8
|
+
_alias;
|
|
9
|
+
_filterManager = new CriteriaFilterManager();
|
|
10
|
+
_joinManager = new CriteriaJoinManager();
|
|
11
|
+
_source_name;
|
|
12
|
+
_take = 0; // 0 = no limit
|
|
13
|
+
_select = new Set([]);
|
|
14
|
+
_selectAll = true;
|
|
15
|
+
_cursor;
|
|
16
|
+
constructor(schema, _alias) {
|
|
17
|
+
this.schema = schema;
|
|
18
|
+
this._alias = _alias;
|
|
19
|
+
if (!schema.alias.includes(this._alias))
|
|
20
|
+
throw new Error(`Unsupported alia ${this._alias} for schema ${schema.source_name}`);
|
|
21
|
+
this._source_name = schema.source_name;
|
|
22
|
+
}
|
|
23
|
+
get select() {
|
|
24
|
+
if (this._selectAll) {
|
|
25
|
+
return [...this.schema.fields];
|
|
26
|
+
}
|
|
27
|
+
return Array.from(this._select);
|
|
28
|
+
}
|
|
29
|
+
resetSelect() {
|
|
30
|
+
this._selectAll = true;
|
|
31
|
+
this._select.clear();
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
get selectAll() {
|
|
35
|
+
return this._selectAll;
|
|
36
|
+
}
|
|
37
|
+
setSelect(selectFields) {
|
|
38
|
+
for (const field of selectFields) {
|
|
39
|
+
this.assetFieldOnSchema(field);
|
|
40
|
+
}
|
|
41
|
+
if (selectFields.length !== this.schema.fields.length) {
|
|
42
|
+
this._selectAll = false;
|
|
43
|
+
this._select = new Set(selectFields);
|
|
44
|
+
}
|
|
45
|
+
return this;
|
|
46
|
+
}
|
|
47
|
+
get take() {
|
|
48
|
+
return this._take;
|
|
49
|
+
}
|
|
50
|
+
_skip = 0;
|
|
51
|
+
get skip() {
|
|
52
|
+
return this._skip;
|
|
53
|
+
}
|
|
54
|
+
_orders = [];
|
|
55
|
+
get orders() {
|
|
56
|
+
return [...this._orders];
|
|
57
|
+
}
|
|
58
|
+
get joins() {
|
|
59
|
+
return [...this._joinManager.getJoins()];
|
|
60
|
+
}
|
|
61
|
+
get rootFilterGroup() {
|
|
62
|
+
return this._filterManager.getRootFilterGroup();
|
|
63
|
+
}
|
|
64
|
+
get sourceName() {
|
|
65
|
+
return this._source_name;
|
|
66
|
+
}
|
|
67
|
+
get alias() {
|
|
68
|
+
return this._alias;
|
|
69
|
+
}
|
|
70
|
+
setTake(amount) {
|
|
71
|
+
if (amount < 0) {
|
|
72
|
+
throw new Error(`Take value cant be negative`);
|
|
73
|
+
}
|
|
74
|
+
this._take = amount;
|
|
75
|
+
return this;
|
|
76
|
+
}
|
|
77
|
+
setSkip(amount) {
|
|
78
|
+
if (amount < 0) {
|
|
79
|
+
throw new Error(`Skip value cant be negative`);
|
|
80
|
+
}
|
|
81
|
+
this._skip = amount;
|
|
82
|
+
return this;
|
|
83
|
+
}
|
|
84
|
+
assetFieldOnSchema(field) {
|
|
85
|
+
if (!this.schema.fields.includes(field))
|
|
86
|
+
throw new Error(`The field '${String(field)}' is not defined in the schema '${this.schema.source_name}'.`);
|
|
87
|
+
}
|
|
88
|
+
orderBy(field, direction) {
|
|
89
|
+
this.assetFieldOnSchema(field);
|
|
90
|
+
this._orders.push(new Order(direction, field));
|
|
91
|
+
return this;
|
|
92
|
+
}
|
|
93
|
+
where(filterPrimitive) {
|
|
94
|
+
this.assetFieldOnSchema(filterPrimitive.field);
|
|
95
|
+
this._filterManager.where(filterPrimitive);
|
|
96
|
+
return this;
|
|
97
|
+
}
|
|
98
|
+
andWhere(filterPrimitive) {
|
|
99
|
+
this.assetFieldOnSchema(filterPrimitive.field);
|
|
100
|
+
this._filterManager.andWhere(filterPrimitive);
|
|
101
|
+
return this;
|
|
102
|
+
}
|
|
103
|
+
orWhere(filterPrimitive) {
|
|
104
|
+
this.assetFieldOnSchema(filterPrimitive.field);
|
|
105
|
+
this._filterManager.orWhere(filterPrimitive);
|
|
106
|
+
return this;
|
|
107
|
+
}
|
|
108
|
+
join(criteriaToJoin, joinParameter) {
|
|
109
|
+
if (typeof criteriaToJoin === 'string') {
|
|
110
|
+
throw new Error(`Invalid criteriaToJoin: ${criteriaToJoin}`);
|
|
111
|
+
}
|
|
112
|
+
typeof joinParameter.parent_field === 'object'
|
|
113
|
+
? this.assetFieldOnSchema(joinParameter.parent_field.reference)
|
|
114
|
+
: this.assetFieldOnSchema(joinParameter.parent_field);
|
|
115
|
+
const joinConfig = this.schema.joins.find((join) => join.alias === criteriaToJoin.alias);
|
|
116
|
+
if (!joinConfig) {
|
|
117
|
+
throw new Error(`Join configuration for alias '${String(criteriaToJoin.alias)}' not found in schema '${this.schema.source_name}'.`);
|
|
118
|
+
}
|
|
119
|
+
this.assertIsValidJoinOptions(joinConfig, joinParameter);
|
|
120
|
+
const fullJoinParameters = {
|
|
121
|
+
...joinParameter,
|
|
122
|
+
parent_alias: this.alias,
|
|
123
|
+
parent_source_name: this.sourceName,
|
|
124
|
+
parent_to_join_relation_type: joinConfig.join_relation_type,
|
|
125
|
+
};
|
|
126
|
+
this._joinManager.addJoin(criteriaToJoin, fullJoinParameters);
|
|
127
|
+
return this;
|
|
128
|
+
}
|
|
129
|
+
assertIsValidJoinOptions(joinConfig, joinParameter) {
|
|
130
|
+
const isPivotFieldObject = (field) => {
|
|
131
|
+
return (typeof field === 'object' &&
|
|
132
|
+
field !== null &&
|
|
133
|
+
'pivot_field' in field &&
|
|
134
|
+
'reference' in field);
|
|
135
|
+
};
|
|
136
|
+
if (joinConfig.join_relation_type === 'many_to_many') {
|
|
137
|
+
if (!isPivotFieldObject(joinParameter.parent_field) ||
|
|
138
|
+
!isPivotFieldObject(joinParameter.join_field)) {
|
|
139
|
+
throw new Error(`Invalid JoinOptions for 'many_to_many' join. Expected parent_field and join_field to be objects with 'pivot_field' and 'reference' properties. Alias: '${String(joinConfig.alias)}'`);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
if (typeof joinParameter.parent_field !== 'string' ||
|
|
144
|
+
typeof joinParameter.join_field !== 'string') {
|
|
145
|
+
throw new Error(`Invalid JoinOptions for '${joinConfig.join_relation_type}' join. Expected parent_field and join_field to be strings. Alias: '${String(joinConfig.alias)}'`);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
get cursor() {
|
|
150
|
+
return this._cursor;
|
|
151
|
+
}
|
|
152
|
+
setCursor(cursorFilters, operator, order) {
|
|
153
|
+
if (cursorFilters.length !== 2)
|
|
154
|
+
throw new Error(`The cursor must have exactly 2 elements`);
|
|
155
|
+
for (const filterPrimitive of cursorFilters) {
|
|
156
|
+
this.assetFieldOnSchema(filterPrimitive.field);
|
|
157
|
+
}
|
|
158
|
+
this._cursor = new Cursor(cursorFilters, operator, order);
|
|
159
|
+
return this;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=criteria.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"criteria.js","sourceRoot":"","sources":["../../src/criteria/criteria.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Filter } from './filter/filter.js';
|
|
2
|
+
import { OrderDirection } from './order/order.js';
|
|
3
|
+
import type { FilterPrimitive } from './filter/types/filter-primitive.types.js';
|
|
4
|
+
import { FilterOperator } from './types/operator.types.js';
|
|
5
|
+
export declare class Cursor<TFields extends string, Operator extends FilterOperator.GREATER_THAN | FilterOperator.LESS_THAN> {
|
|
6
|
+
readonly filters: [Filter<TFields, Operator>, Filter<TFields, Operator>] | [Filter<TFields, Operator>];
|
|
7
|
+
readonly order: OrderDirection;
|
|
8
|
+
constructor(filterPrimitive: readonly [
|
|
9
|
+
Omit<FilterPrimitive<TFields, Operator>, 'operator'>,
|
|
10
|
+
Omit<FilterPrimitive<TFields, Operator>, 'operator'>
|
|
11
|
+
] | readonly [Omit<FilterPrimitive<TFields, Operator>, 'operator'>], operator: Operator, order: OrderDirection);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=cursor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/criteria/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,qBAAa,MAAM,CACjB,OAAO,SAAS,MAAM,EACtB,QAAQ,SAAS,cAAc,CAAC,YAAY,GAAG,cAAc,CAAC,SAAS;IAEvE,QAAQ,CAAC,OAAO,EACZ,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,GACtD,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;gBAG7B,eAAe,EACX,SAAS;QACP,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC;QACpD,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC;KACrD,GACD,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC,EACnE,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,cAAc;CAgCxB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Filter } from './filter/filter.js';
|
|
2
|
+
import { OrderDirection } from './order/order.js';
|
|
3
|
+
import { FilterOperator } from './types/operator.types.js';
|
|
4
|
+
export class Cursor {
|
|
5
|
+
filters;
|
|
6
|
+
order;
|
|
7
|
+
constructor(filterPrimitive, operator, order) {
|
|
8
|
+
for (const filter of filterPrimitive) {
|
|
9
|
+
if (!filter.field) {
|
|
10
|
+
throw new Error('Cursor field must be defined');
|
|
11
|
+
}
|
|
12
|
+
if (filter.value === undefined || filter.value === null) {
|
|
13
|
+
throw new Error(`Cursor value for field ${filter.field} must be defined`);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
if (filterPrimitive.length === 2 &&
|
|
17
|
+
filterPrimitive[0].field === filterPrimitive[1]?.field) {
|
|
18
|
+
throw new Error('Cursor fields must be different for a composite cursor');
|
|
19
|
+
}
|
|
20
|
+
const filterArray = filterPrimitive.map((filterPrimitive) => new Filter({ ...filterPrimitive, operator }));
|
|
21
|
+
if (!filterArray[0]) {
|
|
22
|
+
throw new Error('Cursor filters must be defined');
|
|
23
|
+
}
|
|
24
|
+
this.filters = [filterArray[0]];
|
|
25
|
+
if (filterArray[1]) {
|
|
26
|
+
this.filters.push(filterArray[1]);
|
|
27
|
+
}
|
|
28
|
+
this.order = order;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=cursor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/criteria/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,MAAM,OAAO,MAAM;IAIR,OAAO,CAEgB;IACvB,KAAK,CAAiB;IAE/B,YACE,eAKmE,EACnE,QAAkB,EAClB,KAAqB;QAErB,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBACxD,MAAM,IAAI,KAAK,CACb,0BAA0B,MAAM,CAAC,KAAK,kBAAkB,CACzD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IACE,eAAe,CAAC,MAAM,KAAK,CAAC;YAC5B,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,EACtD,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CACrC,CAAC,eAAe,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,EAAE,GAAG,eAAe,EAAE,QAAQ,EAAE,CAAC,CAClE,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { FilterOperator, LogicalOperator } from '../types/operator.types.js';
|
|
2
|
+
import { Filter } from './filter.js';
|
|
3
|
+
import type { IFilterExpression } from '../types/filter-expression.interface.js';
|
|
4
|
+
import type { FilterGroupPrimitive, FilterPrimitive } from './types/filter-primitive.types.js';
|
|
5
|
+
import type { ICriteriaVisitor } from '../types/visitor-interface.types.js';
|
|
6
|
+
export declare class FilterGroup<T extends string = string> implements IFilterExpression {
|
|
7
|
+
private readonly _logicalOperator;
|
|
8
|
+
private readonly _items;
|
|
9
|
+
constructor(filterGroupPrimitive: FilterGroupPrimitive<T>);
|
|
10
|
+
get items(): ReadonlyArray<Filter<T, FilterOperator> | FilterGroup<T>>;
|
|
11
|
+
get logicalOperator(): LogicalOperator;
|
|
12
|
+
static createInitial<T extends string = string>(filterPrimitive: FilterPrimitive<T, FilterOperator>): FilterGroup<T>;
|
|
13
|
+
toPrimitive(): FilterGroupPrimitive<T>;
|
|
14
|
+
addAnd(filterPrimitive: FilterPrimitive<T, FilterOperator>): FilterGroup<T>;
|
|
15
|
+
addOr(filterPrimitive: FilterPrimitive<T, FilterOperator>): FilterGroup<T>;
|
|
16
|
+
accept<TranslationContext, TranslationOutput = TranslationContext>(visitor: ICriteriaVisitor<TranslationContext, TranslationOutput>, currentAlias: string, context: TranslationContext): TranslationOutput;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=filter-group.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter-group.d.ts","sourceRoot":"","sources":["../../../src/criteria/filter/filter-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EAChB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,qBAAa,WAAW,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAChD,YAAW,iBAAiB;IAE5B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAErB;gBAEU,oBAAoB,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAYzD,IAAI,KAAK,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAErE;IAED,IAAI,eAAe,IAAI,eAAe,CAErC;IAED,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAC5C,eAAe,EAAE,eAAe,CAAC,CAAC,EAAE,cAAc,CAAC,GAClD,WAAW,CAAC,CAAC,CAAC;IAOjB,WAAW,IAAI,oBAAoB,CAAC,CAAC,CAAC;IAOtC,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAoC3E,KAAK,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAmC1E,MAAM,CAAC,kBAAkB,EAAE,iBAAiB,GAAG,kBAAkB,EAC/D,OAAO,EAAE,gBAAgB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EAChE,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,kBAAkB,GAC1B,iBAAiB;CAKrB"}
|