@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 +8 -9
- package/dist/index.d.ts +0 -4
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -20
- package/dist/index.js.map +0 -1
- package/dist/lib/query-builder.d.ts +0 -37
- package/dist/lib/query-builder.d.ts.map +0 -1
- package/dist/lib/query-builder.js +0 -168
- package/dist/lib/query-builder.js.map +0 -1
- package/dist/lib/relation-builder.d.ts +0 -13
- package/dist/lib/relation-builder.d.ts.map +0 -1
- package/dist/lib/relation-builder.js +0 -63
- package/dist/lib/relation-builder.js.map +0 -1
- package/dist/lib/types.d.ts +0 -61
- package/dist/lib/types.d.ts.map +0 -1
- package/dist/lib/types.js +0 -43
- package/dist/lib/types.js.map +0 -1
- package/dist/lib/utils.d.ts +0 -2
- package/dist/lib/utils.d.ts.map +0 -1
- package/dist/lib/utils.js +0 -15
- package/dist/lib/utils.js.map +0 -1
- package/dist/lib/where-builder.d.ts +0 -19
- package/dist/lib/where-builder.d.ts.map +0 -1
- package/dist/lib/where-builder.js +0 -130
- package/dist/lib/where-builder.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,17 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ackplus/nest-crud-request",
|
|
3
|
-
"version": "1.1.
|
|
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
package/dist/index.d.ts.map
DELETED
|
@@ -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"}
|
package/dist/lib/types.d.ts
DELETED
|
@@ -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
|
package/dist/lib/types.d.ts.map
DELETED
|
@@ -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
|
package/dist/lib/types.js.map
DELETED
|
@@ -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"}
|
package/dist/lib/utils.d.ts
DELETED
package/dist/lib/utils.d.ts.map
DELETED
|
@@ -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
|
package/dist/lib/utils.js.map
DELETED
|
@@ -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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"}
|