@ackplus/nest-crud-request 1.1.34 → 1.1.35

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/package.json CHANGED
@@ -1,17 +1,10 @@
1
1
  {
2
2
  "name": "@ackplus/nest-crud-request",
3
- "version": "1.1.34",
3
+ "version": "1.1.35",
4
4
  "description": "Framework-agnostic query builder for REST APIs - build complex queries with filtering, relations, and pagination for both frontend and backend",
5
5
  "type": "commonjs",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
8
- "scripts": {
9
- "clean": "rm -rf dist",
10
- "build": "tsc -p tsconfig.build.json",
11
- "format": "prettier --write \"src/**/*.ts\"",
12
- "lint": "eslint \"src/**/*.ts\" --fix",
13
- "prepublishOnly": "npm run build"
14
- },
15
8
  "files": [
16
9
  "dist",
17
10
  "README.md",
@@ -45,5 +38,11 @@
45
38
  "typescript": "^5.7.3",
46
39
  "@types/jest": "^30.0.0",
47
40
  "@types/node": "^22.0.0"
41
+ },
42
+ "scripts": {
43
+ "clean": "rm -rf dist",
44
+ "build": "tsc -p tsconfig.build.json",
45
+ "format": "prettier --write \"src/**/*.ts\"",
46
+ "lint": "eslint \"src/**/*.ts\" --fix"
48
47
  }
49
- }
48
+ }
package/dist/index.d.ts DELETED
@@ -1,4 +0,0 @@
1
- export * from './lib/query-builder';
2
- export * from './lib/where-builder';
3
- export * from './lib/types';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC"}
package/dist/index.js DELETED
@@ -1,20 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./lib/query-builder"), exports);
18
- __exportStar(require("./lib/where-builder"), exports);
19
- __exportStar(require("./lib/types"), exports);
20
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,sDAAoC;AACpC,8CAA4B"}
@@ -1,37 +0,0 @@
1
- import { QueryBuilderOptions, OrderDirectionEnum } from './types';
2
- import { WhereBuilderCondition } from './where-builder';
3
- export declare class QueryBuilder {
4
- private options;
5
- private whereBuilder;
6
- private relationBuilder;
7
- constructor(options?: QueryBuilderOptions);
8
- setOptions(options: QueryBuilderOptions): this;
9
- mergeOptions(options: QueryBuilderOptions, deep?: boolean): this;
10
- addSelect(fields: string | string[]): this;
11
- removeSelect(fields: string | string[]): this;
12
- addRelation(relation: string, select?: string[], where?: Record<string, any>): this;
13
- removeRelation(relation: string): this;
14
- where(...args: WhereBuilderCondition): this;
15
- andWhere(...args: WhereBuilderCondition): this;
16
- orWhere(...args: WhereBuilderCondition): this;
17
- addOrder(orderBy: string, order: OrderDirectionEnum): this;
18
- removeOrder(orderBy: string): this;
19
- setSkip(skip: number): this;
20
- setTake(take: number): this;
21
- setWithDeleted(withDeleted: boolean): this;
22
- setOnlyDeleted(onlyDeleted: boolean): this;
23
- set(key: string, value: any): this;
24
- toObject(constrainToNestedObject?: boolean): {
25
- [key: string]: any;
26
- select?: string[] | string;
27
- relations?: import("./types").RelationOptions | string;
28
- where?: import("./types").WhereOptions | string;
29
- order?: Record<string, OrderDirectionEnum> | string;
30
- skip?: number;
31
- take?: number;
32
- withDeleted?: boolean;
33
- onlyDeleted?: boolean;
34
- };
35
- toJson(): string;
36
- }
37
- //# sourceMappingURL=query-builder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/lib/query-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElE,OAAO,EAAgB,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAGtE,qBAAa,YAAY;IAErB,OAAO,CAAC,OAAO,CAA2B;IAE1C,OAAO,CAAC,YAAY,CAAoC;IAExD,OAAO,CAAC,eAAe,CAA0C;gBAErD,OAAO,CAAC,EAAE,mBAAmB;IAMzC,UAAU,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAO9C,YAAY,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,UAAQ,GAAG,IAAI;IAc9D,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAa1C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAY7C,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAKnF,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKtC,KAAK,CAAC,GAAG,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAK3C,QAAQ,CAAC,GAAG,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAK9C,OAAO,CAAC,GAAG,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAK7C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAQ1D,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAOlC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3B,cAAc,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI;IAK1C,cAAc,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI;IAK1C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAKlC,QAAQ,CAAC,uBAAuB,UAAQ;;;;;;;;;;;IAoDxC,MAAM;CAKT"}
@@ -1,168 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.QueryBuilder = void 0;
4
- const relation_builder_1 = require("./relation-builder");
5
- const utils_1 = require("./utils");
6
- const where_builder_1 = require("./where-builder");
7
- class QueryBuilder {
8
- constructor(options) {
9
- this.options = {};
10
- this.whereBuilder = new where_builder_1.WhereBuilder();
11
- this.relationBuilder = new relation_builder_1.RelationBuilder();
12
- if (options) {
13
- this.setOptions(options);
14
- }
15
- }
16
- setOptions(options) {
17
- this.options = options;
18
- this.whereBuilder = new where_builder_1.WhereBuilder(options.where);
19
- this.relationBuilder = new relation_builder_1.RelationBuilder(options.relations);
20
- return this;
21
- }
22
- mergeOptions(options, deep = false) {
23
- let updatedOptions = {};
24
- if (deep) {
25
- updatedOptions = (0, utils_1.deepMerge)(this.options, options);
26
- }
27
- else {
28
- updatedOptions = {
29
- ...this.options,
30
- ...options,
31
- };
32
- }
33
- this.setOptions(updatedOptions);
34
- return this;
35
- }
36
- addSelect(fields) {
37
- if (!this.options.select || typeof this.options.select === 'string') {
38
- this.options.select = [];
39
- }
40
- if (Array.isArray(fields)) {
41
- this.options.select.push(...fields);
42
- }
43
- else {
44
- this.options.select.push(fields);
45
- }
46
- return this;
47
- }
48
- removeSelect(fields) {
49
- if (this.options.select && Array.isArray(this.options.select)) {
50
- if (Array.isArray(fields)) {
51
- this.options.select = this.options.select.filter(field => !fields.includes(field));
52
- }
53
- else {
54
- this.options.select = this.options.select.filter(field => field !== fields);
55
- }
56
- }
57
- return this;
58
- }
59
- addRelation(relation, select, where) {
60
- this.relationBuilder.add(relation, select, where);
61
- return this;
62
- }
63
- removeRelation(relation) {
64
- this.relationBuilder.remove(relation);
65
- return this;
66
- }
67
- where(...args) {
68
- this.whereBuilder.where(...args);
69
- return this;
70
- }
71
- andWhere(...args) {
72
- this.whereBuilder.andWhere(...args);
73
- return this;
74
- }
75
- orWhere(...args) {
76
- this.whereBuilder.orWhere(...args);
77
- return this;
78
- }
79
- addOrder(orderBy, order) {
80
- if (!this.options.order) {
81
- this.options.order = {};
82
- }
83
- this.options.order[orderBy] = order;
84
- return this;
85
- }
86
- removeOrder(orderBy) {
87
- if (this.options.order) {
88
- delete this.options.order[orderBy];
89
- }
90
- return this;
91
- }
92
- setSkip(skip) {
93
- this.options.skip = skip;
94
- return this;
95
- }
96
- setTake(take) {
97
- this.options.take = take;
98
- return this;
99
- }
100
- setWithDeleted(withDeleted) {
101
- this.options.withDeleted = withDeleted;
102
- return this;
103
- }
104
- setOnlyDeleted(onlyDeleted) {
105
- this.options.onlyDeleted = onlyDeleted;
106
- return this;
107
- }
108
- set(key, value) {
109
- this.options[key] = value;
110
- return this;
111
- }
112
- toObject(constrainToNestedObject = false) {
113
- const options = {
114
- ...this.options,
115
- };
116
- if (this.whereBuilder.hasConditions()) {
117
- if (constrainToNestedObject) {
118
- options.where = this.whereBuilder.toObject();
119
- }
120
- else {
121
- options.where = JSON.stringify(this.whereBuilder.toObject());
122
- }
123
- }
124
- else {
125
- delete options.where;
126
- }
127
- if (this.relationBuilder.hasRelations()) {
128
- if (constrainToNestedObject) {
129
- options.relations = this.relationBuilder.toObject();
130
- }
131
- else {
132
- options.relations = JSON.stringify(this.relationBuilder.toObject());
133
- }
134
- }
135
- else {
136
- delete options.relations;
137
- }
138
- if (options.order && Object.keys(options.order).length > 0) {
139
- if (constrainToNestedObject) {
140
- options.order = options.order;
141
- }
142
- else {
143
- options.order = JSON.stringify(options.order);
144
- }
145
- }
146
- else {
147
- delete options.order;
148
- }
149
- if (options.select && options.select.length > 0) {
150
- if (constrainToNestedObject) {
151
- options.select = options.select;
152
- }
153
- else {
154
- options.select = JSON.stringify(options.select);
155
- }
156
- }
157
- else {
158
- delete options.select;
159
- }
160
- return options;
161
- }
162
- toJson() {
163
- const obj = this.toObject(true);
164
- return JSON.stringify(obj);
165
- }
166
- }
167
- exports.QueryBuilder = QueryBuilder;
168
- //# sourceMappingURL=query-builder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../src/lib/query-builder.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import { RelationObject, RelationOptions } from './types';
2
- export declare class RelationBuilder {
3
- private relations;
4
- constructor(relations?: RelationOptions | string);
5
- setRelations(relations: RelationOptions): this;
6
- clear(): this;
7
- add(relation: string, select?: string[], where?: Record<string, any>): this;
8
- remove(relation: string): this;
9
- hasRelations(): boolean;
10
- toObject(): RelationObject;
11
- toJson(): string;
12
- }
13
- //# sourceMappingURL=relation-builder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"relation-builder.d.ts","sourceRoot":"","sources":["../../src/lib/relation-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAuB,eAAe,EAAE,MAAM,SAAS,CAAC;AAG/E,qBAAa,eAAe;IAExB,OAAO,CAAC,SAAS,CAAsB;gBAE3B,SAAS,CAAC,EAAE,eAAe,GAAG,MAAM;IAOhD,YAAY,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI;IAe9C,KAAK,IAAI,IAAI;IAKb,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAgB3E,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAK9B,YAAY,IAAI,OAAO;IAIvB,QAAQ,IAAI,cAAc;IAI1B,MAAM,IAAI,MAAM;CAInB"}
@@ -1,63 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RelationBuilder = void 0;
4
- class RelationBuilder {
5
- constructor(relations) {
6
- this.relations = {};
7
- if (relations) {
8
- const relationOptions = typeof relations === 'string' ? JSON.parse(relations) : relations;
9
- this.setRelations(relationOptions);
10
- }
11
- }
12
- setRelations(relations) {
13
- if (relations) {
14
- if (Array.isArray(relations)) {
15
- relations.forEach(relation => {
16
- this.add(relation);
17
- });
18
- }
19
- else if (typeof relations === 'string') {
20
- this.add(relations);
21
- }
22
- else {
23
- this.relations = relations;
24
- }
25
- }
26
- return this;
27
- }
28
- clear() {
29
- this.relations = {};
30
- return this;
31
- }
32
- add(relation, select, where) {
33
- if (!select && !where) {
34
- this.relations[relation] = true;
35
- }
36
- else {
37
- const obj = {};
38
- if (select) {
39
- obj.select = select;
40
- }
41
- if (where) {
42
- obj.where = where;
43
- }
44
- this.relations[relation] = obj;
45
- }
46
- return this;
47
- }
48
- remove(relation) {
49
- delete this.relations[relation];
50
- return this;
51
- }
52
- hasRelations() {
53
- return Object.keys(this.relations).length > 0;
54
- }
55
- toObject() {
56
- return this.relations;
57
- }
58
- toJson() {
59
- return JSON.stringify(this.relations);
60
- }
61
- }
62
- exports.RelationBuilder = RelationBuilder;
63
- //# sourceMappingURL=relation-builder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"relation-builder.js","sourceRoot":"","sources":["../../src/lib/relation-builder.ts"],"names":[],"mappings":";;;AAGA,MAAa,eAAe;IAIxB,YAAY,SAAoC;QAFxC,cAAS,GAAmB,EAAE,CAAC;QAGnC,IAAI,SAAS,EAAE,CAAC;YACZ,MAAM,eAAe,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1F,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QACvC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,SAA0B;QACnC,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3B,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;oBACzB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC;YACP,CAAC;iBAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;gBACvC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC/B,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK;QACD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,QAAgB,EAAE,MAAiB,EAAE,KAA2B;QAChE,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;QACpC,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,GAAQ,EAAE,CAAC;YACpB,IAAI,MAAM,EAAE,CAAC;gBACT,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;YACxB,CAAC;YACD,IAAI,KAAK,EAAE,CAAC;gBACR,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;YACtB,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;QACnC,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,QAAgB;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,YAAY;QACR,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;CAEJ;AAhED,0CAgEC"}
@@ -1,61 +0,0 @@
1
- export declare enum WhereLogicalOperatorEnum {
2
- AND = "$and",
3
- OR = "$or"
4
- }
5
- export declare enum WhereOperatorEnum {
6
- EQ = "$eq",
7
- NOT_EQ = "$ne",
8
- GT = "$gt",
9
- GT_OR_EQ = "$gte",
10
- LT = "$lt",
11
- LT_OR_EQ = "$lte",
12
- IN = "$in",
13
- NOT_IN = "$notIn",
14
- LIKE = "$like",
15
- NOT_LIKE = "$notLike",
16
- ILIKE = "$iLike",
17
- NOT_ILIKE = "$notIlike",
18
- STARTS_WITH = "$startsWith",
19
- ENDS_WITH = "$endsWith",
20
- ISTARTS_WITH = "$iStartsWith",
21
- IENDS_WITH = "$iEndsWith",
22
- IN_L = "$inL",
23
- NOT_IN_L = "$notinL",
24
- CONT_ARR = "$contArr",
25
- INTERSECTS_ARR = "$intersectsArr",
26
- IS_NULL = "$isNull",
27
- IS_NOT_NULL = "$isNotNull",
28
- BETWEEN = "$between",
29
- NOT_BETWEEN = "$notBetween",
30
- IS_TRUE = "$isTrue",
31
- IS_FALSE = "$isFalse"
32
- }
33
- export declare enum OrderDirectionEnum {
34
- ASC = "ASC",
35
- DESC = "DESC"
36
- }
37
- export type WhereObject = {
38
- [key: string]: any;
39
- $and?: WhereObject | WhereObject[];
40
- $or?: WhereObject | WhereObject[];
41
- };
42
- export type WhereOptions = WhereObject | WhereObject[];
43
- export type RelationObjectValue = {
44
- select?: string[];
45
- where?: WhereObject | WhereObject[];
46
- joinType?: 'left' | 'inner';
47
- };
48
- export type RelationObject = Record<string, RelationObjectValue | boolean>;
49
- export type RelationOptions = string | string[] | RelationObject;
50
- export interface QueryBuilderOptions {
51
- [key: string]: any;
52
- select?: string[] | string;
53
- relations?: RelationOptions | string;
54
- where?: WhereOptions | string;
55
- order?: Record<string, OrderDirectionEnum> | string;
56
- skip?: number;
57
- take?: number;
58
- withDeleted?: boolean;
59
- onlyDeleted?: boolean;
60
- }
61
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,oBAAY,wBAAwB;IAChC,GAAG,SAAS;IACZ,EAAE,QAAQ;CACb;AAED,oBAAY,iBAAiB;IACzB,EAAE,QAAQ;IACV,MAAM,QAAQ;IACd,EAAE,QAAQ;IACV,QAAQ,SAAS;IACjB,EAAE,QAAQ;IACV,QAAQ,SAAS;IACjB,EAAE,QAAQ;IACV,MAAM,WAAW;IACjB,IAAI,UAAU;IACd,QAAQ,aAAa;IACrB,KAAK,WAAW;IAChB,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,YAAY,iBAAiB;IAC7B,UAAU,eAAe;IACzB,IAAI,SAAS;IACb,QAAQ,YAAY;IACpB,QAAQ,aAAa;IACrB,cAAc,mBAAmB;IACjC,OAAO,YAAY;IACnB,WAAW,eAAe;IAC1B,OAAO,aAAa;IACpB,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,QAAQ,aAAa;CACxB;AAED,oBAAY,kBAAkB;IAC1B,GAAG,QAAQ;IACX,IAAI,SAAS;CAChB;AAED,MAAM,MAAM,WAAW,GAAG;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,IAAI,CAAC,EAAE,WAAW,GAAG,WAAW,EAAE,CAAC;IACnC,GAAG,CAAC,EAAE,WAAW,GAAG,WAAW,EAAE,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,WAAW,EAAE,CAAC;AAEvD,MAAM,MAAM,mBAAmB,GAAG;IAC9B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,WAAW,GAAG,WAAW,EAAE,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,CAAC;AAE3E,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,cAAc,CAAC;AAGjE,MAAM,WAAW,mBAAmB;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC;IACrC,KAAK,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,MAAM,CAAC;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB"}
package/dist/lib/types.js DELETED
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OrderDirectionEnum = exports.WhereOperatorEnum = exports.WhereLogicalOperatorEnum = void 0;
4
- var WhereLogicalOperatorEnum;
5
- (function (WhereLogicalOperatorEnum) {
6
- WhereLogicalOperatorEnum["AND"] = "$and";
7
- WhereLogicalOperatorEnum["OR"] = "$or";
8
- })(WhereLogicalOperatorEnum || (exports.WhereLogicalOperatorEnum = WhereLogicalOperatorEnum = {}));
9
- var WhereOperatorEnum;
10
- (function (WhereOperatorEnum) {
11
- WhereOperatorEnum["EQ"] = "$eq";
12
- WhereOperatorEnum["NOT_EQ"] = "$ne";
13
- WhereOperatorEnum["GT"] = "$gt";
14
- WhereOperatorEnum["GT_OR_EQ"] = "$gte";
15
- WhereOperatorEnum["LT"] = "$lt";
16
- WhereOperatorEnum["LT_OR_EQ"] = "$lte";
17
- WhereOperatorEnum["IN"] = "$in";
18
- WhereOperatorEnum["NOT_IN"] = "$notIn";
19
- WhereOperatorEnum["LIKE"] = "$like";
20
- WhereOperatorEnum["NOT_LIKE"] = "$notLike";
21
- WhereOperatorEnum["ILIKE"] = "$iLike";
22
- WhereOperatorEnum["NOT_ILIKE"] = "$notIlike";
23
- WhereOperatorEnum["STARTS_WITH"] = "$startsWith";
24
- WhereOperatorEnum["ENDS_WITH"] = "$endsWith";
25
- WhereOperatorEnum["ISTARTS_WITH"] = "$iStartsWith";
26
- WhereOperatorEnum["IENDS_WITH"] = "$iEndsWith";
27
- WhereOperatorEnum["IN_L"] = "$inL";
28
- WhereOperatorEnum["NOT_IN_L"] = "$notinL";
29
- WhereOperatorEnum["CONT_ARR"] = "$contArr";
30
- WhereOperatorEnum["INTERSECTS_ARR"] = "$intersectsArr";
31
- WhereOperatorEnum["IS_NULL"] = "$isNull";
32
- WhereOperatorEnum["IS_NOT_NULL"] = "$isNotNull";
33
- WhereOperatorEnum["BETWEEN"] = "$between";
34
- WhereOperatorEnum["NOT_BETWEEN"] = "$notBetween";
35
- WhereOperatorEnum["IS_TRUE"] = "$isTrue";
36
- WhereOperatorEnum["IS_FALSE"] = "$isFalse";
37
- })(WhereOperatorEnum || (exports.WhereOperatorEnum = WhereOperatorEnum = {}));
38
- var OrderDirectionEnum;
39
- (function (OrderDirectionEnum) {
40
- OrderDirectionEnum["ASC"] = "ASC";
41
- OrderDirectionEnum["DESC"] = "DESC";
42
- })(OrderDirectionEnum || (exports.OrderDirectionEnum = OrderDirectionEnum = {}));
43
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":";;;AAAA,IAAY,wBAGX;AAHD,WAAY,wBAAwB;IAChC,wCAAY,CAAA;IACZ,sCAAU,CAAA;AACd,CAAC,EAHW,wBAAwB,wCAAxB,wBAAwB,QAGnC;AAED,IAAY,iBA2BX;AA3BD,WAAY,iBAAiB;IACzB,+BAAU,CAAA;IACV,mCAAc,CAAA;IACd,+BAAU,CAAA;IACV,sCAAiB,CAAA;IACjB,+BAAU,CAAA;IACV,sCAAiB,CAAA;IACjB,+BAAU,CAAA;IACV,sCAAiB,CAAA;IACjB,mCAAc,CAAA;IACd,0CAAqB,CAAA;IACrB,qCAAgB,CAAA;IAChB,4CAAuB,CAAA;IACvB,gDAA2B,CAAA;IAC3B,4CAAuB,CAAA;IACvB,kDAA6B,CAAA;IAC7B,8CAAyB,CAAA;IACzB,kCAAa,CAAA;IACb,yCAAoB,CAAA;IACpB,0CAAqB,CAAA;IACrB,sDAAiC,CAAA;IACjC,wCAAmB,CAAA;IACnB,+CAA0B,CAAA;IAC1B,yCAAoB,CAAA;IACpB,gDAA2B,CAAA;IAC3B,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;AACzB,CAAC,EA3BW,iBAAiB,iCAAjB,iBAAiB,QA2B5B;AAED,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC1B,iCAAW,CAAA;IACX,mCAAa,CAAA;AACjB,CAAC,EAHW,kBAAkB,kCAAlB,kBAAkB,QAG7B"}
@@ -1,2 +0,0 @@
1
- export declare function deepMerge(target: any, source: any): any;
2
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,CAUvD"}
package/dist/lib/utils.js DELETED
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deepMerge = deepMerge;
4
- function deepMerge(target, source) {
5
- for (const key in source) {
6
- if (source[key] instanceof Object && key in target) {
7
- Object.assign(source[key], deepMerge(target[key], source[key]));
8
- }
9
- }
10
- return {
11
- ...target,
12
- ...source,
13
- };
14
- }
15
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":";;AAAA,8BAUC;AAVD,SAAgB,SAAS,CAAC,MAAW,EAAE,MAAW;IAC9C,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,MAAM,CAAC,GAAG,CAAC,YAAY,MAAM,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC;IACL,CAAC;IACD,OAAO;QACH,GAAG,MAAM;QACT,GAAG,MAAM;KACZ,CAAC;AACN,CAAC"}
@@ -1,19 +0,0 @@
1
- import { WhereOperatorEnum } from './types';
2
- export type WhereBuilderCondition = [string, any] | [string, WhereOperatorEnum, any] | [Record<string, any>] | [(builder: WhereBuilder) => void];
3
- export declare class WhereBuilder {
4
- private whereObject;
5
- constructor(where?: Record<string, any> | string);
6
- private isOperator;
7
- clear(): this;
8
- where(...args: WhereBuilderCondition): this;
9
- andWhere(...args: WhereBuilderCondition): this;
10
- orWhere(...args: WhereBuilderCondition): this;
11
- removeWhere(field: string): this;
12
- hasConditions(): boolean;
13
- toObject(): Record<string, any>;
14
- toJson(): string;
15
- private parseCondition;
16
- private updateCondition;
17
- private mergeConditions;
18
- }
19
- //# sourceMappingURL=where-builder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"where-builder.d.ts","sourceRoot":"","sources":["../../src/lib/where-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGtE,MAAM,MAAM,qBAAqB,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC,CAAC;AAEjJ,qBAAa,YAAY;IAErB,OAAO,CAAC,WAAW,CAA2B;gBAElC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;IAIhD,OAAO,CAAC,UAAU;IAIlB,KAAK,IAAI,IAAI;IAKb,KAAK,CAAC,GAAG,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAK3C,QAAQ,CAAC,GAAG,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAK9C,OAAO,CAAC,GAAG,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAK7C,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAehC,aAAa,IAAI,OAAO;IAIxB,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI/B,MAAM,IAAI,MAAM;IAIhB,OAAO,CAAC,cAAc;IAuDtB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,eAAe;CA0B1B"}
@@ -1,130 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WhereBuilder = void 0;
4
- const types_1 = require("./types");
5
- class WhereBuilder {
6
- constructor(where) {
7
- this.whereObject = {};
8
- this.whereObject = typeof where === 'string' ? JSON.parse(where) : where || {};
9
- }
10
- isOperator(value) {
11
- return `${value}`.startsWith('$');
12
- }
13
- clear() {
14
- this.whereObject = {};
15
- return this;
16
- }
17
- where(...args) {
18
- this.parseCondition(null, ...args);
19
- return this;
20
- }
21
- andWhere(...args) {
22
- this.parseCondition(types_1.WhereLogicalOperatorEnum.AND, ...args);
23
- return this;
24
- }
25
- orWhere(...args) {
26
- this.parseCondition(types_1.WhereLogicalOperatorEnum.OR, ...args);
27
- return this;
28
- }
29
- removeWhere(field) {
30
- const keys = field.split('.');
31
- let current = this.whereObject;
32
- for (let i = 0; i < keys.length - 1; i++) {
33
- if (!current[keys[i]]) {
34
- return this;
35
- }
36
- current = current[keys[i]];
37
- }
38
- delete current[keys[keys.length - 1]];
39
- return this;
40
- }
41
- hasConditions() {
42
- return Object.keys(this.whereObject).length > 0;
43
- }
44
- toObject() {
45
- return this.whereObject;
46
- }
47
- toJson() {
48
- return JSON.stringify(this.whereObject);
49
- }
50
- parseCondition(type, ...args) {
51
- let field;
52
- let operator;
53
- let value;
54
- if (args.length === 0) {
55
- }
56
- else if (args.length === 1) {
57
- const condition = args[0];
58
- if (typeof condition === 'function') {
59
- const builder = new WhereBuilder();
60
- condition(builder);
61
- this.updateCondition(builder.toObject(), type);
62
- }
63
- else if (condition instanceof WhereBuilder) {
64
- this.updateCondition(condition.toObject(), type);
65
- }
66
- else {
67
- this.updateCondition(condition, type);
68
- }
69
- }
70
- else if (args.length === 2 || args.length === 3) {
71
- if (args.length === 2) {
72
- field = args[0];
73
- value = args[1];
74
- if (typeof value === 'object') {
75
- const firstKey = Object.keys(value)[0];
76
- if (firstKey.startsWith('$')) {
77
- this.updateCondition({ [field]: value }, type);
78
- }
79
- else {
80
- this.updateCondition({ [field]: { [types_1.WhereOperatorEnum.EQ]: value } }, type);
81
- }
82
- }
83
- else if (this.isOperator(value)) {
84
- this.updateCondition({ [field]: { [value]: true } }, type);
85
- }
86
- else {
87
- this.updateCondition({ [field]: { [types_1.WhereOperatorEnum.EQ]: value } }, type);
88
- }
89
- }
90
- else {
91
- field = args[0];
92
- operator = args[1];
93
- value = args[2];
94
- this.updateCondition({ [field]: { [operator]: value } }, type);
95
- }
96
- }
97
- return this;
98
- }
99
- updateCondition(condition, type) {
100
- if (type === null) {
101
- this.mergeConditions(this.whereObject, condition);
102
- }
103
- else {
104
- this.whereObject[type] = [...(this.whereObject[type] || []), condition].filter(Boolean);
105
- }
106
- }
107
- mergeConditions(target, source) {
108
- for (const key in source) {
109
- const sourceValue = source[key];
110
- if (key === '$and' || key === '$or') {
111
- if (target[key]) {
112
- target[key] = [...(target[key] || []), ...(Array.isArray(sourceValue) ? sourceValue : [sourceValue])];
113
- }
114
- else {
115
- target[key] = Array.isArray(sourceValue) ? sourceValue : [sourceValue];
116
- }
117
- }
118
- else {
119
- if (target[key] && typeof target[key] === 'object' && typeof sourceValue === 'object') {
120
- target[key] = { ...target[key], ...sourceValue };
121
- }
122
- else {
123
- target[key] = sourceValue;
124
- }
125
- }
126
- }
127
- }
128
- }
129
- exports.WhereBuilder = WhereBuilder;
130
- //# sourceMappingURL=where-builder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"where-builder.js","sourceRoot":"","sources":["../../src/lib/where-builder.ts"],"names":[],"mappings":"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"}