@ts-awesome/orm 1.6.0 → 1.7.0-rc.0
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/.gitlab-ci.yml +2 -0
- package/dist/builder.d.ts +39 -1
- package/dist/builder.js +67 -7
- package/dist/builder.js.map +1 -1
- package/dist/interfaces.d.ts +7 -5
- package/dist/intermediate.d.ts +15 -0
- package/dist/operators.d.ts +11 -0
- package/dist/operators.js +41 -1
- package/dist/operators.js.map +1 -1
- package/dist/wrappers.d.ts +38 -2
- package/dist/wrappers.js +8 -0
- package/dist/wrappers.js.map +1 -1
- package/package.json +2 -2
- package/tests/builder.spec.ts +90 -5
package/.gitlab-ci.yml
CHANGED
|
@@ -19,6 +19,7 @@ build:
|
|
|
19
19
|
- npm run lint
|
|
20
20
|
- npm run build
|
|
21
21
|
- npm run test
|
|
22
|
+
- npm audit --omit=dev
|
|
22
23
|
|
|
23
24
|
publish:
|
|
24
25
|
stage: publish
|
|
@@ -29,5 +30,6 @@ publish:
|
|
|
29
30
|
- npm run lint
|
|
30
31
|
- npm run build
|
|
31
32
|
- npm run test
|
|
33
|
+
- npm audit --omit=dev
|
|
32
34
|
- npm --no-git-tag-version version ${CI_COMMIT_TAG}
|
|
33
35
|
- npm publish --access public --userconfig $NPM_RC
|
package/dist/builder.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { IBuildableDeleteQuery, IBuildableInsertQuery, IBuildableQuery, IBuildableSelectQuery, IBuildableUpdateQuery, IBuildableUpsertQuery, IDeleteBuilder, IFieldInfo, IIndexInfo, IInsertBuilder, IOperandable, ISelectBuilder, ITableInfo, ITableRef, IUpdateBuilder, IUpsertBuilder, SelectForOperation, TableMetaProvider } from './interfaces';
|
|
1
|
+
import { ColumnsOrIndexesList, ColumnsOrIndexesOrOrderList, GroupByBuilder, IBuildableDeleteQuery, IBuildableInsertQuery, IBuildableQuery, IBuildableSelectQuery, IBuildableUpdateQuery, IBuildableUpsertQuery, IDeleteBuilder, IFieldInfo, IIndexInfo, IInsertBuilder, IOperandable, ISelectBuilder, ITableInfo, ITableRef, IUpdateBuilder, IUpsertBuilder, OrderBuilder, SelectForOperation, TableMetaProvider } from './interfaces';
|
|
2
|
+
import { IWindowDefinition } from "./intermediate";
|
|
2
3
|
export interface IExpr {
|
|
3
4
|
_alias?: string;
|
|
4
5
|
_column?: string;
|
|
@@ -27,3 +28,40 @@ export declare function Insert<T extends TableMetaProvider>(_: T): IInsertBuilde
|
|
|
27
28
|
export declare function Upsert<T extends TableMetaProvider>(_: T): IUpsertBuilder<InstanceType<T>> & IBuildableUpsertQuery;
|
|
28
29
|
export declare function Update<T extends TableMetaProvider>(_: T): IUpdateBuilder<InstanceType<T>> & IBuildableUpdateQuery;
|
|
29
30
|
export declare function Delete<T extends TableMetaProvider>(_: T): IDeleteBuilder<InstanceType<T>> & IBuildableDeleteQuery;
|
|
31
|
+
interface IFrameExclusionBuilder<T extends TableMetaProvider> {
|
|
32
|
+
exclusion(exclude: 'CURRENT ROW' | 'GROUP' | 'TIES' | 'NO OTHERS'): Window<T>;
|
|
33
|
+
}
|
|
34
|
+
interface IFrameEndBuilder<T extends TableMetaProvider> {
|
|
35
|
+
end(value: 'CURRENT ROW'): IFrameExclusionBuilder<T> & Window<T>;
|
|
36
|
+
end(offset: 'UNBOUNDED' | number, order: 'PRECEDING' | 'FOLLOWING'): IFrameExclusionBuilder<T> & Window<T>;
|
|
37
|
+
}
|
|
38
|
+
interface IFrameStartBuilder<T extends TableMetaProvider> {
|
|
39
|
+
start(value: 'CURRENT ROW'): IFrameEndBuilder<T> & IFrameExclusionBuilder<T> & Window<T>;
|
|
40
|
+
start(offset: 'UNBOUNDED' | number, order: 'PRECEDING' | 'FOLLOWING'): IFrameEndBuilder<T> & IFrameExclusionBuilder<T> & Window<T>;
|
|
41
|
+
}
|
|
42
|
+
export declare class Window<T extends TableMetaProvider> {
|
|
43
|
+
private readonly _table;
|
|
44
|
+
private readonly _alias;
|
|
45
|
+
private _groupBy?;
|
|
46
|
+
private _orderBy?;
|
|
47
|
+
private _extends?;
|
|
48
|
+
private _mode?;
|
|
49
|
+
private _start?;
|
|
50
|
+
private _end?;
|
|
51
|
+
private _exclusion?;
|
|
52
|
+
constructor(Model: T, extend?: Window<any>);
|
|
53
|
+
partitionBy(builder: GroupByBuilder<InstanceType<T>>): this;
|
|
54
|
+
partitionBy(list: ColumnsOrIndexesList<InstanceType<T>>): this;
|
|
55
|
+
orderBy(builder: OrderBuilder<InstanceType<T>>): this;
|
|
56
|
+
orderBy(list: ColumnsOrIndexesOrOrderList<InstanceType<T>>): this;
|
|
57
|
+
range(): IFrameStartBuilder<T>;
|
|
58
|
+
rows(): IFrameStartBuilder<T>;
|
|
59
|
+
groups(): IFrameStartBuilder<T>;
|
|
60
|
+
protected start(value: 'CURRENT ROW'): IFrameEndBuilder<T> & IFrameExclusionBuilder<T> & Window<T>;
|
|
61
|
+
protected start(offset: 'UNBOUNDED' | number, order: 'PRECEDING' | 'FOLLOWING'): IFrameEndBuilder<T> & IFrameExclusionBuilder<T> & Window<T>;
|
|
62
|
+
protected end(value: 'CURRENT ROW'): IFrameEndBuilder<T> & IFrameExclusionBuilder<T> & Window<T>;
|
|
63
|
+
protected end(offset: 'UNBOUNDED' | number, order: 'PRECEDING' | 'FOLLOWING'): IFrameEndBuilder<T> & IFrameExclusionBuilder<T> & Window<T>;
|
|
64
|
+
protected exclusion(exclude: 'CURRENT ROW' | 'GROUP' | 'TIES' | 'NO OTHERS'): Window<T>;
|
|
65
|
+
protected def(): IWindowDefinition;
|
|
66
|
+
}
|
|
67
|
+
export {};
|
package/dist/builder.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Delete = exports.Update = exports.Upsert = exports.Insert = exports.Select = exports.readModelMeta = exports.TableRef = void 0;
|
|
3
|
+
exports.Window = exports.Delete = exports.Update = exports.Upsert = exports.Insert = exports.Select = exports.readModelMeta = exports.TableRef = void 0;
|
|
4
4
|
const wrappers_1 = require("./wrappers");
|
|
5
5
|
const operators_1 = require("./operators");
|
|
6
6
|
const symbols_1 = require("./symbols");
|
|
@@ -21,6 +21,9 @@ function columnExpression(property, tableInfo, ignoreTableName, alias_) {
|
|
|
21
21
|
return new wrappers_1.AliasWrapper(kind.readQuery(ref, proxy(tableInfo, ignoreTableName, alias_)), name);
|
|
22
22
|
}
|
|
23
23
|
function columnReference(property, tableInfo, ignoreTableName, alias) {
|
|
24
|
+
if (typeof property === 'number') {
|
|
25
|
+
return { _column: { name: property } };
|
|
26
|
+
}
|
|
24
27
|
const info = tableInfo.fields.get(property);
|
|
25
28
|
if (!info) {
|
|
26
29
|
throw new Error(`Property ${property} should be decorated with @dbField`);
|
|
@@ -88,6 +91,10 @@ function columnExpressionsOf(_, tableInfo, alias) {
|
|
|
88
91
|
function columnsOf(_, tableInfo, alias) {
|
|
89
92
|
const { fields } = tableInfo;
|
|
90
93
|
for (const field of _) {
|
|
94
|
+
if (typeof field === 'number') {
|
|
95
|
+
// skip indexes
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
91
98
|
if (!fields.has(field) || fields.get(field).relatedTo || fields.get(field).builder) {
|
|
92
99
|
throw new Error(`Field '${field.toString()}' should be decorated with @dbField`);
|
|
93
100
|
}
|
|
@@ -359,13 +366,13 @@ function computeReadableColumns(meta, alias) {
|
|
|
359
366
|
return columnExpressionsOf(fields, meta, alias).map(strip);
|
|
360
367
|
}
|
|
361
368
|
const ContextSymbol = Symbol();
|
|
369
|
+
function isAlias(x) {
|
|
370
|
+
return x && typeof x._alias === 'string';
|
|
371
|
+
}
|
|
372
|
+
function isSubquery(x) {
|
|
373
|
+
return x && typeof x._type === 'string' && x._type === 'SELECT';
|
|
374
|
+
}
|
|
362
375
|
function Select(_, ...args) {
|
|
363
|
-
function isAlias(x) {
|
|
364
|
-
return x && typeof x._alias === 'string';
|
|
365
|
-
}
|
|
366
|
-
function isSubquery(x) {
|
|
367
|
-
return x && typeof x._type === 'string' && x._type === 'SELECT';
|
|
368
|
-
}
|
|
369
376
|
const forOr = typeof args[0] === 'string' ? args.shift() : undefined;
|
|
370
377
|
const distinct = typeof args[0] === 'boolean' ? args.shift() : false;
|
|
371
378
|
const meta = readModelMeta(isAlias(_) ? _._operands[0] : _);
|
|
@@ -469,4 +476,57 @@ function Delete(_) {
|
|
|
469
476
|
});
|
|
470
477
|
}
|
|
471
478
|
exports.Delete = Delete;
|
|
479
|
+
// noinspection JSUnusedLocalSymbols
|
|
480
|
+
class Window {
|
|
481
|
+
constructor(Model, extend) {
|
|
482
|
+
this._extends = extend;
|
|
483
|
+
this._table = readModelMeta(isAlias(Model) ? Model._operands[0] : Model);
|
|
484
|
+
this._alias = isAlias(Model) ? Model._alias : isSubquery(Model) ? this._table.tableName : null;
|
|
485
|
+
}
|
|
486
|
+
partitionBy(x) {
|
|
487
|
+
groupBy.call(this, x);
|
|
488
|
+
return this;
|
|
489
|
+
}
|
|
490
|
+
orderBy(x) {
|
|
491
|
+
orderBy.call(this, x);
|
|
492
|
+
return this;
|
|
493
|
+
}
|
|
494
|
+
range() {
|
|
495
|
+
this._mode = 'RANGE';
|
|
496
|
+
return this;
|
|
497
|
+
}
|
|
498
|
+
rows() {
|
|
499
|
+
this._mode = 'ROWS';
|
|
500
|
+
return this;
|
|
501
|
+
}
|
|
502
|
+
groups() {
|
|
503
|
+
this._mode = 'GROUPS';
|
|
504
|
+
return this;
|
|
505
|
+
}
|
|
506
|
+
start(value, order) {
|
|
507
|
+
this._start = [value, order].filter(x => x).join(' ');
|
|
508
|
+
return this;
|
|
509
|
+
}
|
|
510
|
+
end(value, order) {
|
|
511
|
+
this._end = [value, order].filter(x => x).join(' ');
|
|
512
|
+
return this;
|
|
513
|
+
}
|
|
514
|
+
exclusion(exclude) {
|
|
515
|
+
this._exclusion = exclude;
|
|
516
|
+
return this;
|
|
517
|
+
}
|
|
518
|
+
def() {
|
|
519
|
+
var _a;
|
|
520
|
+
return {
|
|
521
|
+
_extends: (_a = this._extends) === null || _a === void 0 ? void 0 : _a.def(),
|
|
522
|
+
_groupBy: this._groupBy,
|
|
523
|
+
_orderBy: this._orderBy,
|
|
524
|
+
_mode: this._mode,
|
|
525
|
+
_start: this._start,
|
|
526
|
+
_end: this._end,
|
|
527
|
+
_exclusion: this._exclusion,
|
|
528
|
+
};
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
exports.Window = Window;
|
|
472
532
|
//# sourceMappingURL=builder.js.map
|
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
|
@@ -48,6 +48,8 @@ export type Values<T> = {
|
|
|
48
48
|
[P in keyof T]?: IOperandable<T[P]> | T[P];
|
|
49
49
|
};
|
|
50
50
|
export type ColumnsList<T> = Column<T>[];
|
|
51
|
+
export type ColumnsOrIndexesList<T> = (Column<T> | number)[];
|
|
52
|
+
export type ColumnsOrIndexesOrOrderList<T> = (Column<T> | number | Order)[];
|
|
51
53
|
export interface IOperandable<T = any> {
|
|
52
54
|
eq(value: T | IOperandable<T>): boolean;
|
|
53
55
|
neq(value: T | IOperandable<T>): boolean;
|
|
@@ -84,7 +86,7 @@ export type HavingBuilder<T> = (model: Queryable<T>) => IOperandable<boolean> |
|
|
|
84
86
|
export type ValuesBuilder<T> = (model: Queryable<T>) => Values<T>;
|
|
85
87
|
export type JoinBuilder<T, X> = (root: Queryable<T>, other: Queryable<X>) => IOperandable<boolean> | boolean;
|
|
86
88
|
export type OrderBuilder<T> = (x: Columns<T>) => (Column<T> | Order | IOperandable<any>)[];
|
|
87
|
-
export type GroupByBuilder<T> = (x: Columns<T>) => Column<T>[];
|
|
89
|
+
export type GroupByBuilder<T> = (x: Columns<T>) => (Column<T> | number)[];
|
|
88
90
|
export type ColumnsBuilder<T> = (x: Queryable<T>) => (Column<T> | IOperandable<any>)[];
|
|
89
91
|
export type Column<T> = keyof T;
|
|
90
92
|
export type Columns<T> = {
|
|
@@ -182,10 +184,11 @@ export interface ISelectBuilder<T> extends IWhereHandler<T> {
|
|
|
182
184
|
columns(builder: ColumnsBuilder<T>): this;
|
|
183
185
|
columns(list: ColumnsList<T>): this;
|
|
184
186
|
groupBy(builder: GroupByBuilder<T>): this;
|
|
185
|
-
groupBy(list:
|
|
187
|
+
groupBy(list: ColumnsOrIndexesList<T>): this;
|
|
186
188
|
orderBy(builder: OrderBuilder<T>): this;
|
|
187
|
-
orderBy(list:
|
|
189
|
+
orderBy(list: ColumnsOrIndexesOrOrderList<T>): this;
|
|
188
190
|
having(builder: HavingBuilder<T>): this;
|
|
191
|
+
offset(offset: number): this;
|
|
189
192
|
join<X extends TableMetaProvider>(Model: X, on: JoinBuilder<T, InstanceType<X>>): this;
|
|
190
193
|
join<X extends TableMetaProvider>(Model: X, alias: ITableRef<X>, on: JoinBuilder<T, InstanceType<X>>): this;
|
|
191
194
|
joinLeft<X extends TableMetaProvider>(Model: X, on: JoinBuilder<T, InstanceType<X>>): this;
|
|
@@ -194,17 +197,16 @@ export interface ISelectBuilder<T> extends IWhereHandler<T> {
|
|
|
194
197
|
joinRight<X extends TableMetaProvider>(Model: X, alias: ITableRef<X>, on: JoinBuilder<T, InstanceType<X>>): this;
|
|
195
198
|
joinFull<X extends TableMetaProvider>(Model: X, on: JoinBuilder<T, InstanceType<X>>): this;
|
|
196
199
|
joinFull<X extends TableMetaProvider>(Model: X, alias: ITableRef<X>, on: JoinBuilder<T, InstanceType<X>>): this;
|
|
197
|
-
offset(offset: number): this;
|
|
198
200
|
union(operand: IBuildableSubSelectQuery): this;
|
|
199
201
|
union(distinct: true, operand: IBuildableSubSelectQuery): this;
|
|
200
202
|
intersect(operand: IBuildableSubSelectQuery): this;
|
|
201
203
|
intersect(distinct: true, operand: IBuildableSubSelectQuery): this;
|
|
202
204
|
except(operand: IBuildableSubSelectQuery): this;
|
|
203
205
|
except(distinct: true, operand: IBuildableSubSelectQuery): this;
|
|
206
|
+
asScalar<T = number>(): IOperandable<T>;
|
|
204
207
|
where(builder: WhereBuilder<T>): this;
|
|
205
208
|
where(value: Values<T>): this;
|
|
206
209
|
limit(limit: number): this;
|
|
207
|
-
asScalar<T = number>(): IOperandable<T>;
|
|
208
210
|
}
|
|
209
211
|
export interface IInsertBuilder<T> extends IValuesHandler<T> {
|
|
210
212
|
}
|
package/dist/intermediate.d.ts
CHANGED
|
@@ -23,6 +23,21 @@ export interface IFunctionCallOperation {
|
|
|
23
23
|
_func: 'AVG' | 'SUM' | 'COUNT' | 'MAX' | 'MIN';
|
|
24
24
|
_args: IExpression[];
|
|
25
25
|
}
|
|
26
|
+
export interface IWindowDefinition {
|
|
27
|
+
_extends?: IWindowDefinition;
|
|
28
|
+
_orderBy?: IOrderBy[];
|
|
29
|
+
_groupBy?: IReference[];
|
|
30
|
+
_mode?: 'ROWS' | 'RANGE' | 'GROUPS';
|
|
31
|
+
_start?: string;
|
|
32
|
+
_end?: string;
|
|
33
|
+
_exclusion?: 'CURRENT ROW' | 'GROUP' | 'TIES' | 'NO OTHERS';
|
|
34
|
+
}
|
|
35
|
+
export interface IFunctionWindowCallOperation {
|
|
36
|
+
_func: 'first_value' | 'last_value';
|
|
37
|
+
_filter?: IExpression;
|
|
38
|
+
_over: IWindowDefinition;
|
|
39
|
+
_args: IExpression[];
|
|
40
|
+
}
|
|
26
41
|
export interface IReference {
|
|
27
42
|
_column: IColumnRef;
|
|
28
43
|
}
|
package/dist/operators.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Column, IOperandable, Order, TableMetaProvider, ITableRef, IBuildableSubSelectQuery } from "./interfaces";
|
|
2
|
+
import { Window } from "./builder";
|
|
2
3
|
export declare function and(...operands: (boolean | IOperandable<boolean>)[]): IOperandable<boolean>;
|
|
3
4
|
export declare function or(...operands: (boolean | IOperandable<boolean>)[]): IOperandable<boolean>;
|
|
4
5
|
export declare function not(condition: boolean | IOperandable<boolean>): IOperandable<boolean>;
|
|
@@ -25,3 +26,13 @@ export type CaseOperand<T> = {
|
|
|
25
26
|
else: IOperandable<T> | T;
|
|
26
27
|
};
|
|
27
28
|
export declare function case_<T = unknown>(...args: CaseOperand<T>[]): IOperandable<T>;
|
|
29
|
+
export declare function row_number(over: Window<any>, filter?: IOperandable<boolean> | boolean): IOperandable<number>;
|
|
30
|
+
export declare function rank(over: Window<any>, filter?: IOperandable<boolean> | boolean): IOperandable<number>;
|
|
31
|
+
export declare function dense_rank(over: Window<any>, filter?: IOperandable<boolean> | boolean): IOperandable<number>;
|
|
32
|
+
export declare function percent_rank(over: Window<any>, filter?: IOperandable<boolean> | boolean): IOperandable<number>;
|
|
33
|
+
export declare function cume_dist(over: Window<any>, filter?: IOperandable<boolean> | boolean): IOperandable<number>;
|
|
34
|
+
export declare function first_value<T>(value: Column<T> | IOperandable<T>, over: Window<any>, filter?: IOperandable<boolean> | boolean): IOperandable<unknown>;
|
|
35
|
+
export declare function last_value<T>(value: Column<T> | IOperandable<T>, over: Window<any>, filter?: IOperandable<boolean> | boolean): IOperandable<unknown>;
|
|
36
|
+
export declare function nth_value<T>(value: Column<T> | IOperandable<T>, n: number, over: Window<any>, filter?: IOperandable<boolean> | boolean): IOperandable<unknown>;
|
|
37
|
+
export declare function lag<T>(value: Column<T> | IOperandable<T>, offset: number, def: T | null, over: Window<any>, filter?: IOperandable<boolean> | boolean): IOperandable<T>;
|
|
38
|
+
export declare function lead<T>(value: Column<T> | IOperandable<T>, offset: number, def: T | null, over: Window<any>, filter?: IOperandable<boolean> | boolean): IOperandable<T>;
|
package/dist/operators.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.case_ = exports.cast = exports.alias = exports.of = exports.desc = exports.asc = exports.min = exports.max = exports.count = exports.sum = exports.avg = exports.exists = exports.any = exports.all = exports.not = exports.or = exports.and = void 0;
|
|
3
|
+
exports.lead = exports.lag = exports.nth_value = exports.last_value = exports.first_value = exports.cume_dist = exports.percent_rank = exports.dense_rank = exports.rank = exports.row_number = exports.case_ = exports.cast = exports.alias = exports.of = exports.desc = exports.asc = exports.min = exports.max = exports.count = exports.sum = exports.avg = exports.exists = exports.any = exports.all = exports.not = exports.or = exports.and = void 0;
|
|
4
4
|
const wrappers_1 = require("./wrappers");
|
|
5
5
|
const symbols_1 = require("./symbols");
|
|
6
6
|
function and(...operands) {
|
|
@@ -90,4 +90,44 @@ function case_(...args) {
|
|
|
90
90
|
return new wrappers_1.Operandable('CASE', args);
|
|
91
91
|
}
|
|
92
92
|
exports.case_ = case_;
|
|
93
|
+
function row_number(over, filter) {
|
|
94
|
+
return new wrappers_1.FunctionWindowCall('row_number', filter !== null && filter !== void 0 ? filter : null, over, []);
|
|
95
|
+
}
|
|
96
|
+
exports.row_number = row_number;
|
|
97
|
+
function rank(over, filter) {
|
|
98
|
+
return new wrappers_1.FunctionWindowCall('rank', filter !== null && filter !== void 0 ? filter : null, over, []);
|
|
99
|
+
}
|
|
100
|
+
exports.rank = rank;
|
|
101
|
+
function dense_rank(over, filter) {
|
|
102
|
+
return new wrappers_1.FunctionWindowCall('dense_rank', filter !== null && filter !== void 0 ? filter : null, over, []);
|
|
103
|
+
}
|
|
104
|
+
exports.dense_rank = dense_rank;
|
|
105
|
+
function percent_rank(over, filter) {
|
|
106
|
+
return new wrappers_1.FunctionWindowCall('percent_rank', filter !== null && filter !== void 0 ? filter : null, over, []);
|
|
107
|
+
}
|
|
108
|
+
exports.percent_rank = percent_rank;
|
|
109
|
+
function cume_dist(over, filter) {
|
|
110
|
+
return new wrappers_1.FunctionWindowCall('cume_dist', filter !== null && filter !== void 0 ? filter : null, over, []);
|
|
111
|
+
}
|
|
112
|
+
exports.cume_dist = cume_dist;
|
|
113
|
+
function first_value(value, over, filter) {
|
|
114
|
+
return new wrappers_1.FunctionWindowCall('first_value', filter !== null && filter !== void 0 ? filter : null, over, [value]);
|
|
115
|
+
}
|
|
116
|
+
exports.first_value = first_value;
|
|
117
|
+
function last_value(value, over, filter) {
|
|
118
|
+
return new wrappers_1.FunctionWindowCall('last_value', filter !== null && filter !== void 0 ? filter : null, over, [value]);
|
|
119
|
+
}
|
|
120
|
+
exports.last_value = last_value;
|
|
121
|
+
function nth_value(value, n, over, filter) {
|
|
122
|
+
return new wrappers_1.FunctionWindowCall('nth_value', filter !== null && filter !== void 0 ? filter : null, over, [value, n]);
|
|
123
|
+
}
|
|
124
|
+
exports.nth_value = nth_value;
|
|
125
|
+
function lag(value, offset, def, over, filter) {
|
|
126
|
+
return new wrappers_1.FunctionWindowCall('lag', filter !== null && filter !== void 0 ? filter : null, over, [value, offset !== null && offset !== void 0 ? offset : 1, def !== null && def !== void 0 ? def : null]);
|
|
127
|
+
}
|
|
128
|
+
exports.lag = lag;
|
|
129
|
+
function lead(value, offset, def, over, filter) {
|
|
130
|
+
return new wrappers_1.FunctionWindowCall('lead', filter !== null && filter !== void 0 ? filter : null, over, [value, offset !== null && offset !== void 0 ? offset : 1, def !== null && def !== void 0 ? def : null]);
|
|
131
|
+
}
|
|
132
|
+
exports.lead = lead;
|
|
93
133
|
//# sourceMappingURL=operators.js.map
|
package/dist/operators.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operators.js","sourceRoot":"","sources":["../src/operators.ts"],"names":[],"mappings":";;;AASA,
|
|
1
|
+
{"version":3,"file":"operators.js","sourceRoot":"","sources":["../src/operators.ts"],"names":[],"mappings":"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"}
|
package/dist/wrappers.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import {ElementType, IOperandable} from './interfaces';
|
|
2
|
-
import {IColumnRef} from
|
|
2
|
+
import {IColumnRef} from './intermediate';
|
|
3
|
+
import {Window} from "./builder";
|
|
4
|
+
|
|
5
|
+
|
|
3
6
|
|
|
4
7
|
declare class ColumnWrapper<T> implements IOperandable<T> {
|
|
5
8
|
constructor(ref: IColumnRef);
|
|
@@ -162,6 +165,39 @@ declare class Constant<T> implements IOperandable<T> {
|
|
|
162
165
|
xor(value: IOperandable<T> | T): IOperandable<T>;
|
|
163
166
|
}
|
|
164
167
|
|
|
168
|
+
declare class FunctionWindowCall<T> implements IOperandable<T> {
|
|
169
|
+
constructor(func: string, filter: boolean | IOperandable<boolean> | null, over: Window<any>, args: any[]);
|
|
170
|
+
|
|
171
|
+
add(value: IOperandable<T> | T): IOperandable<T>;
|
|
172
|
+
and(value: IOperandable<T> | T): IOperandable<T>;
|
|
173
|
+
between(min: IOperandable<T> | T, max: IOperandable<T> | T): boolean;
|
|
174
|
+
div(value: IOperandable<T> | T): IOperandable<T>;
|
|
175
|
+
eq(value: IOperandable<T> | T): boolean;
|
|
176
|
+
gt(value: IOperandable<T> | T): boolean;
|
|
177
|
+
gte(value: IOperandable<T> | T): boolean;
|
|
178
|
+
has(value: ElementType<T> | IOperandable<ElementType<T>>): boolean;
|
|
179
|
+
in(value: T[] | Iterable<T> | IOperandable<T[]>): boolean;
|
|
180
|
+
like(value: string): boolean;
|
|
181
|
+
lt(value: IOperandable<T> | T): boolean;
|
|
182
|
+
lte(value: IOperandable<T> | T): boolean;
|
|
183
|
+
mod(value: IOperandable<T> | T): IOperandable<T>;
|
|
184
|
+
mul(value: IOperandable<T> | T): IOperandable<T>;
|
|
185
|
+
neq(value: IOperandable<T> | T): boolean;
|
|
186
|
+
or(value: IOperandable<T> | T): IOperandable<T>;
|
|
187
|
+
sub(value: IOperandable<T> | T): IOperandable<T>;
|
|
188
|
+
xor(value: IOperandable<T> | T): IOperandable<T>;
|
|
189
|
+
}
|
|
190
|
+
|
|
165
191
|
declare const SupportedOperations: any;
|
|
166
192
|
|
|
167
|
-
export {
|
|
193
|
+
export {
|
|
194
|
+
ColumnWrapper,
|
|
195
|
+
FunctionCall,
|
|
196
|
+
Operandable,
|
|
197
|
+
NamedParameter,
|
|
198
|
+
UnnamedParameter,
|
|
199
|
+
Constant,
|
|
200
|
+
SupportedOperations,
|
|
201
|
+
AliasWrapper,
|
|
202
|
+
FunctionWindowCall
|
|
203
|
+
}
|
package/dist/wrappers.js
CHANGED
|
@@ -86,6 +86,13 @@ function Constant(value) {
|
|
|
86
86
|
}
|
|
87
87
|
Constant.prototype = SupportedOperations;
|
|
88
88
|
|
|
89
|
+
function FunctionWindowCall(func, filter, window, args) {
|
|
90
|
+
this._func = func;
|
|
91
|
+
this._filter = filter ?? undefined;
|
|
92
|
+
this._over = window.def();
|
|
93
|
+
this._args = args.map(op => skipAliasInOperations(op));
|
|
94
|
+
}
|
|
95
|
+
FunctionWindowCall.prototype = SupportedOperations;
|
|
89
96
|
|
|
90
97
|
module.exports = {
|
|
91
98
|
SupportedOperations,
|
|
@@ -96,4 +103,5 @@ module.exports = {
|
|
|
96
103
|
Constant,
|
|
97
104
|
AliasWrapper,
|
|
98
105
|
Operandable,
|
|
106
|
+
FunctionWindowCall,
|
|
99
107
|
}
|
package/dist/wrappers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrappers.js","sourceRoot":"","sources":["../src/wrappers.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"wrappers.js","sourceRoot":"","sources":["../src/wrappers.js"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ts-awesome/orm",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.0-rc.0",
|
|
4
4
|
"description": "TypeScript friendly minimalistic ORM",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -32,6 +32,6 @@
|
|
|
32
32
|
"@ts-awesome/model-reader": "^1.0.3"
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|
|
35
|
-
"inversify": "^5.0.0 || ^
|
|
35
|
+
"inversify": "^5.0.0 || ^6.0.0"
|
|
36
36
|
}
|
|
37
37
|
}
|
package/tests/builder.spec.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import {alias, and, asc, Delete, desc, Insert, max, Select, sum, TableMetadataSymbol, Update, Upsert, of} from '../dist';
|
|
2
2
|
import {Employee, MailingList, Person, Tag} from './models';
|
|
3
|
-
import { TableRef, readModelMeta } from '../dist/builder';
|
|
4
|
-
import {count, dbField, dbTable, exists, case_} from "../dist";
|
|
5
|
-
import {cast, IOperandable} from "../src";
|
|
3
|
+
import { TableRef, readModelMeta, Window } from '../dist/builder';
|
|
4
|
+
import {count, dbField, dbTable, exists, case_, cast, first_value, IOperandable} from "../dist";
|
|
6
5
|
import {FunctionCall} from "../src/wrappers";
|
|
7
6
|
|
|
8
7
|
|
|
@@ -296,12 +295,24 @@ describe('Select', () => {
|
|
|
296
295
|
expect(query._having).toStrictEqual(expectation._having);
|
|
297
296
|
});
|
|
298
297
|
|
|
299
|
-
it('Group by', () => {
|
|
298
|
+
it('Group by list', () => {
|
|
300
299
|
const queryThroughList = Select(Person).groupBy(['city']);
|
|
301
|
-
const queryThroughBuilder = Select(Person).groupBy(({city}) => [city]);
|
|
302
300
|
const expectation = [{_column: {table: tableName, name: 'city'}}];
|
|
303
301
|
|
|
304
302
|
expect(queryThroughList._groupBy).toStrictEqual(expectation);
|
|
303
|
+
});
|
|
304
|
+
|
|
305
|
+
it('Group by builder', () => {
|
|
306
|
+
const queryThroughBuilder = Select(Person).groupBy(({city}) => [city]);
|
|
307
|
+
const expectation = [{_column: {table: tableName, name: 'city'}}];
|
|
308
|
+
|
|
309
|
+
expect(queryThroughBuilder._groupBy).toStrictEqual(expectation);
|
|
310
|
+
});
|
|
311
|
+
|
|
312
|
+
it('Group by index', () => {
|
|
313
|
+
const queryThroughBuilder = Select(Person).groupBy([1]);
|
|
314
|
+
const expectation = [{_column: {name: 1}}];
|
|
315
|
+
|
|
305
316
|
expect(queryThroughBuilder._groupBy).toStrictEqual(expectation);
|
|
306
317
|
});
|
|
307
318
|
|
|
@@ -762,6 +773,80 @@ describe('Select', () => {
|
|
|
762
773
|
// "_type": "SELECT",
|
|
763
774
|
// })
|
|
764
775
|
// })
|
|
776
|
+
|
|
777
|
+
it('SELECT with WINDOW', () => {
|
|
778
|
+
const win1 = new Window(Person)
|
|
779
|
+
.partitionBy(['id'])
|
|
780
|
+
.orderBy(['id']);
|
|
781
|
+
|
|
782
|
+
const win2 = new Window(Person, win1)
|
|
783
|
+
.partitionBy(['id'])
|
|
784
|
+
.orderBy(['id'])
|
|
785
|
+
.groups()
|
|
786
|
+
.start(5, 'PRECEDING')
|
|
787
|
+
.end(5, 'FOLLOWING')
|
|
788
|
+
.exclusion('CURRENT ROW');
|
|
789
|
+
|
|
790
|
+
const query = Select(Person)
|
|
791
|
+
.columns(x => [
|
|
792
|
+
x.id,
|
|
793
|
+
alias(first_value(x.name, win2 as never, x.city.like('test%')), 'first_value_of_name'),
|
|
794
|
+
]);
|
|
795
|
+
|
|
796
|
+
expect(query).toStrictEqual({
|
|
797
|
+
"_alias": null,
|
|
798
|
+
_columns: [
|
|
799
|
+
{ _column: {name: 'id', table: "Person"} },
|
|
800
|
+
{
|
|
801
|
+
_alias: 'first_value_of_name',
|
|
802
|
+
_operands: [
|
|
803
|
+
{
|
|
804
|
+
_func: "first_value",
|
|
805
|
+
_args: [
|
|
806
|
+
{ _column: {name: 'name', table: "Person"} },
|
|
807
|
+
],
|
|
808
|
+
_filter: {
|
|
809
|
+
_operands: [
|
|
810
|
+
{ _column: {name: 'city', table: "Person"} },
|
|
811
|
+
"test%",
|
|
812
|
+
],
|
|
813
|
+
_operator: "LIKE",
|
|
814
|
+
},
|
|
815
|
+
_over: {
|
|
816
|
+
_extends: {
|
|
817
|
+
_extends: undefined,
|
|
818
|
+
_mode: undefined,
|
|
819
|
+
_start: undefined,
|
|
820
|
+
_end: undefined,
|
|
821
|
+
_exclusion: undefined,
|
|
822
|
+
_groupBy: [
|
|
823
|
+
{ _column: {name: 'id', table: "Person"} },
|
|
824
|
+
],
|
|
825
|
+
_orderBy: [
|
|
826
|
+
{ _column: {name: 'id', table: "Person"} },
|
|
827
|
+
],
|
|
828
|
+
},
|
|
829
|
+
_mode: "GROUPS",
|
|
830
|
+
_start: "5 PRECEDING",
|
|
831
|
+
_end: "5 FOLLOWING",
|
|
832
|
+
_exclusion: "CURRENT ROW",
|
|
833
|
+
_groupBy: [
|
|
834
|
+
{ _column: {name: 'id', table: "Person"} },
|
|
835
|
+
],
|
|
836
|
+
_orderBy: [
|
|
837
|
+
{ _column: {name: 'id', table: "Person"} },
|
|
838
|
+
],
|
|
839
|
+
},
|
|
840
|
+
}
|
|
841
|
+
]
|
|
842
|
+
}
|
|
843
|
+
],
|
|
844
|
+
"_distinct": false,
|
|
845
|
+
"_for": undefined,
|
|
846
|
+
"_table": Person[TableMetadataSymbol],
|
|
847
|
+
"_type": "SELECT",
|
|
848
|
+
});
|
|
849
|
+
})
|
|
765
850
|
});
|
|
766
851
|
|
|
767
852
|
describe('Insert', () => {
|