@ts-awesome/orm 1.5.1 → 1.5.3
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/builder.js +41 -4
- package/dist/builder.js.map +1 -1
- package/dist/interfaces.d.ts +9 -1
- package/dist/intermediate.d.ts +5 -0
- package/dist/operators.d.ts +4 -4
- package/dist/operators.js.map +1 -1
- package/dist/wrappers.d.ts +160 -52
- package/dist/wrappers.js +74 -55
- package/package.json +2 -2
- package/tests/builder.spec.js +84 -0
- package/tests/builder.spec.ts +93 -0
package/dist/builder.js
CHANGED
|
@@ -217,8 +217,9 @@ function parseJoinArgs(...args) {
|
|
|
217
217
|
throw new Error('Expected 2 or 3 arguments, got ' + args.length);
|
|
218
218
|
}
|
|
219
219
|
function join(...args) {
|
|
220
|
+
var _a;
|
|
220
221
|
const [_, alias, condition] = parseJoinArgs(...args);
|
|
221
|
-
this._joins = this._joins
|
|
222
|
+
this._joins = (_a = this._joins) !== null && _a !== void 0 ? _a : [];
|
|
222
223
|
const table = readModelMeta(_);
|
|
223
224
|
this._joins.push({
|
|
224
225
|
_tableName: table.tableName,
|
|
@@ -229,8 +230,9 @@ function join(...args) {
|
|
|
229
230
|
return this;
|
|
230
231
|
}
|
|
231
232
|
function joinLeft(...args) {
|
|
233
|
+
var _a;
|
|
232
234
|
const [_, alias, condition] = parseJoinArgs(...args);
|
|
233
|
-
this._joins = this._joins
|
|
235
|
+
this._joins = (_a = this._joins) !== null && _a !== void 0 ? _a : [];
|
|
234
236
|
const table = readModelMeta(_);
|
|
235
237
|
this._joins.push({
|
|
236
238
|
_tableName: table.tableName,
|
|
@@ -241,8 +243,9 @@ function joinLeft(...args) {
|
|
|
241
243
|
return this;
|
|
242
244
|
}
|
|
243
245
|
function joinRight(...args) {
|
|
246
|
+
var _a;
|
|
244
247
|
const [_, alias, condition] = parseJoinArgs(...args);
|
|
245
|
-
this._joins = this._joins
|
|
248
|
+
this._joins = (_a = this._joins) !== null && _a !== void 0 ? _a : [];
|
|
246
249
|
const table = readModelMeta(_);
|
|
247
250
|
this._joins.push({
|
|
248
251
|
_tableName: table.tableName,
|
|
@@ -253,8 +256,9 @@ function joinRight(...args) {
|
|
|
253
256
|
return this;
|
|
254
257
|
}
|
|
255
258
|
function joinFull(...args) {
|
|
259
|
+
var _a;
|
|
256
260
|
const [_, alias, condition] = parseJoinArgs(...args);
|
|
257
|
-
this._joins = this._joins
|
|
261
|
+
this._joins = (_a = this._joins) !== null && _a !== void 0 ? _a : [];
|
|
258
262
|
const table = readModelMeta(_);
|
|
259
263
|
this._joins.push({
|
|
260
264
|
_tableName: table.tableName,
|
|
@@ -264,6 +268,36 @@ function joinFull(...args) {
|
|
|
264
268
|
});
|
|
265
269
|
return this;
|
|
266
270
|
}
|
|
271
|
+
function union(...args) {
|
|
272
|
+
var _a;
|
|
273
|
+
this._operators = (_a = this._operators) !== null && _a !== void 0 ? _a : [];
|
|
274
|
+
this._operators.push({
|
|
275
|
+
_operator: 'UNION',
|
|
276
|
+
_distinct: typeof args[0] === 'boolean' ? args.shift() : false,
|
|
277
|
+
_operand: args.pop()
|
|
278
|
+
});
|
|
279
|
+
return this;
|
|
280
|
+
}
|
|
281
|
+
function intersect(...args) {
|
|
282
|
+
var _a;
|
|
283
|
+
this._operators = (_a = this._operators) !== null && _a !== void 0 ? _a : [];
|
|
284
|
+
this._operators.push({
|
|
285
|
+
_operator: 'INTERSECT',
|
|
286
|
+
_distinct: typeof args[0] === 'boolean' ? args.shift() : false,
|
|
287
|
+
_operand: args.pop()
|
|
288
|
+
});
|
|
289
|
+
return this;
|
|
290
|
+
}
|
|
291
|
+
function except(...args) {
|
|
292
|
+
var _a;
|
|
293
|
+
this._operators = (_a = this._operators) !== null && _a !== void 0 ? _a : [];
|
|
294
|
+
this._operators.push({
|
|
295
|
+
_operator: 'EXCEPT',
|
|
296
|
+
_distinct: typeof args[0] === 'boolean' ? args.shift() : false,
|
|
297
|
+
_operand: args.pop()
|
|
298
|
+
});
|
|
299
|
+
return this;
|
|
300
|
+
}
|
|
267
301
|
class TableRef {
|
|
268
302
|
constructor(table) {
|
|
269
303
|
this.table = table;
|
|
@@ -345,6 +379,9 @@ function Select(_, ...args) {
|
|
|
345
379
|
having,
|
|
346
380
|
groupBy,
|
|
347
381
|
orderBy,
|
|
382
|
+
union,
|
|
383
|
+
intersect,
|
|
384
|
+
except,
|
|
348
385
|
limit,
|
|
349
386
|
offset,
|
|
350
387
|
asScalar() {
|
package/dist/builder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
|
package/dist/interfaces.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IExpression, IJoin, IOrderBy, IReference } from './intermediate';
|
|
1
|
+
import { IExpression, IJoin, IOrderBy, IReference, ISelectOperator } from './intermediate';
|
|
2
2
|
import { NamedParameter, Operandable } from "./wrappers";
|
|
3
3
|
export type DbValueType = string | number | boolean | Date | null | undefined;
|
|
4
4
|
export interface IDbField<T = any, X = any> {
|
|
@@ -115,6 +115,7 @@ export interface IBuildableSelectQuery {
|
|
|
115
115
|
_where?: IExpression[];
|
|
116
116
|
_groupBy?: IReference[];
|
|
117
117
|
_having?: IExpression[];
|
|
118
|
+
_operators?: ISelectOperator[];
|
|
118
119
|
_orderBy?: IOrderBy[];
|
|
119
120
|
_limit?: number;
|
|
120
121
|
_offset?: number;
|
|
@@ -129,6 +130,7 @@ export interface IBuildableSubSelectQuery {
|
|
|
129
130
|
_where?: IExpression[];
|
|
130
131
|
_groupBy?: IReference[];
|
|
131
132
|
_having?: IExpression[];
|
|
133
|
+
_operators?: ISelectOperator[];
|
|
132
134
|
}
|
|
133
135
|
export interface IBuildableInsertQuery {
|
|
134
136
|
_type: 'INSERT';
|
|
@@ -193,6 +195,12 @@ export interface ISelectBuilder<T> extends IWhereHandler<T> {
|
|
|
193
195
|
joinFull<X extends TableMetaProvider>(Model: X, on: JoinBuilder<T, InstanceType<X>>): this;
|
|
194
196
|
joinFull<X extends TableMetaProvider>(Model: X, alias: ITableRef<X>, on: JoinBuilder<T, InstanceType<X>>): this;
|
|
195
197
|
offset(offset: number): this;
|
|
198
|
+
union(operand: IBuildableSubSelectQuery): this;
|
|
199
|
+
union(distinct: true, operand: IBuildableSubSelectQuery): this;
|
|
200
|
+
intersect(operand: IBuildableSubSelectQuery): this;
|
|
201
|
+
intersect(distinct: true, operand: IBuildableSubSelectQuery): this;
|
|
202
|
+
except(operand: IBuildableSubSelectQuery): this;
|
|
203
|
+
except(distinct: true, operand: IBuildableSubSelectQuery): this;
|
|
196
204
|
where(builder: WhereBuilder<T>): this;
|
|
197
205
|
where(value: Partial<T>): this;
|
|
198
206
|
limit(limit: number): this;
|
package/dist/intermediate.d.ts
CHANGED
|
@@ -44,6 +44,11 @@ export interface IAlias {
|
|
|
44
44
|
export interface INamedParameter {
|
|
45
45
|
_named: string;
|
|
46
46
|
}
|
|
47
|
+
export interface ISelectOperator {
|
|
48
|
+
_operator: 'UNION' | 'INTERSECT' | 'EXCEPT';
|
|
49
|
+
_distinct: boolean;
|
|
50
|
+
_operand: IBuildableSubSelectQuery;
|
|
51
|
+
}
|
|
47
52
|
export interface IConst {
|
|
48
53
|
_const: null | string | number | boolean | (null | string | number | boolean)[];
|
|
49
54
|
}
|
package/dist/operators.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Column,
|
|
1
|
+
import { Column, IOperandable, Order, TableMetaProvider, ITableRef, IBuildableSubSelectQuery } from "./interfaces";
|
|
2
2
|
export declare function and(...operands: (boolean | IOperandable<boolean>)[]): IOperandable<boolean>;
|
|
3
3
|
export declare function or(...operands: (boolean | IOperandable<boolean>)[]): IOperandable<boolean>;
|
|
4
4
|
export declare function not(condition: boolean | IOperandable<boolean>): IOperandable<boolean>;
|
|
5
|
-
export declare function all<T = any>(subquery:
|
|
6
|
-
export declare function any<T = any>(subquery:
|
|
7
|
-
export declare function exists(subquery:
|
|
5
|
+
export declare function all<T = any>(subquery: IBuildableSubSelectQuery): IOperandable<T>;
|
|
6
|
+
export declare function any<T = any>(subquery: IBuildableSubSelectQuery): IOperandable<T>;
|
|
7
|
+
export declare function exists(subquery: IBuildableSubSelectQuery): IOperandable<boolean>;
|
|
8
8
|
export declare function avg<T>(value: IOperandable<T>): IOperandable<T>;
|
|
9
9
|
export declare function sum<T>(value: IOperandable<T>): IOperandable<T>;
|
|
10
10
|
export declare function count<T>(value?: IOperandable<T>): IOperandable<number>;
|
package/dist/operators.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operators.js","sourceRoot":"","sources":["../src/operators.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"operators.js","sourceRoot":"","sources":["../src/operators.ts"],"names":[],"mappings":"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"}
|
package/dist/wrappers.d.ts
CHANGED
|
@@ -1,59 +1,167 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1
|
+
import {ElementType, IOperandable} from './interfaces';
|
|
2
|
+
import {IColumnRef} from "./intermediate";
|
|
3
|
+
|
|
4
|
+
declare class ColumnWrapper<T> implements IOperandable<T> {
|
|
5
|
+
constructor(ref: IColumnRef);
|
|
6
|
+
|
|
7
|
+
eq(value: T | IOperandable<T>): boolean;
|
|
8
|
+
neq(value: T | IOperandable<T>): boolean;
|
|
9
|
+
gt(value: T | IOperandable<T>): boolean;
|
|
10
|
+
gte(value: T | IOperandable<T>): boolean;
|
|
11
|
+
lt(value: T | IOperandable<T>): boolean;
|
|
12
|
+
lte(value: T | IOperandable<T>): boolean;
|
|
13
|
+
between(min: T | IOperandable<T>, max: T | IOperandable<T>): boolean;
|
|
14
|
+
in(value: T[] | Iterable<T> | IOperandable<T[]>): boolean;
|
|
15
|
+
has(value: (T extends any[] ? T[number] : T) | IOperandable<T extends any[] ? T[number] : T>): boolean;
|
|
16
|
+
like(value: string): boolean;
|
|
17
|
+
add(value: T | IOperandable<T>): IOperandable<T>;
|
|
18
|
+
sub(value: T | IOperandable<T>): IOperandable<T>;
|
|
19
|
+
mul(value: T | IOperandable<T>): IOperandable<T>;
|
|
20
|
+
div(value: T | IOperandable<T>): IOperandable<T>;
|
|
21
|
+
mod(value: T | IOperandable<T>): IOperandable<T>;
|
|
22
|
+
and(value: T | IOperandable<T>): IOperandable<T>;
|
|
23
|
+
or(value: T | IOperandable<T>): IOperandable<T>;
|
|
24
|
+
xor(value: T | IOperandable<T>): IOperandable<T>;
|
|
21
25
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
+
|
|
27
|
+
declare class AliasWrapper<T> implements IOperandable<T> {
|
|
28
|
+
constructor(expr: IOperandable<T>, alias: string);
|
|
29
|
+
|
|
30
|
+
eq(value: T | IOperandable<T>): boolean;
|
|
31
|
+
neq(value: T | IOperandable<T>): boolean;
|
|
32
|
+
gt(value: T | IOperandable<T>): boolean;
|
|
33
|
+
gte(value: T | IOperandable<T>): boolean;
|
|
34
|
+
lt(value: T | IOperandable<T>): boolean;
|
|
35
|
+
lte(value: T | IOperandable<T>): boolean;
|
|
36
|
+
between(min: T | IOperandable<T>, max: T | IOperandable<T>): boolean;
|
|
37
|
+
in(value: T[] | Iterable<T> | IOperandable<T[]>): boolean;
|
|
38
|
+
has(value: (T extends any[] ? T[number] : T) | IOperandable<T extends any[] ? T[number] : T>): boolean;
|
|
39
|
+
like(value: string): boolean;
|
|
40
|
+
add(value: T | IOperandable<T>): IOperandable<T>;
|
|
41
|
+
sub(value: T | IOperandable<T>): IOperandable<T>;
|
|
42
|
+
mul(value: T | IOperandable<T>): IOperandable<T>;
|
|
43
|
+
div(value: T | IOperandable<T>): IOperandable<T>;
|
|
44
|
+
mod(value: T | IOperandable<T>): IOperandable<T>;
|
|
45
|
+
and(value: T | IOperandable<T>): IOperandable<T>;
|
|
46
|
+
or(value: T | IOperandable<T>): IOperandable<T>;
|
|
47
|
+
xor(value: T | IOperandable<T>): IOperandable<T>;
|
|
26
48
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
49
|
+
|
|
50
|
+
declare class FunctionCall<T> implements IOperandable<T> {
|
|
51
|
+
constructor(func: string, args: any[]);
|
|
52
|
+
|
|
53
|
+
add(value: IOperandable<T> | T): IOperandable<T>;
|
|
54
|
+
and(value: IOperandable<T> | T): IOperandable<T>;
|
|
55
|
+
between(min: IOperandable<T> | T, max: IOperandable<T> | T): boolean;
|
|
56
|
+
div(value: IOperandable<T> | T): IOperandable<T>;
|
|
57
|
+
eq(value: IOperandable<T> | T): boolean;
|
|
58
|
+
gt(value: IOperandable<T> | T): boolean;
|
|
59
|
+
gte(value: IOperandable<T> | T): boolean;
|
|
60
|
+
has(value: ElementType<T> | IOperandable<ElementType<T>>): boolean;
|
|
61
|
+
in(value: T[] | Iterable<T> | IOperandable<T[]>): boolean;
|
|
62
|
+
like(value: string): boolean;
|
|
63
|
+
lt(value: IOperandable<T> | T): boolean;
|
|
64
|
+
lte(value: IOperandable<T> | T): boolean;
|
|
65
|
+
mod(value: IOperandable<T> | T): IOperandable<T>;
|
|
66
|
+
mul(value: IOperandable<T> | T): IOperandable<T>;
|
|
67
|
+
neq(value: IOperandable<T> | T): boolean;
|
|
68
|
+
or(value: IOperandable<T> | T): IOperandable<T>;
|
|
69
|
+
sub(value: IOperandable<T> | T): IOperandable<T>;
|
|
70
|
+
xor(value: IOperandable<T> | T): IOperandable<T>;
|
|
32
71
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
72
|
+
|
|
73
|
+
declare class Operandable<T> implements IOperandable<T> {
|
|
74
|
+
constructor(operator: string, operands: any[]);
|
|
75
|
+
|
|
76
|
+
add(value: IOperandable<T> | T): IOperandable<T>;
|
|
77
|
+
and(value: IOperandable<T> | T): IOperandable<T>;
|
|
78
|
+
between(min: IOperandable<T> | T, max: IOperandable<T> | T): boolean;
|
|
79
|
+
div(value: IOperandable<T> | T): IOperandable<T>;
|
|
80
|
+
eq(value: IOperandable<T> | T): boolean;
|
|
81
|
+
gt(value: IOperandable<T> | T): boolean;
|
|
82
|
+
gte(value: IOperandable<T> | T): boolean;
|
|
83
|
+
has(value: ElementType<T> | IOperandable<ElementType<T>>): boolean;
|
|
84
|
+
in(value: T[] | Iterable<T> | IOperandable<T[]>): boolean;
|
|
85
|
+
like(value: string): boolean;
|
|
86
|
+
lt(value: IOperandable<T> | T): boolean;
|
|
87
|
+
lte(value: IOperandable<T> | T): boolean;
|
|
88
|
+
mod(value: IOperandable<T> | T): IOperandable<T>;
|
|
89
|
+
mul(value: IOperandable<T> | T): IOperandable<T>;
|
|
90
|
+
neq(value: IOperandable<T> | T): boolean;
|
|
91
|
+
or(value: IOperandable<T> | T): IOperandable<T>;
|
|
92
|
+
sub(value: IOperandable<T> | T): IOperandable<T>;
|
|
93
|
+
xor(value: IOperandable<T> | T): IOperandable<T>;
|
|
37
94
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
95
|
+
|
|
96
|
+
declare class NamedParameter<T> implements IOperandable<T> {
|
|
97
|
+
constructor(name: string);
|
|
98
|
+
|
|
99
|
+
add(value: IOperandable<T> | T): IOperandable<T>;
|
|
100
|
+
and(value: IOperandable<T> | T): IOperandable<T>;
|
|
101
|
+
between(min: IOperandable<T> | T, max: IOperandable<T> | T): boolean;
|
|
102
|
+
div(value: IOperandable<T> | T): IOperandable<T>;
|
|
103
|
+
eq(value: IOperandable<T> | T): boolean;
|
|
104
|
+
gt(value: IOperandable<T> | T): boolean;
|
|
105
|
+
gte(value: IOperandable<T> | T): boolean;
|
|
106
|
+
has(value: ElementType<T> | IOperandable<ElementType<T>>): boolean;
|
|
107
|
+
in(value: T[] | Iterable<T> | IOperandable<T[]>): boolean;
|
|
108
|
+
like(value: string): boolean;
|
|
109
|
+
lt(value: IOperandable<T> | T): boolean;
|
|
110
|
+
lte(value: IOperandable<T> | T): boolean;
|
|
111
|
+
mod(value: IOperandable<T> | T): IOperandable<T>;
|
|
112
|
+
mul(value: IOperandable<T> | T): IOperandable<T>;
|
|
113
|
+
neq(value: IOperandable<T> | T): boolean;
|
|
114
|
+
or(value: IOperandable<T> | T): IOperandable<T>;
|
|
115
|
+
sub(value: IOperandable<T> | T): IOperandable<T>;
|
|
116
|
+
xor(value: IOperandable<T> | T): IOperandable<T>;
|
|
42
117
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
118
|
+
|
|
119
|
+
declare class UnnamedParameter<T> implements IOperandable<T> {
|
|
120
|
+
constructor(value: T);
|
|
121
|
+
|
|
122
|
+
add(value: IOperandable<T> | T): IOperandable<T>;
|
|
123
|
+
and(value: IOperandable<T> | T): IOperandable<T>;
|
|
124
|
+
between(min: IOperandable<T> | T, max: IOperandable<T> | T): boolean;
|
|
125
|
+
div(value: IOperandable<T> | T): IOperandable<T>;
|
|
126
|
+
eq(value: IOperandable<T> | T): boolean;
|
|
127
|
+
gt(value: IOperandable<T> | T): boolean;
|
|
128
|
+
gte(value: IOperandable<T> | T): boolean;
|
|
129
|
+
has(value: ElementType<T> | IOperandable<ElementType<T>>): boolean;
|
|
130
|
+
in(value: T[] | Iterable<T> | IOperandable<T[]>): boolean;
|
|
131
|
+
like(value: string): boolean;
|
|
132
|
+
lt(value: IOperandable<T> | T): boolean;
|
|
133
|
+
lte(value: IOperandable<T> | T): boolean;
|
|
134
|
+
mod(value: IOperandable<T> | T): IOperandable<T>;
|
|
135
|
+
mul(value: IOperandable<T> | T): IOperandable<T>;
|
|
136
|
+
neq(value: IOperandable<T> | T): boolean;
|
|
137
|
+
or(value: IOperandable<T> | T): IOperandable<T>;
|
|
138
|
+
sub(value: IOperandable<T> | T): IOperandable<T>;
|
|
139
|
+
xor(value: IOperandable<T> | T): IOperandable<T>;
|
|
47
140
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
141
|
+
|
|
142
|
+
declare class Constant<T> implements IOperandable<T> {
|
|
143
|
+
constructor(value: T);
|
|
144
|
+
|
|
145
|
+
add(value: IOperandable<T> | T): IOperandable<T>;
|
|
146
|
+
and(value: IOperandable<T> | T): IOperandable<T>;
|
|
147
|
+
between(min: IOperandable<T> | T, max: IOperandable<T> | T): boolean;
|
|
148
|
+
div(value: IOperandable<T> | T): IOperandable<T>;
|
|
149
|
+
eq(value: IOperandable<T> | T): boolean;
|
|
150
|
+
gt(value: IOperandable<T> | T): boolean;
|
|
151
|
+
gte(value: IOperandable<T> | T): boolean;
|
|
152
|
+
has(value: ElementType<T> | IOperandable<ElementType<T>>): boolean;
|
|
153
|
+
in(value: T[] | Iterable<T> | IOperandable<T[]>): boolean;
|
|
154
|
+
like(value: string): boolean;
|
|
155
|
+
lt(value: IOperandable<T> | T): boolean;
|
|
156
|
+
lte(value: IOperandable<T> | T): boolean;
|
|
157
|
+
mod(value: IOperandable<T> | T): IOperandable<T>;
|
|
158
|
+
mul(value: IOperandable<T> | T): IOperandable<T>;
|
|
159
|
+
neq(value: IOperandable<T> | T): boolean;
|
|
160
|
+
or(value: IOperandable<T> | T): IOperandable<T>;
|
|
161
|
+
sub(value: IOperandable<T> | T): IOperandable<T>;
|
|
162
|
+
xor(value: IOperandable<T> | T): IOperandable<T>;
|
|
59
163
|
}
|
|
164
|
+
|
|
165
|
+
declare const SupportedOperations: any;
|
|
166
|
+
|
|
167
|
+
export {ColumnWrapper, FunctionCall, Operandable, NamedParameter, UnnamedParameter, Constant, SupportedOperations, AliasWrapper}
|
package/dist/wrappers.js
CHANGED
|
@@ -1,80 +1,99 @@
|
|
|
1
|
+
|
|
1
2
|
function skipAliasInOperations(op) {
|
|
2
|
-
|
|
3
|
+
return typeof op._alias === 'string' && op._operands ? op._operands[0] : op
|
|
3
4
|
}
|
|
5
|
+
|
|
4
6
|
const SupportedOperations = {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
7
|
+
eq (value) { return new Operandable(value === null ? 'IS' : '=', [this, value === null ? 'NULL' : value])},
|
|
8
|
+
neq (value) { return new Operandable(value === null ? 'IS NOT' : '<>', [this, value === null ? 'NULL' : value])},
|
|
9
|
+
like (value) { return new Operandable('LIKE', [this, value])},
|
|
10
|
+
|
|
11
|
+
in (value) { return new Operandable('IN', [this, value])},
|
|
12
|
+
has (value) { return new Operandable('IN', [value, this])},
|
|
13
|
+
|
|
14
|
+
between(lo,hi) { return new Operandable('BETWEEN', [this, lo,hi])},
|
|
15
|
+
gt (value) { return new Operandable('>', [this, value])},
|
|
16
|
+
gte (value) { return new Operandable('>=', [this, value])},
|
|
17
|
+
lt (value) { return new Operandable('<', [this, value])},
|
|
18
|
+
lte (value) { return new Operandable('<=', [this, value])},
|
|
19
|
+
|
|
20
|
+
add (value) { return new Operandable('+', [this, value])},
|
|
21
|
+
sub (value) { return new Operandable('-', [this, value])},
|
|
22
|
+
mul (value) { return new Operandable('*', [this, value])},
|
|
23
|
+
div (value) { return new Operandable('/', [this, value])},
|
|
24
|
+
mod (value) { return new Operandable('%', [this, value])},
|
|
25
|
+
|
|
26
|
+
and (value) { return new Operandable('&', [this, value])},
|
|
27
|
+
or (value) { return new Operandable('|', [this, value])},
|
|
28
|
+
xor (value) { return new Operandable('^', [this, value])},
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function Operandable(operator, operands){
|
|
32
|
+
this._operator = operator;
|
|
33
|
+
this._operands = operands.map(op => skipAliasInOperations(op));
|
|
27
34
|
}
|
|
28
35
|
Operandable.prototype = SupportedOperations;
|
|
36
|
+
|
|
29
37
|
function FunctionCall(func, args) {
|
|
30
|
-
|
|
31
|
-
|
|
38
|
+
this._func = func;
|
|
39
|
+
this._args = args.map(op => skipAliasInOperations(op));
|
|
32
40
|
}
|
|
33
41
|
FunctionCall.prototype = SupportedOperations;
|
|
42
|
+
|
|
34
43
|
function ColumnWrapper(column) {
|
|
35
|
-
|
|
44
|
+
this._column = column;
|
|
36
45
|
}
|
|
37
46
|
ColumnWrapper.prototype = SupportedOperations;
|
|
47
|
+
|
|
38
48
|
function AliasWrapper(expr, alias) {
|
|
39
|
-
|
|
40
|
-
|
|
49
|
+
this._alias = alias;
|
|
50
|
+
this._operands = [expr];
|
|
41
51
|
}
|
|
42
52
|
AliasWrapper.prototype = SupportedOperations;
|
|
53
|
+
|
|
43
54
|
function NamedParameter(name) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
55
|
+
if (/^p\d+$/.test(name)) {
|
|
56
|
+
throw new Error(`Named parameter ${name} is reserved`);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
if (!/^[a-zA-Z0-9_]+$/.test(name)) {
|
|
60
|
+
throw new Error(`Named parameter should be valid identifier`);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
this._named = name;
|
|
51
64
|
}
|
|
52
65
|
NamedParameter.prototype = SupportedOperations;
|
|
66
|
+
|
|
53
67
|
function UnnamedParameter(value) {
|
|
54
|
-
|
|
68
|
+
this._value = value;
|
|
55
69
|
}
|
|
56
70
|
UnnamedParameter.prototype = SupportedOperations;
|
|
71
|
+
|
|
72
|
+
|
|
57
73
|
function Constant(value) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}
|
|
62
|
-
return value == null || ['string', 'number', 'boolean'].indexOf(typeof value) >= 0;
|
|
74
|
+
function check(value) {
|
|
75
|
+
if (Array.isArray(value)) {
|
|
76
|
+
return value.length > 0 && value.every(check);
|
|
63
77
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
78
|
+
return value == null || ['string', 'number', 'boolean'].indexOf(typeof value) >= 0;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
if (!check(value)) {
|
|
82
|
+
throw new Error(`Constant expected to be null, number, string, boolean or array of such values. Got ${JSON.stringify(value)}`);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
this._const = value;
|
|
68
86
|
}
|
|
69
87
|
Constant.prototype = SupportedOperations;
|
|
88
|
+
|
|
89
|
+
|
|
70
90
|
module.exports = {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=wrappers.js.map
|
|
91
|
+
SupportedOperations,
|
|
92
|
+
ColumnWrapper,
|
|
93
|
+
FunctionCall,
|
|
94
|
+
NamedParameter,
|
|
95
|
+
UnnamedParameter,
|
|
96
|
+
Constant,
|
|
97
|
+
AliasWrapper,
|
|
98
|
+
Operandable,
|
|
99
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ts-awesome/orm",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.3",
|
|
4
4
|
"description": "TypeScript friendly minimalistic ORM",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
},
|
|
11
11
|
"scripts": {
|
|
12
12
|
"build:dev": "tsc --project tsconfig.json",
|
|
13
|
-
"build": "npm run build:dev
|
|
13
|
+
"build": "npm run build:dev ; cp src/wrappers* dist/",
|
|
14
14
|
"lint": "eslint \"src/**/*.ts\"",
|
|
15
15
|
"test": "jest"
|
|
16
16
|
},
|
package/tests/builder.spec.js
CHANGED
|
@@ -498,6 +498,90 @@ describe('Select', () => {
|
|
|
498
498
|
// ignore
|
|
499
499
|
}
|
|
500
500
|
});
|
|
501
|
+
it('union operator', () => {
|
|
502
|
+
const query = (0, dist_1.Select)(models_1.Person)
|
|
503
|
+
.columns(['name'])
|
|
504
|
+
.union(true, (0, dist_1.Select)(models_1.Person)
|
|
505
|
+
.columns(['name'])
|
|
506
|
+
.where(x => x.age.lt(18)))
|
|
507
|
+
.where(x => x.age.gte(18))
|
|
508
|
+
.orderBy(['name']);
|
|
509
|
+
expect(query._operators).toStrictEqual([{
|
|
510
|
+
_operator: 'UNION',
|
|
511
|
+
_distinct: true,
|
|
512
|
+
_operand: {
|
|
513
|
+
"_type": "SELECT",
|
|
514
|
+
"_table": models_1.Person[dist_1.TableMetadataSymbol],
|
|
515
|
+
"_alias": null,
|
|
516
|
+
"_distinct": false,
|
|
517
|
+
"_for": undefined,
|
|
518
|
+
"_columns": [{ "_column": { "table": "Person", "name": "name" } }],
|
|
519
|
+
"_where": [{
|
|
520
|
+
"_operator": "<",
|
|
521
|
+
"_operands": [
|
|
522
|
+
{ "_column": { "table": "Person", "name": "age" } },
|
|
523
|
+
18
|
|
524
|
+
]
|
|
525
|
+
}]
|
|
526
|
+
}
|
|
527
|
+
}]);
|
|
528
|
+
});
|
|
529
|
+
it('intersect operator', () => {
|
|
530
|
+
const query = (0, dist_1.Select)(models_1.Person)
|
|
531
|
+
.columns(['name'])
|
|
532
|
+
.intersect((0, dist_1.Select)(models_1.Person)
|
|
533
|
+
.columns(['name'])
|
|
534
|
+
.where(x => x.age.lt(18)))
|
|
535
|
+
.where(x => x.age.gte(18))
|
|
536
|
+
.orderBy(['name']);
|
|
537
|
+
expect(query._operators).toStrictEqual([{
|
|
538
|
+
_operator: 'INTERSECT',
|
|
539
|
+
_distinct: false,
|
|
540
|
+
_operand: {
|
|
541
|
+
"_type": "SELECT",
|
|
542
|
+
"_table": models_1.Person[dist_1.TableMetadataSymbol],
|
|
543
|
+
"_alias": null,
|
|
544
|
+
"_distinct": false,
|
|
545
|
+
"_for": undefined,
|
|
546
|
+
"_columns": [{ "_column": { "table": "Person", "name": "name" } }],
|
|
547
|
+
"_where": [{
|
|
548
|
+
"_operator": "<",
|
|
549
|
+
"_operands": [
|
|
550
|
+
{ "_column": { "table": "Person", "name": "age" } },
|
|
551
|
+
18
|
|
552
|
+
]
|
|
553
|
+
}]
|
|
554
|
+
}
|
|
555
|
+
}]);
|
|
556
|
+
});
|
|
557
|
+
it('except operator', () => {
|
|
558
|
+
const query = (0, dist_1.Select)(models_1.Person)
|
|
559
|
+
.columns(['name'])
|
|
560
|
+
.except((0, dist_1.Select)(models_1.Person)
|
|
561
|
+
.columns(['name'])
|
|
562
|
+
.where(x => x.age.lt(18)))
|
|
563
|
+
.where(x => x.age.gte(18))
|
|
564
|
+
.orderBy(['name']);
|
|
565
|
+
expect(query._operators).toStrictEqual([{
|
|
566
|
+
_operator: 'EXCEPT',
|
|
567
|
+
_distinct: false,
|
|
568
|
+
_operand: {
|
|
569
|
+
"_type": "SELECT",
|
|
570
|
+
"_table": models_1.Person[dist_1.TableMetadataSymbol],
|
|
571
|
+
"_alias": null,
|
|
572
|
+
"_distinct": false,
|
|
573
|
+
"_for": undefined,
|
|
574
|
+
"_columns": [{ "_column": { "table": "Person", "name": "name" } }],
|
|
575
|
+
"_where": [{
|
|
576
|
+
"_operator": "<",
|
|
577
|
+
"_operands": [
|
|
578
|
+
{ "_column": { "table": "Person", "name": "age" } },
|
|
579
|
+
18
|
|
580
|
+
]
|
|
581
|
+
}]
|
|
582
|
+
}
|
|
583
|
+
}]);
|
|
584
|
+
});
|
|
501
585
|
});
|
|
502
586
|
describe('Insert', () => {
|
|
503
587
|
it('Check query info', () => {
|
package/tests/builder.spec.ts
CHANGED
|
@@ -535,6 +535,99 @@ describe('Select', () => {
|
|
|
535
535
|
// ignore
|
|
536
536
|
}
|
|
537
537
|
});
|
|
538
|
+
|
|
539
|
+
it ('union operator', () => {
|
|
540
|
+
const query = Select(Person)
|
|
541
|
+
.columns(['name'])
|
|
542
|
+
.union(true, Select(Person)
|
|
543
|
+
.columns(['name'])
|
|
544
|
+
.where(x => x.age.lt(18))
|
|
545
|
+
)
|
|
546
|
+
.where(x => x.age.gte(18))
|
|
547
|
+
.orderBy(['name']);
|
|
548
|
+
|
|
549
|
+
expect(query._operators).toStrictEqual([{
|
|
550
|
+
_operator: 'UNION',
|
|
551
|
+
_distinct: true,
|
|
552
|
+
_operand: {
|
|
553
|
+
"_type": "SELECT",
|
|
554
|
+
"_table": Person[TableMetadataSymbol],
|
|
555
|
+
"_alias": null,
|
|
556
|
+
"_distinct": false,
|
|
557
|
+
"_for": undefined,
|
|
558
|
+
"_columns": [{"_column": {"table": "Person", "name": "name"}}],
|
|
559
|
+
"_where": [{
|
|
560
|
+
"_operator": "<",
|
|
561
|
+
"_operands": [
|
|
562
|
+
{"_column": {"table": "Person", "name": "age"}},
|
|
563
|
+
18
|
|
564
|
+
]
|
|
565
|
+
}]
|
|
566
|
+
}
|
|
567
|
+
}])
|
|
568
|
+
})
|
|
569
|
+
|
|
570
|
+
it ('intersect operator', () => {
|
|
571
|
+
const query = Select(Person)
|
|
572
|
+
.columns(['name'])
|
|
573
|
+
.intersect(Select(Person)
|
|
574
|
+
.columns(['name'])
|
|
575
|
+
.where(x => x.age.lt(18))
|
|
576
|
+
)
|
|
577
|
+
.where(x => x.age.gte(18))
|
|
578
|
+
.orderBy(['name']);
|
|
579
|
+
|
|
580
|
+
expect(query._operators).toStrictEqual([{
|
|
581
|
+
_operator: 'INTERSECT',
|
|
582
|
+
_distinct: false,
|
|
583
|
+
_operand: {
|
|
584
|
+
"_type": "SELECT",
|
|
585
|
+
"_table": Person[TableMetadataSymbol],
|
|
586
|
+
"_alias": null,
|
|
587
|
+
"_distinct": false,
|
|
588
|
+
"_for": undefined,
|
|
589
|
+
"_columns": [{"_column": {"table": "Person", "name": "name"}}],
|
|
590
|
+
"_where": [{
|
|
591
|
+
"_operator": "<",
|
|
592
|
+
"_operands": [
|
|
593
|
+
{"_column": {"table": "Person", "name": "age"}},
|
|
594
|
+
18
|
|
595
|
+
]
|
|
596
|
+
}]
|
|
597
|
+
}
|
|
598
|
+
}])
|
|
599
|
+
})
|
|
600
|
+
|
|
601
|
+
it ('except operator', () => {
|
|
602
|
+
const query = Select(Person)
|
|
603
|
+
.columns(['name'])
|
|
604
|
+
.except(Select(Person)
|
|
605
|
+
.columns(['name'])
|
|
606
|
+
.where(x => x.age.lt(18))
|
|
607
|
+
)
|
|
608
|
+
.where(x => x.age.gte(18))
|
|
609
|
+
.orderBy(['name']);
|
|
610
|
+
|
|
611
|
+
expect(query._operators).toStrictEqual([{
|
|
612
|
+
_operator: 'EXCEPT',
|
|
613
|
+
_distinct: false,
|
|
614
|
+
_operand: {
|
|
615
|
+
"_type": "SELECT",
|
|
616
|
+
"_table": Person[TableMetadataSymbol],
|
|
617
|
+
"_alias": null,
|
|
618
|
+
"_distinct": false,
|
|
619
|
+
"_for": undefined,
|
|
620
|
+
"_columns": [{"_column": {"table": "Person", "name": "name"}}],
|
|
621
|
+
"_where": [{
|
|
622
|
+
"_operator": "<",
|
|
623
|
+
"_operands": [
|
|
624
|
+
{"_column": {"table": "Person", "name": "age"}},
|
|
625
|
+
18
|
|
626
|
+
]
|
|
627
|
+
}]
|
|
628
|
+
}
|
|
629
|
+
}])
|
|
630
|
+
})
|
|
538
631
|
});
|
|
539
632
|
|
|
540
633
|
describe('Insert', () => {
|