@ts-awesome/orm 1.8.0-rc.0 → 2.0.0-alpha.1

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 CHANGED
@@ -1,13 +1,5 @@
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';
1
+ import { ColumnsOrIndexesList, ColumnsOrIndexesOrOrderList, GroupByBuilder, IBuildableDeleteQuery, IBuildableInsertQuery, IBuildableSelectQuery, IBuildableUpdateQuery, IBuildableUpsertQuery, IDeleteBuilder, IFieldInfo, IIndexInfo, IInsertBuilder, IOperandable, ISelectBuilder, ITableInfo, ITableRef, IUpdateBuilder, IUpsertBuilder, OrderBuilder, SelectForOperation, TableMetaProvider } from './interfaces';
2
2
  import { IWindowDefinition } from "./intermediate";
3
- export interface IExpr {
4
- _alias?: string;
5
- _column?: string;
6
- _func?: string;
7
- _args?: IExpr[];
8
- _operator?: string;
9
- _operands?: IExpr[] | [IBuildableQuery];
10
- }
11
3
  export declare class TableRef<T extends TableMetaProvider> implements ITableRef<T> {
12
4
  private readonly info;
13
5
  private readonly alias;
@@ -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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"}
@@ -0,0 +1,55 @@
1
+ import { IColumnRef } from './intermediate';
2
+ import { DbValueType, IBuildableDeleteQuery, IBuildableInsertQuery, IBuildableQuery, IBuildableSelectQuery, IBuildableUpdateQuery, IBuildableUpsertQuery, WithParams } from './interfaces';
3
+ import { BaseCompiler } from "./base";
4
+ export interface ISqlQueryWithNamedParams extends WithParams {
5
+ sql: string;
6
+ params?: {
7
+ [key: string]: DbValueType;
8
+ };
9
+ }
10
+ export interface ISqlEscaper {
11
+ /**
12
+ * Escapes a literal value for use in SQL queries
13
+ * @param value The value to escape
14
+ * @returns Escaped SQL literal
15
+ */
16
+ escapeLiteral(value: string): string;
17
+ /**
18
+ * Escapes an identifier (like table or column names) for use in SQL queries
19
+ * @param id The identifier to escape
20
+ * @returns Escaped SQL identifier
21
+ */
22
+ escapeIdentifier(id: string): string;
23
+ /**
24
+ * Escapes a column name for use in SQL queries
25
+ * @param name The column name to escape
26
+ * @returns Escaped column name
27
+ */
28
+ escapeColumnName(name: string): string;
29
+ /**
30
+ * Escapes a table name for use in SQL queries
31
+ * @param table The table name to escape
32
+ * @returns Escaped table name
33
+ */
34
+ escapeTableName(table: string): string;
35
+ /**
36
+ * Escapes a column reference (which may include a table qualifier)
37
+ * @param ref Column reference object containing name and optional table
38
+ * @returns Escaped column reference
39
+ */
40
+ escapeColumnRef(ref: IColumnRef): string;
41
+ }
42
+ export type SQLDialect = 'ansi' | 'sql:2008' | 'postgresql' | 'sqlite' | 'mysql' | 'oracle' | 'tsql' | 'firebird';
43
+ export declare function configureCompiler(dialect: SQLDialect, escaper: ISqlEscaper): {
44
+ SelectCompiler: (query: IBuildableSelectQuery) => ISqlQueryWithNamedParams;
45
+ InsertCompiler: ({ _values, _table, _columns }: IBuildableInsertQuery) => ISqlQueryWithNamedParams;
46
+ UpdateCompiler: ({ _values, _where, _table, _columns }: IBuildableUpdateQuery) => ISqlQueryWithNamedParams;
47
+ UpsertCompiler: ({ _values, _table, _conflictExp, _columns }: IBuildableUpsertQuery) => ISqlQueryWithNamedParams;
48
+ DeleteCompiler: ({ _where, _table, _columns }: IBuildableDeleteQuery) => ISqlQueryWithNamedParams;
49
+ };
50
+ export declare class SqlCompiler extends BaseCompiler<ISqlQueryWithNamedParams> {
51
+ private escaper;
52
+ private dialect;
53
+ constructor(escaper: ISqlEscaper, dialect?: SQLDialect);
54
+ compile(query: IBuildableQuery): ISqlQueryWithNamedParams;
55
+ }
@@ -0,0 +1,481 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SqlCompiler = exports.configureCompiler = void 0;
13
+ const inversify_1 = require("inversify");
14
+ const base_1 = require("./base");
15
+ function configureCompiler(dialect, escaper) {
16
+ function getParamNameFor(id) {
17
+ return `p${id}`;
18
+ }
19
+ const sqlCompiler = {
20
+ _windowCount: 0,
21
+ _windowMap: new Map(),
22
+ _paramCount: 0,
23
+ _paramMap: new Map(),
24
+ compileOrderExp(expr, columns) {
25
+ if (Array.isArray(expr)) {
26
+ return expr.map(item => this.compileOrderExp(item, columns)).join(', ');
27
+ }
28
+ const { _column, _order, _nulls } = expr;
29
+ const { _alias } = expr;
30
+ let orderByColumn;
31
+ if (typeof _column === 'number') {
32
+ orderByColumn = _column;
33
+ }
34
+ else if (typeof _alias === 'string') {
35
+ let idx = 0;
36
+ for (const column of columns) {
37
+ idx++;
38
+ if (typeof column === 'object' && '_alias' in column && column._alias === _alias) {
39
+ orderByColumn = idx.toString();
40
+ break;
41
+ }
42
+ }
43
+ }
44
+ else if (_column) {
45
+ let idx = 0;
46
+ for (const column of columns) {
47
+ idx++;
48
+ if (typeof column === 'object' && '_column' in column && _column) {
49
+ if (column._column.name === _column.name && column._column.table === _column.table) {
50
+ orderByColumn = idx.toString();
51
+ break;
52
+ }
53
+ }
54
+ }
55
+ if (!orderByColumn) {
56
+ orderByColumn = escaper.escapeColumnRef(_column);
57
+ }
58
+ }
59
+ if (orderByColumn == null) {
60
+ throw new Error('Invalid order by expr' + JSON.stringify(expr));
61
+ }
62
+ return (orderByColumn + ' '
63
+ + (_order !== null && _order !== void 0 ? _order : 'ASC') + ' '
64
+ + (_nulls === 'FIRST' ? `NULLS FIRST` : _nulls === 'LAST' ? 'NULLS LAST' : '')).trim();
65
+ },
66
+ compileGroupByExp(expr, columns) {
67
+ if (Array.isArray(expr)) {
68
+ return expr.map(item => this.compileGroupByExp(item, columns)).join(', ');
69
+ }
70
+ const { _column } = expr;
71
+ const { _alias } = expr;
72
+ let groupByColumn;
73
+ if (typeof _column === 'number') {
74
+ groupByColumn = _column;
75
+ }
76
+ else if (typeof _alias === 'string') {
77
+ let idx = 0;
78
+ for (const column of columns) {
79
+ idx++;
80
+ if (typeof column === 'object' && '_alias' in column && column._alias === _alias) {
81
+ groupByColumn = idx.toString();
82
+ break;
83
+ }
84
+ }
85
+ }
86
+ else if (_column) {
87
+ let idx = 0;
88
+ for (const column of columns) {
89
+ idx++;
90
+ if (typeof column === 'object' && '_column' in column && _column) {
91
+ if (column._column.name === _column.name && column._column.table === _column.table) {
92
+ groupByColumn = idx.toString();
93
+ break;
94
+ }
95
+ }
96
+ }
97
+ if (!groupByColumn) {
98
+ groupByColumn = escaper.escapeColumnRef(_column);
99
+ }
100
+ }
101
+ if (groupByColumn == null) {
102
+ throw new Error('Invalid order by expr' + JSON.stringify(expr));
103
+ }
104
+ return groupByColumn;
105
+ },
106
+ processWindow(def) {
107
+ var _a, _b;
108
+ const _extends = def._extends ? this.processWindow(def._extends) : null;
109
+ const _hash = [_extends, def._mode, def._start, def._end, def._exclusion, this.compileExp((_a = def._groupBy) !== null && _a !== void 0 ? _a : null), this.compileExp((_b = def._orderBy) !== null && _b !== void 0 ? _b : null)].join(':');
110
+ if (!this._windowMap.has(_hash)) {
111
+ this._windowMap.set(_hash, [`w${++this._windowCount}`, {
112
+ ...def,
113
+ _extends,
114
+ }]);
115
+ }
116
+ const [_id] = this._windowMap.get(_hash);
117
+ return _id;
118
+ },
119
+ // generic
120
+ compileExp(expr, nativeArrays = false) {
121
+ if (Array.isArray(expr)) {
122
+ const inner = expr.map(item => this.compileExp(item)).join(', ');
123
+ return nativeArrays ? `ARRAY [${inner}]` : `(${inner})`;
124
+ }
125
+ if (expr === null)
126
+ return 'NULL';
127
+ if (expr === 'NULL')
128
+ return 'NULL';
129
+ if (expr === '*')
130
+ return '*';
131
+ const { _column, _func, _args, _operator, _operands, _named, _const, _value } = expr;
132
+ if (_const !== undefined) {
133
+ return escaper.escapeLiteral(_const);
134
+ }
135
+ if (_named !== undefined) {
136
+ if (!/^[a-z_][a-z0-9_$]*$/i.test(_named)) {
137
+ throw new Error(`Invalid identifier ${JSON.stringify(_named)}`);
138
+ }
139
+ return `:${_named}`;
140
+ }
141
+ if (_column !== undefined) {
142
+ return escaper.escapeColumnRef(_column);
143
+ }
144
+ if (_value !== undefined) {
145
+ return this.compileExp(_value);
146
+ }
147
+ if (_func && _args) {
148
+ if (_func.toUpperCase() === 'COUNT' && _args[0] === 'DISTINCT') {
149
+ return `${_func}(DISTINCT ${_args.slice(1).map((arg) => this.compileExp(arg)).join(', ')})`;
150
+ }
151
+ const { _over, _filter } = expr;
152
+ if (_over == null) {
153
+ return `${_func}(${_args.map((arg) => this.compileExp(arg)).join(', ')})`;
154
+ }
155
+ return [
156
+ `${_func}(${_args.map((arg) => this.compileExp(arg)).join(', ')})`,
157
+ _filter == null ? ' ' : ` FILTER (WHERE ${this.compileExp(_filter)}) `,
158
+ `OVER ${escaper.escapeIdentifier(this.processWindow(_over))}`
159
+ ].join('');
160
+ }
161
+ if (_operator && _operands) {
162
+ // noinspection FallThroughInSwitchStatementJS
163
+ switch (_operator) {
164
+ case 'NULL':
165
+ return 'NULL';
166
+ case 'NOT':
167
+ return `NOT (${this.compileExp(_operands[0])})`;
168
+ case 'ANY':
169
+ case 'ALL':
170
+ case 'EXISTS':
171
+ if (_operands[0]._table) {
172
+ return `${_operator} (${SubSelectBuilder(_operands[0])})`;
173
+ }
174
+ else {
175
+ return `${_operator} (${this.compileExp(_operands[0])})`;
176
+ }
177
+ case 'SUBQUERY':
178
+ return `(${SubSelectBuilder(_operands[0])})`;
179
+ case 'BETWEEN':
180
+ return `(${this.compileExp(_operands[0])} BETWEEN ${this.compileExp(_operands[1])} AND ${this.compileExp(_operands[2])})`;
181
+ case 'CAST':
182
+ return `CAST(${this.compileExp(_operands[0], nativeArrays || /\[]$/.test(_operands[1]))} AS ${_operands[1]})`;
183
+ case 'CASE':
184
+ return `CASE ${_operands.map((x) => 'else' in x
185
+ ? `ELSE ${this.compileExp(x.else)}`
186
+ : `WHEN ${this.compileExp(x.when)} THEN ${this.compileExp(x.then)}`).join(' ')} END`;
187
+ case 'IN': {
188
+ const ops = _operands;
189
+ if (ops.length === 2 && Array.isArray(ops[1])) {
190
+ const values = ops[1];
191
+ if (values.length === 0) {
192
+ return `(TRUE = FALSE)`;
193
+ }
194
+ }
195
+ }
196
+ // eslint-disable-next-line no-fallthrough
197
+ default:
198
+ return `(${_operands.map(operand => this.compileExp(operand)).join(` ${_operator} `)})`;
199
+ }
200
+ }
201
+ let wrapper = undefined;
202
+ if (typeof expr === 'object' && expr.value !== undefined) {
203
+ wrapper = expr.wrapper;
204
+ expr = expr.value;
205
+ }
206
+ else if (expr instanceof Date) {
207
+ expr = expr.toISOString();
208
+ }
209
+ else if (typeof expr === 'object') {
210
+ throw new Error(`Property "value" is required, got ${JSON.stringify(expr)}`);
211
+ }
212
+ if (expr === null) {
213
+ return 'NULL';
214
+ }
215
+ if (wrapper) {
216
+ return this.compileExp(wrapper(expr));
217
+ }
218
+ if (!this._paramMap.has(expr)) {
219
+ this._paramMap.set(expr, this._paramCount++);
220
+ }
221
+ return `:${getParamNameFor(this._paramMap.get(expr))}`;
222
+ },
223
+ processColumns(tableName, columns) {
224
+ if (!Array.isArray(columns) || columns.length < 1) {
225
+ return escaper.escapeTableName(tableName) + '.*';
226
+ }
227
+ return columns.map((column) => {
228
+ const { _alias, _operands } = column;
229
+ if (_alias) {
230
+ return `${this.compileExp(_operands)} AS ${escaper.escapeIdentifier(_alias)}`;
231
+ }
232
+ return typeof column === 'string' ? column : this.compileExp(column);
233
+ }).join(', ');
234
+ },
235
+ resetParams() {
236
+ this._paramMap = new Map();
237
+ this._paramCount = 0;
238
+ },
239
+ collectParams() {
240
+ const params = {};
241
+ sqlCompiler._paramMap.forEach((value, key) => {
242
+ params[getParamNameFor(value)] = key;
243
+ });
244
+ return params;
245
+ }
246
+ };
247
+ function SubSelectBuilder({ _columns, _distinct, _table, _where, _groupBy, _having, _joins, _alias, _operators }) {
248
+ const sql = [
249
+ 'SELECT',
250
+ _distinct === true ? 'DISTINCT' : 'ALL',
251
+ sqlCompiler.processColumns(_alias || _table.tableName, _columns),
252
+ 'FROM',
253
+ ('_type' in _table && _table._type === 'SELECT') ? `( ${SubSelectBuilder(_table)} )` : escaper.escapeTableName(_table.tableName),
254
+ _alias ? `AS ${escaper.escapeIdentifier(_alias)}` : '',
255
+ ];
256
+ if (Array.isArray(_joins) && _joins.length) {
257
+ for (const { _tableName, _condition, _type = 'INNER', _alias } of _joins) {
258
+ sql.push(_type, 'JOIN', escaper.escapeTableName(_tableName), _alias ? `AS ${escaper.escapeIdentifier(_alias)}` : '', 'ON', sqlCompiler.compileExp(_condition));
259
+ }
260
+ }
261
+ if (Array.isArray(_where) && _where.length) {
262
+ sql.push('WHERE', sqlCompiler.compileExp({
263
+ _operator: 'AND',
264
+ _operands: _where
265
+ }));
266
+ }
267
+ if (Array.isArray(_groupBy) && _groupBy.length) {
268
+ sql.push('GROUP BY', sqlCompiler.compileGroupByExp(_groupBy, _columns));
269
+ }
270
+ if (Array.isArray(_having) && _having.length) {
271
+ sql.push('HAVING', sqlCompiler.compileExp(_having));
272
+ }
273
+ if (sqlCompiler._windowMap.size) {
274
+ const defs = [];
275
+ for (const [id, def] of sqlCompiler._windowMap.values()) {
276
+ const win = [];
277
+ win.push(escaper.escapeIdentifier(id), 'AS', '(');
278
+ if (typeof def._extends === 'string') {
279
+ win.push(escaper.escapeIdentifier(def._extends));
280
+ }
281
+ if (def._groupBy) {
282
+ win.push('PARTITION BY', def._groupBy.map(item => sqlCompiler.compileExp(item)).join(', '));
283
+ }
284
+ if (def._orderBy) {
285
+ win.push('ORDER BY', sqlCompiler.compileOrderExp(def._orderBy, _columns));
286
+ }
287
+ if (def._mode) {
288
+ win.push(def._mode);
289
+ if (def._end == null) {
290
+ win.push(def._start);
291
+ }
292
+ else {
293
+ win.push('BETWEEN', def._start, 'AND', def._end);
294
+ }
295
+ if (def._exclusion) {
296
+ win.push('EXCLUDE', def._exclusion);
297
+ }
298
+ }
299
+ win.push(')');
300
+ defs.push(win.join(' '));
301
+ }
302
+ sql.push('WINDOW', defs.join(', '));
303
+ sqlCompiler._windowCount = 0;
304
+ sqlCompiler._windowMap = new Map();
305
+ }
306
+ if (Array.isArray(_operators)) {
307
+ for (const { _operator, _distinct, _operand } of _operators) {
308
+ sql.push(_operator, _distinct ? 'DISTINCT' : 'ALL', '(', SubSelectBuilder(_operand), ')');
309
+ }
310
+ }
311
+ return sql.filter(x => x).join(' ');
312
+ }
313
+ function SelectCompiler(query) {
314
+ sqlCompiler.resetParams();
315
+ let sql = SubSelectBuilder(query);
316
+ const { _orderBy, _limit, _offset, _for, _columns } = query;
317
+ if (Array.isArray(_orderBy) && _orderBy.length) {
318
+ sql += ' ORDER BY ' + sqlCompiler.compileOrderExp(_orderBy, _columns);
319
+ }
320
+ switch (dialect) {
321
+ // MySQL/SQLite only supports `LIMIT 10 OFFSET 20`
322
+ case 'mysql':
323
+ case 'sqlite':
324
+ if (_limit) {
325
+ sql += ' LIMIT ' + sqlCompiler.compileExp(_limit) + ' ';
326
+ }
327
+ if (_offset) {
328
+ sql += ' OFFSET ' + sqlCompiler.compileExp(_offset) + ' ';
329
+ }
330
+ break;
331
+ // ANSI SQL (SQL:2008 and later), supported by PostgreSQL 8.4+, Oracle 12c+, SQL Server 2012+, Firebase etc
332
+ // Firebase does not support `LIMIT 10 OFFSET 20`
333
+ default:
334
+ if (_offset) {
335
+ sql += ' OFFSET ' + sqlCompiler.compileExp(_offset) + ' ROWS';
336
+ }
337
+ if (_limit) {
338
+ sql += ' FETCH FIRST ' + sqlCompiler.compileExp(_limit) + ' ROWS ONLY';
339
+ }
340
+ }
341
+ if (_for) {
342
+ sql += ' FOR ' + _for;
343
+ }
344
+ const params = sqlCompiler.collectParams();
345
+ return {
346
+ sql,
347
+ params
348
+ };
349
+ }
350
+ function InsertCompiler({ _values, _table, _columns }) {
351
+ sqlCompiler.resetParams();
352
+ const keys = Object.keys(_values).filter(k => _values[k] !== undefined);
353
+ const fields = keys.map(field => escaper.escapeColumnName(field));
354
+ // ALL DEFAULT VALUES special case
355
+ if (fields.length === 0) {
356
+ return {
357
+ sql: `INSERT INTO ${escaper.escapeTableName(_table.tableName)} DEFAULT` +
358
+ ` VALUES RETURNING ${sqlCompiler.processColumns(_table.tableName, _columns)};`,
359
+ params: {}
360
+ };
361
+ }
362
+ const values = keys.map(field => sqlCompiler.compileExp(_values[field], true));
363
+ const sql = `INSERT INTO ${escaper.escapeTableName(_table.tableName)}` +
364
+ ` (${fields.join(', ')})` +
365
+ ` VALUES (${values.join(', ')})` +
366
+ ` RETURNING ${sqlCompiler.processColumns(_table.tableName, _columns)};`;
367
+ const params = sqlCompiler.collectParams();
368
+ return {
369
+ sql,
370
+ params
371
+ };
372
+ }
373
+ function UpsertCompiler({ _values, _table, _conflictExp, _columns }) {
374
+ sqlCompiler.resetParams();
375
+ const keys = Object.keys(_values).filter(k => _values[k] !== undefined);
376
+ const fields = keys.map(field => escaper.escapeColumnName(field));
377
+ const values = keys.map(field => sqlCompiler.compileExp(_values[field], true));
378
+ const updateValues = keys
379
+ .filter(k => _conflictExp === null || _conflictExp === void 0 ? void 0 : _conflictExp._columns.every(x => x != k))
380
+ .map(field => `${escaper.escapeColumnName(field)} = ${sqlCompiler.compileExp(_values[field])}`);
381
+ let sql = `INSERT INTO ${escaper.escapeTableName(_table.tableName)} (${fields.join(', ')})` +
382
+ ` VALUES (${values.join(', ')})` +
383
+ ` ON CONFLICT`;
384
+ if (!_conflictExp) {
385
+ sql += ` DO NOTHING`;
386
+ }
387
+ else {
388
+ sql += ` (${_conflictExp._columns.map((c) => escaper.escapeColumnName(c)).join(',')})`;
389
+ if (Array.isArray(_conflictExp._where) && _conflictExp._where.length > 0) {
390
+ sql += ` WHERE ${sqlCompiler.compileExp({
391
+ _operator: 'AND',
392
+ _operands: _conflictExp._where
393
+ })}`;
394
+ }
395
+ sql += ` DO UPDATE SET ${updateValues.join(', ')}`;
396
+ }
397
+ // LIMIT is not supported in INSERT/UPSERT
398
+ sql += ` RETURNING ${sqlCompiler.processColumns(_table.tableName, _columns)};`;
399
+ const params = sqlCompiler.collectParams();
400
+ return {
401
+ sql,
402
+ params
403
+ };
404
+ }
405
+ function UpdateCompiler({ _values, _where, _table, _columns }) {
406
+ sqlCompiler.resetParams();
407
+ const values = Object
408
+ .keys(_values)
409
+ .filter(field => _values[field] !== undefined)
410
+ .map(field => `${escaper.escapeColumnName(field)} = ${sqlCompiler.compileExp(_values[field], true)}`);
411
+ let sql = `UPDATE ${escaper.escapeTableName(_table.tableName)} SET ${values.join(', ')}`;
412
+ if (Array.isArray(_where) && _where.length > 0) {
413
+ sql += ` WHERE ${sqlCompiler.compileExp({
414
+ _operator: 'AND',
415
+ _operands: _where
416
+ })}`;
417
+ }
418
+ // LIMIT is not supported in UPDATE
419
+ sql += ` RETURNING ${sqlCompiler.processColumns(_table.tableName, _columns)};`;
420
+ const params = sqlCompiler.collectParams();
421
+ return {
422
+ sql,
423
+ params
424
+ };
425
+ }
426
+ function DeleteCompiler({ _where, _table, _columns }) {
427
+ sqlCompiler.resetParams();
428
+ let sql = `DELETE FROM ${escaper.escapeTableName(_table.tableName)}`;
429
+ if (Array.isArray(_where) && _where.length > 0) {
430
+ sql += ` WHERE ${sqlCompiler.compileExp({
431
+ _operator: 'AND',
432
+ _operands: _where
433
+ })}`;
434
+ }
435
+ // LIMIT is not supported in DELETE
436
+ sql += ` RETURNING ${sqlCompiler.processColumns(_table.tableName, _columns)};`;
437
+ const params = sqlCompiler.collectParams();
438
+ return {
439
+ sql,
440
+ params
441
+ };
442
+ }
443
+ return {
444
+ SelectCompiler,
445
+ InsertCompiler,
446
+ UpdateCompiler,
447
+ UpsertCompiler,
448
+ DeleteCompiler,
449
+ };
450
+ }
451
+ exports.configureCompiler = configureCompiler;
452
+ let SqlCompiler = class SqlCompiler extends base_1.BaseCompiler {
453
+ constructor(escaper, dialect = 'ansi') {
454
+ super();
455
+ this.escaper = escaper;
456
+ this.dialect = dialect;
457
+ }
458
+ compile(query) {
459
+ const { SelectCompiler, InsertCompiler, UpdateCompiler, UpsertCompiler, DeleteCompiler } = configureCompiler(this.dialect, this.escaper);
460
+ switch (query._type) {
461
+ case 'SELECT':
462
+ return SelectCompiler(query);
463
+ case 'INSERT':
464
+ return InsertCompiler(query);
465
+ case 'UPSERT':
466
+ return UpsertCompiler(query);
467
+ case 'UPDATE':
468
+ return UpdateCompiler(query);
469
+ case 'DELETE':
470
+ return DeleteCompiler(query);
471
+ default:
472
+ throw new Error('Unsupported query ' + query);
473
+ }
474
+ }
475
+ };
476
+ SqlCompiler = __decorate([
477
+ (0, inversify_1.injectable)(),
478
+ __metadata("design:paramtypes", [Object, String])
479
+ ], SqlCompiler);
480
+ exports.SqlCompiler = SqlCompiler;
481
+ //# sourceMappingURL=compiler.js.map