@ts-awesome/orm 1.2.0 → 1.2.1-rc2
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.d.ts +2 -2
- package/dist/builder.js +33 -21
- package/dist/builder.js.map +1 -1
- package/dist/decorators.d.ts +2 -1
- package/dist/decorators.js +9 -1
- package/dist/decorators.js.map +1 -1
- package/dist/interfaces.d.ts +10 -0
- package/dist/reader.js +5 -2
- package/dist/reader.js.map +1 -1
- package/package.json +1 -1
- package/tests/builder.spec.ts +123 -2
- package/tests/models.ts +30 -2
- package/tests/reader.spec.ts +2 -2
package/dist/builder.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IBuildableQuery, IBuildableSelectQuery, IDeleteBuilder, IInsertBuilder, ISelectBuilder, ITableInfo, IUpdateBuilder, IUpsertBuilder, TableMetaProvider, IFieldInfo, IBuildableUpsertQuery, ITableRef, IBuildableDeleteQuery, IBuildableUpdateQuery, IBuildableInsertQuery, IIndexInfo } from './interfaces';
|
|
1
|
+
import { IBuildableQuery, IBuildableSelectQuery, IDeleteBuilder, IInsertBuilder, IOperandable, ISelectBuilder, ITableInfo, IUpdateBuilder, IUpsertBuilder, TableMetaProvider, IFieldInfo, IBuildableUpsertQuery, ITableRef, IBuildableDeleteQuery, IBuildableUpdateQuery, IBuildableInsertQuery, IIndexInfo } from './interfaces';
|
|
2
2
|
export interface IExpr {
|
|
3
3
|
_alias?: string;
|
|
4
4
|
_column?: string;
|
|
@@ -19,7 +19,7 @@ export declare class TableRef<T extends TableMetaProvider> implements ITableRef<
|
|
|
19
19
|
get indexes(): IIndexInfo<T>[];
|
|
20
20
|
}
|
|
21
21
|
export declare function readModelMeta<T extends TableMetaProvider>(Model: T, required?: boolean): ITableInfo;
|
|
22
|
-
export declare function Select<T extends TableMetaProvider>(_: T
|
|
22
|
+
export declare function Select<T extends TableMetaProvider>(_: T | IOperandable<T>, distinct?: boolean): ISelectBuilder<InstanceType<T>> & IBuildableSelectQuery;
|
|
23
23
|
export declare function Insert<T extends TableMetaProvider>(_: T): IInsertBuilder<InstanceType<T>> & IBuildableInsertQuery;
|
|
24
24
|
export declare function Upsert<T extends TableMetaProvider>(_: T): IUpsertBuilder<InstanceType<T>> & IBuildableUpsertQuery;
|
|
25
25
|
export declare function Update<T extends TableMetaProvider>(_: T): IUpdateBuilder<InstanceType<T>> & IBuildableUpdateQuery;
|
package/dist/builder.js
CHANGED
|
@@ -11,8 +11,8 @@ function proxy({ tableName: originalTableName, fields, primaryKey }, ignoreTable
|
|
|
11
11
|
if (!fields.has(property)) {
|
|
12
12
|
throw new Error(`Field '${property}' should be annotated with @dbField() or @dbManyField()`);
|
|
13
13
|
}
|
|
14
|
-
const { relatedTo, name } = fields.get(property);
|
|
15
|
-
if (!relatedTo) {
|
|
14
|
+
const { builder, relatedTo, name } = fields.get(property);
|
|
15
|
+
if (!relatedTo && !builder) {
|
|
16
16
|
const ref = resolveColumn(property, { tableName, fields });
|
|
17
17
|
if (ignoreTableName) {
|
|
18
18
|
ref.table = undefined;
|
|
@@ -22,6 +22,12 @@ function proxy({ tableName: originalTableName, fields, primaryKey }, ignoreTable
|
|
|
22
22
|
if (!primaryKey) {
|
|
23
23
|
throw new Error('@dbManyField() should be used on table with single field PK');
|
|
24
24
|
}
|
|
25
|
+
if (builder) {
|
|
26
|
+
const pk = new wrappers_1.ColumnWrapper({ table: tableName, name: primaryKey });
|
|
27
|
+
const query = builder(pk);
|
|
28
|
+
const stripped = Object.fromEntries(Object.entries(query).filter(([, value]) => typeof value !== 'function'));
|
|
29
|
+
return new wrappers_1.Operandable('SUBQUERY', [stripped]);
|
|
30
|
+
}
|
|
25
31
|
return new wrappers_1.Operandable('SUBQUERY', [{
|
|
26
32
|
_type: 'SELECT',
|
|
27
33
|
_columns: [
|
|
@@ -41,17 +47,19 @@ function proxy({ tableName: originalTableName, fields, primaryKey }, ignoreTable
|
|
|
41
47
|
}
|
|
42
48
|
});
|
|
43
49
|
}
|
|
44
|
-
function treeOf(_, tableInfo) {
|
|
50
|
+
function treeOf(_, tableInfo, alias) {
|
|
45
51
|
validateModel(_, tableInfo);
|
|
52
|
+
const tableName = alias !== null && alias !== void 0 ? alias : tableInfo.tableName;
|
|
46
53
|
return operators_1.and(...Object.keys(_)
|
|
47
|
-
.map(field => new wrappers_1.ColumnWrapper(resolveColumn(field, tableInfo)).eq(_[field])));
|
|
54
|
+
.map(field => new wrappers_1.ColumnWrapper(resolveColumn(field, { tableName, fields: tableInfo.fields })).eq(_[field])));
|
|
48
55
|
}
|
|
49
|
-
function columnsOf(_, { tableName, fields }) {
|
|
56
|
+
function columnsOf(_, { tableName: originaltableName, fields }, alias) {
|
|
50
57
|
_.forEach(field => {
|
|
51
|
-
if (!fields.has(field) || fields.get(field).relatedTo) {
|
|
58
|
+
if (!fields.has(field) || fields.get(field).relatedTo || fields.get(field).builder) {
|
|
52
59
|
throw new Error(`Field '${field}' should be decorated with @dbField`);
|
|
53
60
|
}
|
|
54
61
|
});
|
|
62
|
+
const tableName = alias !== null && alias !== void 0 ? alias : originaltableName;
|
|
55
63
|
return _.map(field => ({ _column: resolveColumn(field, { tableName, fields }) }));
|
|
56
64
|
}
|
|
57
65
|
function resolveColumn(property, { tableName, fields }) {
|
|
@@ -82,39 +90,39 @@ function validateFields(_, tableInfo) {
|
|
|
82
90
|
}
|
|
83
91
|
function where(_) {
|
|
84
92
|
const tree = typeof _ === 'function'
|
|
85
|
-
? _(proxy(this._table))
|
|
86
|
-
: treeOf(_, this._table);
|
|
93
|
+
? _(proxy(this._table, false, this._alias))
|
|
94
|
+
: treeOf(_, this._table, this._alias);
|
|
87
95
|
this._where = this._where || [];
|
|
88
96
|
this._where.push(tree);
|
|
89
97
|
return this;
|
|
90
98
|
}
|
|
91
99
|
function having(_) {
|
|
92
|
-
const tree = _(proxy(this._table));
|
|
100
|
+
const tree = _(proxy(this._table, false, this._alias));
|
|
93
101
|
this._having = this._having || [];
|
|
94
102
|
this._having.push(tree);
|
|
95
103
|
return this;
|
|
96
104
|
}
|
|
97
105
|
function columns(_) {
|
|
98
106
|
this._columns = typeof _ === 'function'
|
|
99
|
-
? _(proxy(this._table))
|
|
107
|
+
? _(proxy(this._table, false, this._alias))
|
|
100
108
|
: columnsOf(_, this._table);
|
|
101
109
|
return this;
|
|
102
110
|
}
|
|
103
111
|
function orderBy(_) {
|
|
104
112
|
this._orderBy = typeof _ === 'function'
|
|
105
|
-
? _(proxy(this._table))
|
|
113
|
+
? _(proxy(this._table, false, this._alias))
|
|
106
114
|
: columnsOf(_, this._table);
|
|
107
115
|
return this;
|
|
108
116
|
}
|
|
109
117
|
function groupBy(_) {
|
|
110
118
|
this._groupBy = typeof _ === 'function'
|
|
111
|
-
? _(proxy(this._table))
|
|
119
|
+
? _(proxy(this._table, false, this._alias))
|
|
112
120
|
: columnsOf(_, this._table);
|
|
113
121
|
return this;
|
|
114
122
|
}
|
|
115
123
|
function values(_) {
|
|
116
124
|
if (typeof _ === 'function') {
|
|
117
|
-
this._values = _(proxy(this._table));
|
|
125
|
+
this._values = _(proxy(this._table, false, this._alias));
|
|
118
126
|
}
|
|
119
127
|
else {
|
|
120
128
|
validateModel(_, this._table);
|
|
@@ -122,7 +130,7 @@ function values(_) {
|
|
|
122
130
|
.keys(_)
|
|
123
131
|
.filter(prop => this._table.fields.has(prop))
|
|
124
132
|
.map(prop => this._table.fields.get(prop))
|
|
125
|
-
.filter(({ relatedTo }) => relatedTo == null)
|
|
133
|
+
.filter(({ relatedTo, builder }) => relatedTo == null && builder == null)
|
|
126
134
|
.reduce((p, { getValue, kind, name }) => {
|
|
127
135
|
let value = getValue(_);
|
|
128
136
|
let wrapper = undefined;
|
|
@@ -164,8 +172,8 @@ function conflict(_) {
|
|
|
164
172
|
_columns = index.keyFields.map(prop => { var _a; return (_a = this._table.fields.get(prop)) === null || _a === void 0 ? void 0 : _a.name; });
|
|
165
173
|
if (index.where) {
|
|
166
174
|
const tree = typeof index.where === 'function'
|
|
167
|
-
? index.where(proxy(this._table, true))
|
|
168
|
-
: treeOf(index.where, this._table);
|
|
175
|
+
? index.where(proxy(this._table, true, this._alias))
|
|
176
|
+
: treeOf(index.where, this._table, this._alias);
|
|
169
177
|
_where = [tree];
|
|
170
178
|
}
|
|
171
179
|
}
|
|
@@ -197,7 +205,7 @@ function join(...args) {
|
|
|
197
205
|
_tableName: table.tableName,
|
|
198
206
|
_alias: alias === null || alias === void 0 ? void 0 : alias.tableName,
|
|
199
207
|
_type: 'INNER',
|
|
200
|
-
_condition: condition(proxy(this._table), proxy(table, undefined, alias === null || alias === void 0 ? void 0 : alias.tableName)),
|
|
208
|
+
_condition: condition(proxy(this._table, false, this._alias), proxy(table, undefined, alias === null || alias === void 0 ? void 0 : alias.tableName)),
|
|
201
209
|
});
|
|
202
210
|
return this;
|
|
203
211
|
}
|
|
@@ -209,7 +217,7 @@ function joinLeft(...args) {
|
|
|
209
217
|
_tableName: table.tableName,
|
|
210
218
|
_alias: alias === null || alias === void 0 ? void 0 : alias.tableName,
|
|
211
219
|
_type: 'LEFT',
|
|
212
|
-
_condition: condition(proxy(this._table), proxy(table, undefined, alias === null || alias === void 0 ? void 0 : alias.tableName)),
|
|
220
|
+
_condition: condition(proxy(this._table, false, this._alias), proxy(table, undefined, alias === null || alias === void 0 ? void 0 : alias.tableName)),
|
|
213
221
|
});
|
|
214
222
|
return this;
|
|
215
223
|
}
|
|
@@ -221,7 +229,7 @@ function joinRight(...args) {
|
|
|
221
229
|
_tableName: table.tableName,
|
|
222
230
|
_alias: alias === null || alias === void 0 ? void 0 : alias.tableName,
|
|
223
231
|
_type: 'RIGHT',
|
|
224
|
-
_condition: condition(proxy(this._table), proxy(table, undefined, alias === null || alias === void 0 ? void 0 : alias.tableName)),
|
|
232
|
+
_condition: condition(proxy(this._table, false, this._alias), proxy(table, undefined, alias === null || alias === void 0 ? void 0 : alias.tableName)),
|
|
225
233
|
});
|
|
226
234
|
return this;
|
|
227
235
|
}
|
|
@@ -233,7 +241,7 @@ function joinFull(...args) {
|
|
|
233
241
|
_tableName: table.tableName,
|
|
234
242
|
_alias: alias === null || alias === void 0 ? void 0 : alias.tableName,
|
|
235
243
|
_type: 'FULL OUTER',
|
|
236
|
-
_condition: condition(proxy(this._table), proxy(table, undefined, alias === null || alias === void 0 ? void 0 : alias.tableName)),
|
|
244
|
+
_condition: condition(proxy(this._table, false, this._alias), proxy(table, undefined, alias === null || alias === void 0 ? void 0 : alias.tableName)),
|
|
237
245
|
});
|
|
238
246
|
return this;
|
|
239
247
|
}
|
|
@@ -269,9 +277,13 @@ function readModelMeta(Model, required = true) {
|
|
|
269
277
|
}
|
|
270
278
|
exports.readModelMeta = readModelMeta;
|
|
271
279
|
function Select(_, distinct = false) {
|
|
280
|
+
function isAlias(x) {
|
|
281
|
+
return x && typeof x._alias === 'string';
|
|
282
|
+
}
|
|
272
283
|
return {
|
|
273
284
|
_type: 'SELECT',
|
|
274
|
-
_table: readModelMeta(_),
|
|
285
|
+
_table: readModelMeta(isAlias(_) ? _._operands[0] : _),
|
|
286
|
+
_alias: isAlias(_) ? _._alias : null,
|
|
275
287
|
_distinct: distinct,
|
|
276
288
|
columns,
|
|
277
289
|
join,
|
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/decorators.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IFieldInfo, WhereBuilder } from './interfaces';
|
|
1
|
+
import { IFieldInfo, WhereBuilder, SubQueryBuilder } from './interfaces';
|
|
2
2
|
interface IDBIndexMeta<T> {
|
|
3
3
|
fields: string[];
|
|
4
4
|
name: string;
|
|
@@ -20,5 +20,6 @@ interface IDBFilterFieldMeta {
|
|
|
20
20
|
interface IDBManyFieldMeta extends IDBFilterFieldMeta, Pick<IFieldInfo, 'nullable' | 'model' | 'kind'> {
|
|
21
21
|
}
|
|
22
22
|
export declare function dbFilterField(fieldMeta: IDBFilterFieldMeta): PropertyDecorator;
|
|
23
|
+
export declare function dbFilterField<T = number>(builder: SubQueryBuilder<T>): PropertyDecorator;
|
|
23
24
|
export declare function dbManyField(fieldMeta: IDBManyFieldMeta): PropertyDecorator;
|
|
24
25
|
export {};
|
package/dist/decorators.js
CHANGED
|
@@ -80,10 +80,18 @@ function dbField(...args) {
|
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
exports.dbField = dbField;
|
|
83
|
-
// noinspection JSUnusedGlobalSymbols
|
|
84
83
|
function dbFilterField(fieldMeta) {
|
|
85
84
|
return function (target, key) {
|
|
86
85
|
const { fields } = ensureTableInfo(target.constructor);
|
|
86
|
+
if (typeof fieldMeta === 'function') {
|
|
87
|
+
const name = key.toString();
|
|
88
|
+
fields.set(key.toString(), {
|
|
89
|
+
name,
|
|
90
|
+
builder: fieldMeta,
|
|
91
|
+
getValue: () => undefined,
|
|
92
|
+
});
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
87
95
|
const { valueField, keyField, table } = fieldMeta, rest = __rest(fieldMeta, ["valueField", "keyField", "table"]);
|
|
88
96
|
fields.set(key.toString(), Object.assign(Object.assign({}, rest), { name: valueField, relatedTo: {
|
|
89
97
|
keyField,
|
package/dist/decorators.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"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"}
|
package/dist/interfaces.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IExpression, IJoin, IOrderBy, IReference } from './intermediate';
|
|
2
|
+
import { Operandable } from "./wrappers";
|
|
2
3
|
export declare type DbValueType = string | number | boolean | Date | null | undefined;
|
|
3
4
|
export interface IDbField<T = any> {
|
|
4
5
|
readQuery?(name: string): string;
|
|
@@ -6,6 +7,9 @@ export interface IDbField<T = any> {
|
|
|
6
7
|
reader?(raw: DbValueType): T;
|
|
7
8
|
writer?(value: T): DbValueType;
|
|
8
9
|
}
|
|
10
|
+
export interface SubQueryBuilder<T = number> {
|
|
11
|
+
(value: Operandable<T>): IBuildableSubSelectQuery;
|
|
12
|
+
}
|
|
9
13
|
declare type Class = new (...args: any) => any;
|
|
10
14
|
export interface IFieldInfo {
|
|
11
15
|
primaryKey?: true;
|
|
@@ -16,6 +20,7 @@ export interface IFieldInfo {
|
|
|
16
20
|
tableName: string;
|
|
17
21
|
keyField: string;
|
|
18
22
|
};
|
|
23
|
+
builder?: SubQueryBuilder<any>;
|
|
19
24
|
sensitive?: true;
|
|
20
25
|
default?: DbValueType;
|
|
21
26
|
kind?: IDbField;
|
|
@@ -89,16 +94,19 @@ export interface Order {
|
|
|
89
94
|
}
|
|
90
95
|
export interface IBuildableWherePartial {
|
|
91
96
|
_table: ITableInfo;
|
|
97
|
+
_alias?: string;
|
|
92
98
|
_where?: any[];
|
|
93
99
|
_limit?: number;
|
|
94
100
|
}
|
|
95
101
|
export interface IBuildableValuesPartial {
|
|
96
102
|
_table: ITableInfo;
|
|
103
|
+
_alias?: string;
|
|
97
104
|
_values?: any;
|
|
98
105
|
}
|
|
99
106
|
export interface IBuildableSelectQuery {
|
|
100
107
|
_type: 'SELECT';
|
|
101
108
|
_table: ITableInfo;
|
|
109
|
+
_alias?: string;
|
|
102
110
|
_distinct?: boolean;
|
|
103
111
|
_columns?: IExpression[];
|
|
104
112
|
_joins?: IJoin[];
|
|
@@ -112,6 +120,7 @@ export interface IBuildableSelectQuery {
|
|
|
112
120
|
export interface IBuildableSubSelectQuery {
|
|
113
121
|
_type: 'SELECT';
|
|
114
122
|
_table: ITableInfo;
|
|
123
|
+
_alias?: string;
|
|
115
124
|
_distinct?: boolean;
|
|
116
125
|
_columns?: IExpression[];
|
|
117
126
|
_joins?: IJoin[];
|
|
@@ -127,6 +136,7 @@ export interface IBuildableInsertQuery {
|
|
|
127
136
|
export interface IBuildableUpsertQuery {
|
|
128
137
|
_type: 'UPSERT';
|
|
129
138
|
_table: ITableInfo;
|
|
139
|
+
_alias?: string;
|
|
130
140
|
_values?: any;
|
|
131
141
|
_where?: IExpression[];
|
|
132
142
|
_conflictExp?: {
|
package/dist/reader.js
CHANGED
|
@@ -34,9 +34,12 @@ function readScalar(data) {
|
|
|
34
34
|
return 0;
|
|
35
35
|
}
|
|
36
36
|
const raw = first[keys[0]];
|
|
37
|
-
|
|
37
|
+
if (raw === null) {
|
|
38
|
+
return 0;
|
|
39
|
+
}
|
|
40
|
+
const count = parseFloat(raw);
|
|
38
41
|
if (isNaN(count)) {
|
|
39
|
-
throw new Error(`
|
|
42
|
+
throw new Error(`Invalid scalar ${JSON.stringify(raw)}, number expected.`);
|
|
40
43
|
}
|
|
41
44
|
return count;
|
|
42
45
|
}
|
package/dist/reader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reader.js","sourceRoot":"","sources":["../src/reader.ts"],"names":[],"mappings":";;;;;;AACA,4EAAyC;AACzC,uCAAwC;AAExC,SAAS,OAAO,CAAO,CAAc,EAAE,QAAuB;IAC5D,MAAM,GAAG,GAAQ,EAAE,CAAC;IACpB,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAI,MAAM,KAAK,IAAI,CAAC,EAAE;QACpB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;KAClC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAKD,SAAgB,MAAM,CAA8B,IAA+B,EAAE,KAAgB,EAAE,SAAS,GAAG,KAAK;IACtH,IAAI,KAAK,KAAK,IAAI,EAAE;QAClB,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;KACzB;IAED,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,OAAO,IAAI,CAAC;KACb;IAED,OAAO,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AAC3C,CAAC;AAVD,wBAUC;AAED,SAAS,UAAU,CAAC,IAA+B;IACjD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;QACpB,OAAO,CAAC,CAAC;KACV;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;QACpB,OAAO,CAAC,CAAC;KACV;IAED,MAAM,GAAG,GAAQ,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"reader.js","sourceRoot":"","sources":["../src/reader.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/tests/builder.spec.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {alias, and, asc, Delete, desc, Insert, max, Select, sum, TableMetadataSymbol, Update, Upsert, of} from '../dist';
|
|
2
|
-
import { Employee, Person } from './models';
|
|
2
|
+
import { Employee, Person, Tag } from './models';
|
|
3
3
|
import { TableRef, readModelMeta } from '../dist/builder';
|
|
4
|
+
import {exists} from "../src";
|
|
4
5
|
|
|
5
6
|
|
|
6
7
|
const tableInfo = readModelMeta(Person);
|
|
@@ -169,7 +170,7 @@ describe('Select', () => {
|
|
|
169
170
|
});
|
|
170
171
|
|
|
171
172
|
describe('Where filter fields', () => {
|
|
172
|
-
it ('
|
|
173
|
+
it ('simple many to many', () => {
|
|
173
174
|
const query = Select(Person).where(({profiles}) => profiles.has('test'));
|
|
174
175
|
const expectation = [{
|
|
175
176
|
_operands: [
|
|
@@ -197,6 +198,77 @@ describe('Select', () => {
|
|
|
197
198
|
}];
|
|
198
199
|
expect(query._where).toStrictEqual(expectation);
|
|
199
200
|
});
|
|
201
|
+
|
|
202
|
+
it ('with builder', () => {
|
|
203
|
+
const query = Select(Person).where(({tags}) => tags.has('tag'));
|
|
204
|
+
const expectation = [{
|
|
205
|
+
_operands: [
|
|
206
|
+
"tag",
|
|
207
|
+
{
|
|
208
|
+
_operator: 'SUBQUERY',
|
|
209
|
+
_operands: [
|
|
210
|
+
{
|
|
211
|
+
_columns: [{_column: { table: "Tag", name: "name", wrapper: undefined}}],
|
|
212
|
+
_table: readModelMeta(Tag),
|
|
213
|
+
_alias: null,
|
|
214
|
+
_type: "SELECT",
|
|
215
|
+
_distinct: false,
|
|
216
|
+
_joins: [
|
|
217
|
+
{
|
|
218
|
+
_alias: undefined,
|
|
219
|
+
_tableName: "TagPerson",
|
|
220
|
+
_type: "INNER",
|
|
221
|
+
_condition: {
|
|
222
|
+
_operands: [
|
|
223
|
+
{
|
|
224
|
+
_operands: [
|
|
225
|
+
{
|
|
226
|
+
_column: {
|
|
227
|
+
name: 'id',
|
|
228
|
+
table: "Tag",
|
|
229
|
+
wrapper: undefined
|
|
230
|
+
}
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
_column: {
|
|
234
|
+
name: 'tag',
|
|
235
|
+
table: "TagPerson",
|
|
236
|
+
wrapper: undefined
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
],
|
|
240
|
+
_operator: '='
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
_operands: [
|
|
244
|
+
{
|
|
245
|
+
_column: {
|
|
246
|
+
name: 'person',
|
|
247
|
+
table: "TagPerson",
|
|
248
|
+
wrapper: undefined
|
|
249
|
+
}
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
_column: {
|
|
253
|
+
name: 'id',
|
|
254
|
+
table: "Person",
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
],
|
|
258
|
+
_operator: '='
|
|
259
|
+
},
|
|
260
|
+
],
|
|
261
|
+
_operator: 'AND'
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
]
|
|
265
|
+
}
|
|
266
|
+
]},
|
|
267
|
+
],
|
|
268
|
+
_operator: "IN",
|
|
269
|
+
}];
|
|
270
|
+
expect(query._where).toStrictEqual(expectation);
|
|
271
|
+
});
|
|
200
272
|
});
|
|
201
273
|
|
|
202
274
|
it('Having', () => {
|
|
@@ -262,6 +334,55 @@ describe('Select', () => {
|
|
|
262
334
|
const query = Select(Person).offset(offset);
|
|
263
335
|
expect(query._offset).toBe(offset);
|
|
264
336
|
});
|
|
337
|
+
|
|
338
|
+
it('subquery on self', () => {
|
|
339
|
+
const query = Select(Person).where(({id}) => exists(Select(alias(Person, 'person_filter')).where(({id: _}) => _.eq(id))));
|
|
340
|
+
|
|
341
|
+
{
|
|
342
|
+
const x = (query as any)._where[0]._operands[0];
|
|
343
|
+
delete x.columns;
|
|
344
|
+
delete x.groupBy;
|
|
345
|
+
delete x.having;
|
|
346
|
+
delete x.join;
|
|
347
|
+
delete x.joinFull;
|
|
348
|
+
delete x.joinLeft;
|
|
349
|
+
delete x.joinRight;
|
|
350
|
+
delete x.limit;
|
|
351
|
+
delete x.offset;
|
|
352
|
+
delete x.orderBy;
|
|
353
|
+
delete x.where;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
const expectation = {
|
|
357
|
+
_where: [{
|
|
358
|
+
"_operands": [{
|
|
359
|
+
"_alias": "person_filter",
|
|
360
|
+
"_distinct": false,
|
|
361
|
+
"_table": Person[TableMetadataSymbol],
|
|
362
|
+
"_type": "SELECT",
|
|
363
|
+
"_where": [{
|
|
364
|
+
"_operands": [{
|
|
365
|
+
"_column": {
|
|
366
|
+
"name": "id",
|
|
367
|
+
"table": "person_filter",
|
|
368
|
+
"wrapper": undefined,
|
|
369
|
+
},
|
|
370
|
+
}, {
|
|
371
|
+
"_column": {
|
|
372
|
+
"name": "id",
|
|
373
|
+
"table": "Person",
|
|
374
|
+
"wrapper": undefined,
|
|
375
|
+
},
|
|
376
|
+
}],
|
|
377
|
+
"_operator": "=",
|
|
378
|
+
}]
|
|
379
|
+
}],
|
|
380
|
+
"_operator": "EXISTS",
|
|
381
|
+
}]
|
|
382
|
+
};
|
|
383
|
+
|
|
384
|
+
expect(query._where).toStrictEqual(expectation._where);
|
|
385
|
+
})
|
|
265
386
|
});
|
|
266
387
|
|
|
267
388
|
describe('Insert', () => {
|
package/tests/models.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { dbField, dbTable, IDbField, dbFilterField } from '../
|
|
1
|
+
import { dbField, dbTable, IDbField, dbFilterField, and, Select } from '../src';
|
|
2
2
|
|
|
3
3
|
const UUID: IDbField = {}
|
|
4
4
|
|
|
@@ -24,7 +24,35 @@ export class Person {
|
|
|
24
24
|
keyField: 'person',
|
|
25
25
|
valueField: 'title',
|
|
26
26
|
})
|
|
27
|
-
profiles
|
|
27
|
+
profiles?: string[];
|
|
28
|
+
|
|
29
|
+
@dbFilterField(primary => Select(Tag)
|
|
30
|
+
.columns((x) => [x.name])
|
|
31
|
+
.join(TagPerson, (a ,b) => and(a.id.eq(b.tag), b.person.eq(primary)))
|
|
32
|
+
)
|
|
33
|
+
tags?: string[];
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@dbTable('Tag')
|
|
37
|
+
export class Tag {
|
|
38
|
+
@dbField({
|
|
39
|
+
primaryKey: true,
|
|
40
|
+
autoIncrement: true
|
|
41
|
+
})
|
|
42
|
+
public id!: number;
|
|
43
|
+
@dbField public name!: string;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@dbTable('TagPerson')
|
|
47
|
+
export class TagPerson {
|
|
48
|
+
@dbField({
|
|
49
|
+
primaryKey: true,
|
|
50
|
+
})
|
|
51
|
+
public person!: number;
|
|
52
|
+
@dbField({
|
|
53
|
+
primaryKey: true,
|
|
54
|
+
})
|
|
55
|
+
public tag!: number;
|
|
28
56
|
}
|
|
29
57
|
|
|
30
58
|
@dbTable('Employee')
|
package/tests/reader.spec.ts
CHANGED
|
@@ -96,13 +96,13 @@ describe('DbReader', () => {
|
|
|
96
96
|
expect(emptyData).toBe(0);
|
|
97
97
|
expect(() => {
|
|
98
98
|
reader([{field: fieldValue as any}], true)
|
|
99
|
-
}).toThrowError(`
|
|
99
|
+
}).toThrowError(`Invalid scalar "${fieldValue}", number expected.`);
|
|
100
100
|
});
|
|
101
101
|
|
|
102
102
|
it('read scalar from invalid data', () => {
|
|
103
103
|
const fieldValue = 'string';
|
|
104
104
|
expect(() => {
|
|
105
105
|
reader([{field: fieldValue as any}], true)
|
|
106
|
-
}).toThrowError(`
|
|
106
|
+
}).toThrowError(`Invalid scalar "${fieldValue}", number expected.`);
|
|
107
107
|
});
|
|
108
108
|
});
|