taon-type-sql 21.0.12 → 21.0.16
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/browser/package.json +1 -1
- package/browser-prod/README.md +24 -0
- package/browser-prod/fesm2022/taon-type-sql-browser.mjs +859 -0
- package/browser-prod/fesm2022/taon-type-sql-browser.mjs.map +1 -0
- package/browser-prod/package.json +23 -0
- package/browser-prod/types/taon-type-sql-browser.d.ts +254 -0
- package/browser-prod.split-namespaces.json +4 -0
- package/lib/build-info._auto-generated_.d.ts +5 -1
- package/lib/build-info._auto-generated_.js +6 -2
- package/lib/build-info._auto-generated_.js.map +1 -1
- package/lib/env/env.angular-node-app.d.ts +30 -30
- package/lib/env/env.angular-node-app.js +32 -32
- package/lib/env/env.angular-node-app.js.map +1 -1
- package/lib/env/env.docs-webapp.d.ts +30 -30
- package/lib/env/env.docs-webapp.js +32 -32
- package/lib/env/env.docs-webapp.js.map +1 -1
- package/lib/env/env.electron-app.d.ts +30 -30
- package/lib/env/env.electron-app.js +32 -32
- package/lib/env/env.electron-app.js.map +1 -1
- package/lib/env/env.mobile-app.d.ts +30 -30
- package/lib/env/env.mobile-app.js +32 -32
- package/lib/env/env.mobile-app.js.map +1 -1
- package/lib/env/env.npm-lib-and-cli-tool.d.ts +30 -30
- package/lib/env/env.npm-lib-and-cli-tool.js +32 -32
- package/lib/env/env.npm-lib-and-cli-tool.js.map +1 -1
- package/lib/env/env.vscode-plugin.d.ts +30 -30
- package/lib/env/env.vscode-plugin.js +32 -32
- package/lib/env/env.vscode-plugin.js.map +1 -1
- package/lib/index._auto-generated_.js +1 -1
- package/lib/index._auto-generated_.js.map +1 -1
- package/lib/migrations/index.d.ts +1 -0
- package/lib/migrations/index.js +19 -0
- package/lib/migrations/index.js.map +1 -0
- package/lib/migrations/migrations_index._auto-generated_.d.ts +0 -0
- package/lib/migrations/migrations_index._auto-generated_.js +4 -0
- package/lib/migrations/migrations_index._auto-generated_.js.map +1 -0
- package/lib/package.json +4 -0
- package/lib-prod/build-info._auto-generated_.d.ts +24 -0
- package/lib-prod/build-info._auto-generated_.js +30 -0
- package/lib-prod/build-info._auto-generated_.js.map +1 -0
- package/lib-prod/builder/column/basic-column.d.ts +8 -0
- package/lib-prod/builder/column/basic-column.js +15 -0
- package/lib-prod/builder/column/basic-column.js.map +1 -0
- package/lib-prod/builder/column/boolean-column.d.ts +9 -0
- package/lib-prod/builder/column/boolean-column.js +15 -0
- package/lib-prod/builder/column/boolean-column.js.map +1 -0
- package/lib-prod/builder/column/comparable-column.d.ts +18 -0
- package/lib-prod/builder/column/comparable-column.js +42 -0
- package/lib-prod/builder/column/comparable-column.js.map +1 -0
- package/lib-prod/builder/column/date-column.d.ts +9 -0
- package/lib-prod/builder/column/date-column.js +15 -0
- package/lib-prod/builder/column/date-column.js.map +1 -0
- package/lib-prod/builder/column/number-column.d.ts +10 -0
- package/lib-prod/builder/column/number-column.js +20 -0
- package/lib-prod/builder/column/number-column.js.map +1 -0
- package/lib-prod/builder/column/query-column.d.ts +18 -0
- package/lib-prod/builder/column/query-column.js +26 -0
- package/lib-prod/builder/column/query-column.js.map +1 -0
- package/lib-prod/builder/column/string-column.d.ts +17 -0
- package/lib-prod/builder/column/string-column.js +37 -0
- package/lib-prod/builder/column/string-column.js.map +1 -0
- package/lib-prod/builder/column/value-column.d.ts +15 -0
- package/lib-prod/builder/column/value-column.js +30 -0
- package/lib-prod/builder/column/value-column.js.map +1 -0
- package/lib-prod/builder/condition/query-column-condition.d.ts +13 -0
- package/lib-prod/builder/condition/query-column-condition.js +23 -0
- package/lib-prod/builder/condition/query-column-condition.js.map +1 -0
- package/lib-prod/builder/condition/query-condition-chain.d.ts +17 -0
- package/lib-prod/builder/condition/query-condition-chain.js +34 -0
- package/lib-prod/builder/condition/query-condition-chain.js.map +1 -0
- package/lib-prod/builder/condition/query-condition.d.ts +7 -0
- package/lib-prod/builder/condition/query-condition.js +7 -0
- package/lib-prod/builder/condition/query-condition.js.map +1 -0
- package/lib-prod/builder/condition/query-join-condition.d.ts +12 -0
- package/lib-prod/builder/condition/query-join-condition.js +23 -0
- package/lib-prod/builder/condition/query-join-condition.js.map +1 -0
- package/lib-prod/builder/helpers/generics-helper.d.ts +2 -0
- package/lib-prod/builder/helpers/generics-helper.js +7 -0
- package/lib-prod/builder/helpers/generics-helper.js.map +1 -0
- package/lib-prod/builder/helpers/internal-types.d.ts +15 -0
- package/lib-prod/builder/helpers/internal-types.js +4 -0
- package/lib-prod/builder/helpers/internal-types.js.map +1 -0
- package/lib-prod/builder/join/joined-tables-chain.d.ts +11 -0
- package/lib-prod/builder/join/joined-tables-chain.js +18 -0
- package/lib-prod/builder/join/joined-tables-chain.js.map +1 -0
- package/lib-prod/builder/join/joined-tables.d.ts +12 -0
- package/lib-prod/builder/join/joined-tables.js +25 -0
- package/lib-prod/builder/join/joined-tables.js.map +1 -0
- package/lib-prod/builder/other/query-ordering.d.ts +10 -0
- package/lib-prod/builder/other/query-ordering.js +21 -0
- package/lib-prod/builder/other/query-ordering.js.map +1 -0
- package/lib-prod/builder/query/select-query.d.ts +29 -0
- package/lib-prod/builder/query/select-query.js +54 -0
- package/lib-prod/builder/query/select-query.js.map +1 -0
- package/lib-prod/builder/query/table-condition-query.d.ts +16 -0
- package/lib-prod/builder/query/table-condition-query.js +31 -0
- package/lib-prod/builder/query/table-condition-query.js.map +1 -0
- package/lib-prod/builder/query/table-query.d.ts +23 -0
- package/lib-prod/builder/query/table-query.js +60 -0
- package/lib-prod/builder/query/table-query.js.map +1 -0
- package/lib-prod/builder/query-source.d.ts +14 -0
- package/lib-prod/builder/query-source.js +22 -0
- package/lib-prod/builder/query-source.js.map +1 -0
- package/lib-prod/builder/query-table.d.ts +15 -0
- package/lib-prod/builder/query-table.js +28 -0
- package/lib-prod/builder/query-table.js.map +1 -0
- package/lib-prod/client/mysql.d.ts +5 -0
- package/lib-prod/client/mysql.js +11 -0
- package/lib-prod/client/mysql.js.map +1 -0
- package/lib-prod/client/pg.d.ts +5 -0
- package/lib-prod/client/pg.js +11 -0
- package/lib-prod/client/pg.js.map +1 -0
- package/lib-prod/client/query-processor.d.ts +10 -0
- package/lib-prod/client/query-processor.js +73 -0
- package/lib-prod/client/query-processor.js.map +1 -0
- package/lib-prod/converter/param-converter.d.ts +2 -0
- package/lib-prod/converter/param-converter.js +31 -0
- package/lib-prod/converter/param-converter.js.map +1 -0
- package/lib-prod/converter/parameterized-converter.d.ts +5 -0
- package/lib-prod/converter/parameterized-converter.js +18 -0
- package/lib-prod/converter/parameterized-converter.js.map +1 -0
- package/lib-prod/converter/query-converter.d.ts +2 -0
- package/lib-prod/converter/query-converter.js +284 -0
- package/lib-prod/converter/query-converter.js.map +1 -0
- package/lib-prod/converter/result-converter.d.ts +2 -0
- package/lib-prod/converter/result-converter.js +89 -0
- package/lib-prod/converter/result-converter.js.map +1 -0
- package/lib-prod/converter/sql-converter.d.ts +2 -0
- package/lib-prod/converter/sql-converter.js +9 -0
- package/lib-prod/converter/sql-converter.js.map +1 -0
- package/lib-prod/converter/type-converter.d.ts +4 -0
- package/lib-prod/converter/type-converter.js +43 -0
- package/lib-prod/converter/type-converter.js.map +1 -0
- package/lib-prod/converter/types.d.ts +5 -0
- package/lib-prod/converter/types.js +3 -0
- package/lib-prod/converter/types.js.map +1 -0
- package/lib-prod/env/env.angular-node-app.d.ts +64 -0
- package/lib-prod/env/env.angular-node-app.js +71 -0
- package/lib-prod/env/env.angular-node-app.js.map +1 -0
- package/lib-prod/env/env.docs-webapp.d.ts +64 -0
- package/lib-prod/env/env.docs-webapp.js +71 -0
- package/lib-prod/env/env.docs-webapp.js.map +1 -0
- package/lib-prod/env/env.electron-app.d.ts +64 -0
- package/lib-prod/env/env.electron-app.js +71 -0
- package/lib-prod/env/env.electron-app.js.map +1 -0
- package/lib-prod/env/env.mobile-app.d.ts +64 -0
- package/lib-prod/env/env.mobile-app.js +71 -0
- package/lib-prod/env/env.mobile-app.js.map +1 -0
- package/lib-prod/env/env.npm-lib-and-cli-tool.d.ts +64 -0
- package/lib-prod/env/env.npm-lib-and-cli-tool.js +71 -0
- package/lib-prod/env/env.npm-lib-and-cli-tool.js.map +1 -0
- package/lib-prod/env/env.vscode-plugin.d.ts +64 -0
- package/lib-prod/env/env.vscode-plugin.js +71 -0
- package/lib-prod/env/env.vscode-plugin.js.map +1 -0
- package/lib-prod/env/index.d.ts +6 -0
- package/lib-prod/env/index.js +23 -0
- package/lib-prod/env/index.js.map +1 -0
- package/lib-prod/index._auto-generated_.js +6 -0
- package/lib-prod/index._auto-generated_.js.map +1 -0
- package/lib-prod/index.d.ts +25 -0
- package/lib-prod/index.js +48 -0
- package/lib-prod/index.js.map +1 -0
- package/lib-prod/migrations/migrations_index._auto-generated_.d.ts +0 -0
- package/lib-prod/package.json +4 -0
- package/lib-prod.split-namespaces.json +4 -0
- package/package.json +2 -1
- package/websql/package.json +1 -1
- package/websql-prod/README.md +24 -0
- package/websql-prod/fesm2022/taon-type-sql-websql.mjs +859 -0
- package/websql-prod/fesm2022/taon-type-sql-websql.mjs.map +1 -0
- package/websql-prod/package.json +23 -0
- package/websql-prod/types/taon-type-sql-websql.d.ts +254 -0
- package/websql-prod.split-namespaces.json +4 -0
- package/tmp-environment.json +0 -39
- /package/{migrations/migrations_index._auto-generated_.d.ts → lib-prod/index._auto-generated_.d.ts} +0 -0
- /package/{migrations → lib-prod/migrations}/index.d.ts +0 -0
- /package/{migrations → lib-prod/migrations}/index.js +0 -0
- /package/{migrations → lib-prod/migrations}/index.js.map +0 -0
- /package/{migrations → lib-prod/migrations}/migrations_index._auto-generated_.js +0 -0
- /package/{migrations → lib-prod/migrations}/migrations_index._auto-generated_.js.map +0 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const basic_column_1 = require("./column/basic-column");
|
|
4
|
+
const joined_tables_chain_1 = require("./join/joined-tables-chain");
|
|
5
|
+
class QueryTable {
|
|
6
|
+
_$name;
|
|
7
|
+
constructor(_$name) {
|
|
8
|
+
this._$name = _$name;
|
|
9
|
+
}
|
|
10
|
+
_$type;
|
|
11
|
+
_$idType;
|
|
12
|
+
// abstract readonly $id; // FIXME I got a dozen incomprehensible type errors
|
|
13
|
+
$all = new basic_column_1.default(this, '*');
|
|
14
|
+
innerJoin(table) {
|
|
15
|
+
return new joined_tables_chain_1.default(table, 'inner', this);
|
|
16
|
+
}
|
|
17
|
+
leftJoin(table) {
|
|
18
|
+
return new joined_tables_chain_1.default(table, 'left', this);
|
|
19
|
+
}
|
|
20
|
+
rightJoin(table) {
|
|
21
|
+
return new joined_tables_chain_1.default(table, 'right', this);
|
|
22
|
+
}
|
|
23
|
+
fullJoin(table) {
|
|
24
|
+
return new joined_tables_chain_1.default(table, 'full', this);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.default = QueryTable;
|
|
28
|
+
//# sourceMappingURL=query-table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-table.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;AAAA,wDAAgD;AAEhD,oEAA2D;AAG3D,MAAe,UAAU;IAEC;IAAtB,YAAsB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE9B,MAAM,CAAyB;IAC/B,QAAQ,CAAqB;IAEvC,6EAA6E;IAE7E,IAAI,GAAG,IAAI,sBAAW,CAAe,IAAI,EAAE,GAAG,CAAC,CAAC;IAEhD,SAAS,CAAyC,KAAgB;QAC9D,OAAO,IAAI,6BAAiB,CAAmB,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC;IAED,QAAQ,CAAyC,KAAgB;QAC7D,OAAO,IAAI,6BAAiB,CAAmB,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;IAED,SAAS,CAAyC,KAAgB;QAC9D,OAAO,IAAI,6BAAiB,CAAmB,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC;IAED,QAAQ,CAAyC,KAAgB;QAC7D,OAAO,IAAI,6BAAiB,CAAmB,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;CACJ;AAED,kBAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const query_source_1 = require("../builder/query-source");
|
|
4
|
+
const query_processor_1 = require("./query-processor");
|
|
5
|
+
class MySqlQuerySource extends query_source_1.default {
|
|
6
|
+
constructor(client, options = {}) {
|
|
7
|
+
super((0, query_processor_1.createQueryProcessor)(client, options, 'mysql'));
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.default = MySqlQuerySource;
|
|
11
|
+
//# sourceMappingURL=mysql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mysql.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;AAAA,0DAAkD;AAClD,uDAA8E;AAE9E,MAAqB,gBAAiB,SAAQ,sBAAW;IAErD,YAAY,MAAW,EAAE,UAAiC,EAAE;QACxD,KAAK,CAAC,IAAA,sCAAoB,EAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;CACJ;AALD,mCAKC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const query_source_1 = require("../builder/query-source");
|
|
4
|
+
const query_processor_1 = require("./query-processor");
|
|
5
|
+
class PgQuerySource extends query_source_1.default {
|
|
6
|
+
constructor(client, options = {}) {
|
|
7
|
+
super((0, query_processor_1.createQueryProcessor)(client, options, 'pg'));
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.default = PgQuerySource;
|
|
11
|
+
//# sourceMappingURL=pg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pg.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;AAAA,0DAAkD;AAClD,uDAA8E;AAE9E,MAAqB,aAAc,SAAQ,sBAAW;IAElD,YAAY,MAAW,EAAE,UAAiC,EAAE;QACxD,KAAK,CAAC,IAAA,sCAAoB,EAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;CACJ;AALD,gCAKC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { QueryEngine } from '../converter/types';
|
|
2
|
+
import { QueryProcessor } from '../builder/helpers/internal-types';
|
|
3
|
+
export interface QueryProcessorOptions {
|
|
4
|
+
lineBreaks?: boolean;
|
|
5
|
+
parameterized?: boolean;
|
|
6
|
+
logging?: boolean;
|
|
7
|
+
logger?: (sql: string, params?: any[]) => void;
|
|
8
|
+
identifierQuote?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function createQueryProcessor(client: any, _options?: QueryProcessorOptions, engine?: QueryEngine): QueryProcessor;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createQueryProcessor = createQueryProcessor;
|
|
4
|
+
const lib_prod_1 = require("ng2-logger/lib-prod");
|
|
5
|
+
const parameterized_converter_1 = require("../converter/parameterized-converter");
|
|
6
|
+
const sql_converter_1 = require("../converter/sql-converter");
|
|
7
|
+
const log = lib_prod_1.Log.create('query processor');
|
|
8
|
+
const DEFAULT_OPTIONS = {
|
|
9
|
+
lineBreaks: false,
|
|
10
|
+
parameterized: true,
|
|
11
|
+
logging: true,
|
|
12
|
+
identifierQuote: '"'
|
|
13
|
+
};
|
|
14
|
+
function mySqlTypeCast(field, next) {
|
|
15
|
+
if (field.type == 'TINY' && field.length == 1) { // Boolean
|
|
16
|
+
let value = field.string();
|
|
17
|
+
if (value == '1')
|
|
18
|
+
return true;
|
|
19
|
+
if (value == '0')
|
|
20
|
+
return false;
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
else if (field.type == 'JSON') {
|
|
24
|
+
let value = field.string();
|
|
25
|
+
return value == null ? null : JSON.parse(value);
|
|
26
|
+
}
|
|
27
|
+
return next();
|
|
28
|
+
}
|
|
29
|
+
function createQueryProcessor(client, _options = {}, engine = 'pg') {
|
|
30
|
+
let options = Object.assign({}, DEFAULT_OPTIONS, _options);
|
|
31
|
+
let queryOptions = {
|
|
32
|
+
lineBreak: options.lineBreaks ? '\n' : ' ',
|
|
33
|
+
nameEscape: _options.identifierQuote || (engine === 'mysql' ? '`' : '"')
|
|
34
|
+
};
|
|
35
|
+
// function processSql(query: any, sql: string, params: any[] | undefined, callback: any): Promise<any> {
|
|
36
|
+
// if (options.logging) log.i(sql);
|
|
37
|
+
// if (options.logger) options.logger(sql, params);
|
|
38
|
+
// return new Promise((resolve, reject) => {
|
|
39
|
+
// callback(sql, params, (err: any, result: any) => {
|
|
40
|
+
// if (err) reject(err);
|
|
41
|
+
// else resolve(convertResult(query, result, engine));
|
|
42
|
+
// });
|
|
43
|
+
// });
|
|
44
|
+
// }
|
|
45
|
+
// function executeSql(sql: string, params: any[] | undefined, cb: any) {
|
|
46
|
+
// if (engine === 'pg') {
|
|
47
|
+
// client.query(sql, params || cb, params ? cb : undefined);
|
|
48
|
+
// } else if (engine === 'mysql') {
|
|
49
|
+
// client.query({
|
|
50
|
+
// sql,
|
|
51
|
+
// values: params,
|
|
52
|
+
// typeCast: mySqlTypeCast
|
|
53
|
+
// }, cb);
|
|
54
|
+
// } else throw new Error('Unknown DB engine: ' + engine);
|
|
55
|
+
// }
|
|
56
|
+
return (query) => {
|
|
57
|
+
if (options.parameterized) {
|
|
58
|
+
let { sql, params } = (0, parameterized_converter_1.convertQueryToParameterizedSQL)(query, queryOptions, engine);
|
|
59
|
+
// if (Helpers.isWebSQL || Helpers.isNode) {
|
|
60
|
+
return client.query(sql, params);
|
|
61
|
+
// }
|
|
62
|
+
// return processSql(query, sql, params, (sql: string, params: any[], cb: any) => executeSql(sql, params, cb));
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
let sql = (0, sql_converter_1.convertQueryToSQL)(query, queryOptions, engine);
|
|
66
|
+
// if (Helpers.isWebSQL || Helpers.isNode) {
|
|
67
|
+
return client.query(sql, undefined);
|
|
68
|
+
// }
|
|
69
|
+
// return processSql(query, sql, undefined, (sql: string, params: undefined, cb: any) => executeSql(sql, undefined, cb));
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=query-processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-processor.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;AAwCA,oDAgDC;AAxFD,kDAAiD;AACjD,kFAAsF;AACtF,8DAA+D;AAM/D,MAAM,GAAG,GAAG,cAAG,CAAC,MAAM,CAAC,iBAAiB,CAEvC,CAAA;AAUD,MAAM,eAAe,GAA0B;IAC7C,UAAU,EAAE,KAAK;IACjB,aAAa,EAAE,IAAI;IACnB,OAAO,EAAE,IAAI;IACb,eAAe,EAAE,GAAG;CACrB,CAAC;AAEF,SAAS,aAAa,CAAC,KAAU,EAAE,IAAS;IAC1C,IAAI,KAAK,CAAC,IAAI,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU;QACzD,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,IAAI,GAAG;YAAE,OAAO,IAAI,CAAC;QAC9B,IAAI,KAAK,IAAI,GAAG;YAAE,OAAO,KAAK,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,IAAI,KAAK,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC;QAChC,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC3B,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,IAAI,EAAE,CAAC;AAChB,CAAC;AAED,SAAgB,oBAAoB,CAAC,MAAW,EAAE,WAAkC,EAAE,EAAE,SAAsB,IAAI;IAEhH,IAAI,OAAO,GAA0B,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;IAElF,IAAI,YAAY,GAAqB;QACnC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;QAC1C,UAAU,EAAE,QAAQ,CAAC,eAAe,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;KACzE,CAAC;IAEF,yGAAyG;IACzG,qCAAqC;IACrC,qDAAqD;IAErD,8CAA8C;IAC9C,yDAAyD;IACzD,8BAA8B;IAC9B,4DAA4D;IAC5D,UAAU;IACV,QAAQ;IACR,IAAI;IAEJ,yEAAyE;IACzE,2BAA2B;IAC3B,gEAAgE;IAChE,qCAAqC;IACrC,qBAAqB;IACrB,aAAa;IACb,wBAAwB;IACxB,gCAAgC;IAChC,cAAc;IACd,4DAA4D;IAC5D,IAAI;IAEJ,OAAO,CAAC,KAAU,EAAE,EAAE;QACpB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAA,wDAA8B,EAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;YAClF,4CAA4C;YAC5C,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACjC,IAAI;YACJ,+GAA+G;QACjH,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,GAAG,IAAA,iCAAiB,EAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;YACzD,4CAA4C;YAC5C,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACpC,IAAI;YACJ,yHAAyH;QAC3H,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertSubstitutionParam = convertSubstitutionParam;
|
|
4
|
+
exports.convertEscapedParam = convertEscapedParam;
|
|
5
|
+
function convertSubstitutionParam(param) {
|
|
6
|
+
if (param == null)
|
|
7
|
+
return 'NULL';
|
|
8
|
+
if (typeof param === 'string' || param instanceof String) {
|
|
9
|
+
return `'${String(param)}'`;
|
|
10
|
+
}
|
|
11
|
+
else if (typeof param === 'boolean' || param instanceof Boolean) {
|
|
12
|
+
return String(param).toUpperCase();
|
|
13
|
+
}
|
|
14
|
+
else if (param instanceof Date) {
|
|
15
|
+
return `'${param.toISOString()}'`;
|
|
16
|
+
}
|
|
17
|
+
else if (typeof param === 'number' || param instanceof Number) {
|
|
18
|
+
return String(param);
|
|
19
|
+
}
|
|
20
|
+
return `'${JSON.stringify(param)}'`;
|
|
21
|
+
}
|
|
22
|
+
// node mysql doesn't have an typeCast equivalent solution for the other direction
|
|
23
|
+
// node-postgres: https://github.com/brianc/node-postgres/issues/442
|
|
24
|
+
function convertEscapedParam(param) {
|
|
25
|
+
if (typeof param === 'object' && !(param == null || param instanceof String || param instanceof Number ||
|
|
26
|
+
param instanceof Boolean || param instanceof Date)) {
|
|
27
|
+
return JSON.stringify(param);
|
|
28
|
+
}
|
|
29
|
+
return param;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=param-converter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"param-converter.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;AAAA,4DAYC;AAID,kDAMC;AAtBD,SAAgB,wBAAwB,CAAC,KAAU;IAC/C,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,MAAM,CAAC;IACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;QACvD,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;IAChC,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,YAAY,OAAO,EAAE,CAAC;QAChE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IACvC,CAAC;SAAM,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QAC/B,OAAO,IAAI,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC;IACtC,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;QAC9D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;AACxC,CAAC;AAED,kFAAkF;AAClF,oEAAoE;AACpE,SAAgB,mBAAmB,CAAC,KAAU;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,YAAY,MAAM,IAAI,KAAK,YAAY,MAAM;QAClG,KAAK,YAAY,OAAO,IAAI,KAAK,YAAY,IAAI,CAAC,EAAE,CAAC;QACrD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertQueryToParameterizedSQL = convertQueryToParameterizedSQL;
|
|
4
|
+
const query_converter_1 = require("./query-converter");
|
|
5
|
+
const param_converter_1 = require("./param-converter");
|
|
6
|
+
let pgParamConverter = (index) => '$' + index;
|
|
7
|
+
let mySqlParamConverter = (index) => '?';
|
|
8
|
+
function convertSingleParam(param, params, paramConverter) {
|
|
9
|
+
params.push((0, param_converter_1.convertEscapedParam)(param));
|
|
10
|
+
return paramConverter(params.length);
|
|
11
|
+
}
|
|
12
|
+
function convertQueryToParameterizedSQL(query, options, engine) {
|
|
13
|
+
let params = [];
|
|
14
|
+
let paramConverter = engine === 'mysql' ? mySqlParamConverter : pgParamConverter;
|
|
15
|
+
let sql = (0, query_converter_1.createQueryConverter)((param) => convertSingleParam(param, params, paramConverter), options, engine)(query);
|
|
16
|
+
return { sql, params };
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=parameterized-converter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parameterized-converter.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;AAYA,wEAOC;AAnBD,uDAAuD;AACvD,uDAAsD;AAGtD,IAAI,gBAAgB,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC;AACtD,IAAI,mBAAmB,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,CAAC;AAEjD,SAAS,kBAAkB,CAAC,KAAU,EAAE,MAAa,EAAE,cAAsC;IACzF,MAAM,CAAC,IAAI,CAAC,IAAA,qCAAmB,EAAC,KAAK,CAAC,CAAC,CAAC;IACxC,OAAO,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,8BAA8B,CAAC,KAAU,EAAE,OAAyB,EAAE,MAAmB;IACrG,IAAI,MAAM,GAAU,EAAE,CAAC;IAEvB,IAAI,cAAc,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,gBAAgB,CAAC;IACjF,IAAI,GAAG,GAAG,IAAA,sCAAoB,EAAC,CAAC,KAAU,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;IAE1H,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createQueryConverter = createQueryConverter;
|
|
4
|
+
const type_converter_1 = require("./type-converter");
|
|
5
|
+
function createQueryConverter(paramConverter, options, engine) {
|
|
6
|
+
return convertQuery;
|
|
7
|
+
function convertQuery(query) {
|
|
8
|
+
if (query._action === 'select')
|
|
9
|
+
return convertSelectQuery(query);
|
|
10
|
+
if (query._action === 'delete')
|
|
11
|
+
return convertDeleteQuery(query);
|
|
12
|
+
if (query._action === 'update')
|
|
13
|
+
return convertUpdateQuery(query);
|
|
14
|
+
if (query._action === 'insert')
|
|
15
|
+
return convertInsertQuery(query);
|
|
16
|
+
throw new Error('Unknown query type:' + query._action);
|
|
17
|
+
}
|
|
18
|
+
function convertDeleteQuery(query) {
|
|
19
|
+
let s = 'DELETE FROM ' + convertTable(query._table);
|
|
20
|
+
s += convertConditions(query._conditions);
|
|
21
|
+
return s;
|
|
22
|
+
}
|
|
23
|
+
function convertUpdateQuery(query) {
|
|
24
|
+
let s = 'UPDATE ' + convertTable(query._table) + ' SET ';
|
|
25
|
+
s += convertUpdateSetters(query._table, query._entity);
|
|
26
|
+
s += convertConditions(query._conditions);
|
|
27
|
+
return s;
|
|
28
|
+
}
|
|
29
|
+
function convertUpdateSetters(table, entity) {
|
|
30
|
+
return Object.keys(entity).sort().map(key => {
|
|
31
|
+
let value = entity[key];
|
|
32
|
+
let column = table[key];
|
|
33
|
+
return convertColumnName(column) + ' = ' + convertParam(column, value);
|
|
34
|
+
}).join(', ');
|
|
35
|
+
}
|
|
36
|
+
function convertInsertQuery(query) {
|
|
37
|
+
let items = Array.isArray(query._entity) ? query._entity : [query._entity];
|
|
38
|
+
let keySet = items.reduce((set, item) => {
|
|
39
|
+
Object.keys(item).forEach(key => set.add(key));
|
|
40
|
+
return set;
|
|
41
|
+
}, new Set());
|
|
42
|
+
let keys = Array.from(keySet).sort();
|
|
43
|
+
let s = 'INSERT INTO ' + convertTable(query._table) + ' ';
|
|
44
|
+
s += '(' + keys.map(key => convertColumnName(query._table[key])).join(', ') + ')';
|
|
45
|
+
s += options.lineBreak + 'VALUES ';
|
|
46
|
+
s += items.map(item => convertInsertItem(query._table, item, keys))
|
|
47
|
+
.map((row) => '(' + row + ')').join(', ');
|
|
48
|
+
s += getPgInsertReturningIfNeeded(query);
|
|
49
|
+
return s;
|
|
50
|
+
}
|
|
51
|
+
function getPgInsertReturningIfNeeded(query) {
|
|
52
|
+
if (engine === 'pg' && query._action === 'insert' && !Array.isArray(query._entity) &&
|
|
53
|
+
query._table.$id && query._table.$id._table && query._table.$id._name) {
|
|
54
|
+
return ' RETURNING ' + convertColumnName(query._table.$id);
|
|
55
|
+
}
|
|
56
|
+
return '';
|
|
57
|
+
}
|
|
58
|
+
function convertInsertItem(table, entity, keys) {
|
|
59
|
+
return keys.map(key => {
|
|
60
|
+
let value = entity[key];
|
|
61
|
+
let column = table[key];
|
|
62
|
+
return convertParam(column, value);
|
|
63
|
+
}).join(', ');
|
|
64
|
+
}
|
|
65
|
+
function convertSelectQuery(query) {
|
|
66
|
+
let s = 'SELECT ';
|
|
67
|
+
if (query._distinct) {
|
|
68
|
+
s += 'DISTINCT ';
|
|
69
|
+
}
|
|
70
|
+
if (query._columns == null || query._columns.length === 0) {
|
|
71
|
+
s += '*';
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
s += query._columns.map((column) => convertColumn(column)).join(', ');
|
|
75
|
+
}
|
|
76
|
+
s += options.lineBreak + 'FROM ';
|
|
77
|
+
if (query._tables) {
|
|
78
|
+
s += query._tables.map((table) => table._parent ? convertJoin(table) : convertTable(table)).join(', ');
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
s += convertTable(query._table);
|
|
82
|
+
}
|
|
83
|
+
s += convertConditions(query._conditions);
|
|
84
|
+
if (query._groupBy && query._groupBy.length > 0) {
|
|
85
|
+
s += options.lineBreak + 'GROUP BY ';
|
|
86
|
+
s += query._groupBy.map((column) => convertColumn(column)).join(', ');
|
|
87
|
+
}
|
|
88
|
+
s += convertConditions(query._having, 'HAVING');
|
|
89
|
+
if (query._orderings && query._orderings.length > 0) {
|
|
90
|
+
s += options.lineBreak + 'ORDER BY ';
|
|
91
|
+
s += query._orderings.map((ordering) => convertOrdering(ordering)).join(', ');
|
|
92
|
+
}
|
|
93
|
+
if (query._limit != null) {
|
|
94
|
+
s += options.lineBreak + 'LIMIT ' + (0, type_converter_1.number)(query._limit);
|
|
95
|
+
}
|
|
96
|
+
if (query._offset != null) {
|
|
97
|
+
s += options.lineBreak + 'OFFSET ' + (0, type_converter_1.number)(query._offset);
|
|
98
|
+
}
|
|
99
|
+
return s;
|
|
100
|
+
}
|
|
101
|
+
function convertConditions(conditions, keyword = 'WHERE') {
|
|
102
|
+
let s = '';
|
|
103
|
+
if (conditions && conditions.length > 0) {
|
|
104
|
+
s += options.lineBreak + keyword + ' ';
|
|
105
|
+
preprocessConditions(conditions);
|
|
106
|
+
s += conditions.map(condition => convertCondition(condition, true)).join(' AND ');
|
|
107
|
+
}
|
|
108
|
+
return s;
|
|
109
|
+
}
|
|
110
|
+
function convertJoin(joinChain) {
|
|
111
|
+
let items = [];
|
|
112
|
+
while (joinChain) {
|
|
113
|
+
items.push(joinChain);
|
|
114
|
+
joinChain = joinChain._parent;
|
|
115
|
+
}
|
|
116
|
+
let root = items[items.length - 1];
|
|
117
|
+
let s = convertTable(root);
|
|
118
|
+
for (let i = items.length - 2; i >= 0; i -= 2) {
|
|
119
|
+
let table = items[i]._table;
|
|
120
|
+
let modifier = items[i]._modifier;
|
|
121
|
+
let condition = items[i - 1]._condition;
|
|
122
|
+
let param = convertColumn(condition._otherColumn);
|
|
123
|
+
s += ' ' + modifier.toUpperCase() + ' JOIN ' + convertTable(table) + ' ON ' +
|
|
124
|
+
convertColumnCondition(condition, param);
|
|
125
|
+
}
|
|
126
|
+
return s;
|
|
127
|
+
}
|
|
128
|
+
function convertOrdering(ordering) {
|
|
129
|
+
if (ordering._column) {
|
|
130
|
+
let s = convertColumn(ordering._column);
|
|
131
|
+
if (ordering._nullsPosition != null) { // "NULLS FIRST" only exists in PG, this is the general solution
|
|
132
|
+
s += ' IS NULL ' + (ordering._nullsPosition === 'FIRST' ? 'DESC' : 'ASC') + ', ' + s;
|
|
133
|
+
}
|
|
134
|
+
if (ordering._direction === 'ASC')
|
|
135
|
+
s += ' ASC';
|
|
136
|
+
if (ordering._direction === 'DESC')
|
|
137
|
+
s += ' DESC';
|
|
138
|
+
return s;
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
return convertColumn(ordering);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
function convertTable(table) {
|
|
145
|
+
return options.nameEscape + table._$name + options.nameEscape;
|
|
146
|
+
}
|
|
147
|
+
function convertColumn(column) {
|
|
148
|
+
let s = '';
|
|
149
|
+
if (!(column._name === '*' && column._modifiers.length > 0 && column._modifiers[0].name === 'count')) {
|
|
150
|
+
s += convertTable(column._table) + '.';
|
|
151
|
+
}
|
|
152
|
+
s += convertColumnName(column);
|
|
153
|
+
return convertColumnModifiers(s, column);
|
|
154
|
+
}
|
|
155
|
+
function convertColumnModifiers(s, column) {
|
|
156
|
+
if (column._modifiers) {
|
|
157
|
+
column._modifiers.forEach((modifier) => {
|
|
158
|
+
let name = modifier.name;
|
|
159
|
+
if (name === 'lower')
|
|
160
|
+
s = 'LOWER(' + s + ')';
|
|
161
|
+
else if (name === 'upper')
|
|
162
|
+
s = 'UPPER(' + s + ')';
|
|
163
|
+
else if (name === 'count')
|
|
164
|
+
s = 'COUNT(' + s + ')';
|
|
165
|
+
else if (name === 'sum')
|
|
166
|
+
s = 'SUM(' + s + ')';
|
|
167
|
+
else if (name === 'avg')
|
|
168
|
+
s = 'AVG(' + s + ')';
|
|
169
|
+
else if (name === 'min')
|
|
170
|
+
s = 'MIN(' + s + ')';
|
|
171
|
+
else if (name === 'max')
|
|
172
|
+
s = 'MAX(' + s + ')';
|
|
173
|
+
else if (name === 'as')
|
|
174
|
+
s = s + ' AS ' + options.nameEscape + modifier.params + options.nameEscape;
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
return s + '';
|
|
178
|
+
}
|
|
179
|
+
function convertColumnName(column) {
|
|
180
|
+
if (column._name === '*')
|
|
181
|
+
return column._name;
|
|
182
|
+
let name = typeof column._name === 'string' ? column._name : column._name.name;
|
|
183
|
+
return options.nameEscape + name + options.nameEscape;
|
|
184
|
+
}
|
|
185
|
+
function preprocessConditions(conditions) {
|
|
186
|
+
conditions.forEach(condition => {
|
|
187
|
+
if (conditions.length > 1 && condition._sibling) {
|
|
188
|
+
condition._parenthesis = true;
|
|
189
|
+
}
|
|
190
|
+
preprocessParams(condition);
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
// this is only needed, so that the $1, $2... numbering is not reversed
|
|
194
|
+
function preprocessParams(condition) {
|
|
195
|
+
if (condition._sibling) {
|
|
196
|
+
preprocessParams(condition._sibling);
|
|
197
|
+
}
|
|
198
|
+
if (!condition._sibling && !condition._child) {
|
|
199
|
+
condition.__param = getConditionParam(condition);
|
|
200
|
+
}
|
|
201
|
+
if (condition._child) {
|
|
202
|
+
preprocessParams(condition._child);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
function convertCondition(condition, root = false) {
|
|
206
|
+
if (!condition._sibling && !condition._child) {
|
|
207
|
+
return convertColumnCondition(condition, condition.__param);
|
|
208
|
+
}
|
|
209
|
+
let s = '';
|
|
210
|
+
if (condition._child) {
|
|
211
|
+
s += convertCondition(condition._child);
|
|
212
|
+
}
|
|
213
|
+
if (condition._sibling) {
|
|
214
|
+
s = convertCondition(condition._sibling, root) + ' ' + condition._chainType.toUpperCase() + ' ' + s;
|
|
215
|
+
}
|
|
216
|
+
if (condition._parenthesis || ((!root || condition._negation) && condition._child)) {
|
|
217
|
+
s = '( ' + s + ' )';
|
|
218
|
+
}
|
|
219
|
+
if (condition._negation) {
|
|
220
|
+
s = 'NOT ' + s;
|
|
221
|
+
}
|
|
222
|
+
return s;
|
|
223
|
+
}
|
|
224
|
+
function convertColumnCondition(condition, param) {
|
|
225
|
+
let s = convertColumn(condition._column);
|
|
226
|
+
s += getConditionString(condition, param);
|
|
227
|
+
return s;
|
|
228
|
+
}
|
|
229
|
+
function getConditionString(condition, param) {
|
|
230
|
+
switch (condition._type) {
|
|
231
|
+
case 'eq': return ' = ' + param;
|
|
232
|
+
case 'ne': return ' <> ' + param;
|
|
233
|
+
case 'lt': return ' < ' + param;
|
|
234
|
+
case 'gt': return ' > ' + param;
|
|
235
|
+
case 'lte': return ' <= ' + param;
|
|
236
|
+
case 'gte': return ' >= ' + param;
|
|
237
|
+
case 'is-null': return ' IS NULL';
|
|
238
|
+
case 'is-not-null': return ' IS NOT NULL';
|
|
239
|
+
case 'like': return ' LIKE ' + param;
|
|
240
|
+
case 'not-like': return ' NOT LIKE ' + param;
|
|
241
|
+
case 'in': return ' IN (' + param + ')';
|
|
242
|
+
case 'not-in': return ' NOT IN (' + param + ')';
|
|
243
|
+
case 'between': return ' BETWEEN ' + param;
|
|
244
|
+
case 'not-between': return ' NOT BETWEEN ' + param;
|
|
245
|
+
default: return '';
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
function getConditionParam(condition) {
|
|
249
|
+
let param = '';
|
|
250
|
+
if (condition._otherColumn) {
|
|
251
|
+
param = convertColumn(condition._otherColumn);
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
let _convertParam = (param) => convertParam(condition._column, param);
|
|
255
|
+
if (condition._type === 'in' || condition._type === 'not-in') {
|
|
256
|
+
param = condition._values.map((value) => _convertParam(value)).join(', ');
|
|
257
|
+
}
|
|
258
|
+
else if (condition._type === 'between' || condition._type === 'not-between') {
|
|
259
|
+
param = _convertParam(condition._values[0]) + ' AND ' + _convertParam(condition._values[1]);
|
|
260
|
+
}
|
|
261
|
+
else if (condition._type !== 'is-null' && condition._type !== 'is-not-null') {
|
|
262
|
+
param = _convertParam(condition._values[0]);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
return param;
|
|
266
|
+
}
|
|
267
|
+
function convertParam(column, param) {
|
|
268
|
+
if (param == null)
|
|
269
|
+
return 'NULL';
|
|
270
|
+
return paramConverter(getTypedParam(column._type, param));
|
|
271
|
+
}
|
|
272
|
+
function getTypedParam(type, param) {
|
|
273
|
+
if (type === 'number')
|
|
274
|
+
return (0, type_converter_1.number)(param);
|
|
275
|
+
else if (type === 'boolean')
|
|
276
|
+
return (0, type_converter_1.boolean)(param);
|
|
277
|
+
else if (type === 'date')
|
|
278
|
+
return (0, type_converter_1.date)(param);
|
|
279
|
+
else if (type === 'string')
|
|
280
|
+
return (0, type_converter_1.string)(param);
|
|
281
|
+
return param;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
//# sourceMappingURL=query-converter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-converter.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertResult = convertResult;
|
|
4
|
+
function convertResult(query, result, engine) {
|
|
5
|
+
let rows = engine === 'pg' ? result.rows : result;
|
|
6
|
+
let rowCount = engine === 'pg' ? result.rowCount : result.affectedRows || result.changedRows;
|
|
7
|
+
if (query._action === 'select')
|
|
8
|
+
return convertSelectResult(query, rows);
|
|
9
|
+
if (query._action === 'delete')
|
|
10
|
+
return rowCount;
|
|
11
|
+
if (query._action === 'update')
|
|
12
|
+
return rowCount;
|
|
13
|
+
if (query._action === 'insert')
|
|
14
|
+
return convertInsertResult(result, engine);
|
|
15
|
+
throw new Error('Unknown query type:' + query._action);
|
|
16
|
+
}
|
|
17
|
+
function convertInsertResult(result, engine) {
|
|
18
|
+
if (engine === 'mysql')
|
|
19
|
+
return result.insertId > 0 ? result.insertId : undefined; // mysql returns 0 for tables that have a non-autoincrement ID
|
|
20
|
+
if (engine === 'pg' && result.rows && result.rows.length === 1) {
|
|
21
|
+
let columnName = Object.keys(result.rows[0])[0];
|
|
22
|
+
return result.rows[0][columnName];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function convertSelectResult(query, rows) {
|
|
26
|
+
if (query._columns && query._columns.length === 1 &&
|
|
27
|
+
!(query._columns[0]._name === '*' && query._columns[0]._modifiers.length === 0)) {
|
|
28
|
+
if (rows.length == 0)
|
|
29
|
+
return [];
|
|
30
|
+
let columnName = Object.keys(rows[0])[0]; // easier than reverse engineering from the column modifiers
|
|
31
|
+
let values = rows.map((row) => row[columnName]);
|
|
32
|
+
if (query._columns[0]._name === '*' && query._columns[0]._modifiers.some((m) => m.name === 'count')) {
|
|
33
|
+
return values.map((value) => Number(value)); // string to number conversion for PG count values
|
|
34
|
+
}
|
|
35
|
+
return values;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
convertAliasFields(query, rows);
|
|
39
|
+
return rows;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function convertAliasFields(query, rows) {
|
|
43
|
+
let aliasByName = getColumnAliasesByName(query);
|
|
44
|
+
if (Object.keys(aliasByName).length === 0)
|
|
45
|
+
return;
|
|
46
|
+
rows.forEach((row) => {
|
|
47
|
+
Object.keys(row).forEach((name) => {
|
|
48
|
+
if (aliasByName[name]) {
|
|
49
|
+
row[aliasByName[name]] = row[name];
|
|
50
|
+
delete row[name];
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
function getColumnAliasesByName(query) {
|
|
56
|
+
let aliasByName = {};
|
|
57
|
+
if (query._columns && query._columns.length > 0) {
|
|
58
|
+
query._columns.forEach((column) => {
|
|
59
|
+
if (column._name && column._name.alias && column._modifiers.length === 0) {
|
|
60
|
+
aliasByName[column._name.name] = column._name.alias;
|
|
61
|
+
}
|
|
62
|
+
else if (column._name === '*' && column._modifiers.length === 0) {
|
|
63
|
+
getAliasColumnsOfTable(column._table).forEach((column) => {
|
|
64
|
+
aliasByName[column._name.name] = column._name.alias;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
let tables = query._table ? [query._table] : query._tables;
|
|
71
|
+
tables.forEach((table) => {
|
|
72
|
+
getAliasColumnsOfTable(table).forEach((column) => {
|
|
73
|
+
aliasByName[column._name.name] = column._name.alias;
|
|
74
|
+
});
|
|
75
|
+
let joinTable = table._parent;
|
|
76
|
+
while (joinTable) {
|
|
77
|
+
getAliasColumnsOfTable(joinTable).forEach((column) => {
|
|
78
|
+
aliasByName[column._name.name] = column._name.alias;
|
|
79
|
+
});
|
|
80
|
+
joinTable = joinTable._parent;
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
return aliasByName;
|
|
85
|
+
}
|
|
86
|
+
function getAliasColumnsOfTable(table) {
|
|
87
|
+
return Object.keys(table).map(key => table[key]).filter((column) => column && column._name && column._name.alias);
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=result-converter.js.map
|