taon-type-sql 18.0.26 → 19.0.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/assets/shared/shared_folder_info.txt +3 -3
- package/browser/README.md +24 -24
- package/client/README.md +24 -24
- package/index.js.map +1 -1
- package/lib/build-info._auto-generated_.d.ts +1 -0
- package/lib/build-info._auto-generated_.js +4 -1
- package/lib/build-info._auto-generated_.js.map +1 -1
- package/lib/builder/column/basic-column.js.map +1 -1
- package/lib/builder/column/boolean-column.js.map +1 -1
- package/lib/builder/column/comparable-column.js.map +1 -1
- package/lib/builder/column/date-column.js.map +1 -1
- package/lib/builder/column/number-column.js.map +1 -1
- package/lib/builder/column/query-column.js.map +1 -1
- package/lib/builder/column/string-column.js.map +1 -1
- package/lib/builder/column/value-column.js.map +1 -1
- package/lib/builder/condition/query-column-condition.js.map +1 -1
- package/lib/builder/condition/query-condition-chain.js.map +1 -1
- package/lib/builder/condition/query-condition.js.map +1 -1
- package/lib/builder/condition/query-join-condition.js.map +1 -1
- package/lib/builder/helpers/generics-helper.js.map +1 -1
- package/lib/builder/helpers/internal-types.js.map +1 -1
- package/lib/builder/join/joined-tables-chain.js.map +1 -1
- package/lib/builder/join/joined-tables.js.map +1 -1
- package/lib/builder/other/query-ordering.js.map +1 -1
- package/lib/builder/query/select-query.js.map +1 -1
- package/lib/builder/query/table-condition-query.js.map +1 -1
- package/lib/builder/query/table-query.js.map +1 -1
- package/lib/builder/query-source.js.map +1 -1
- package/lib/builder/query-table.js.map +1 -1
- package/lib/client/mysql.js.map +1 -1
- package/lib/client/pg.js.map +1 -1
- package/lib/client/query-processor.js.map +1 -1
- package/lib/converter/param-converter.js.map +1 -1
- package/lib/converter/parameterized-converter.js.map +1 -1
- package/lib/converter/query-converter.js.map +1 -1
- package/lib/converter/result-converter.js.map +1 -1
- package/lib/converter/sql-converter.js.map +1 -1
- package/lib/converter/type-converter.js.map +1 -1
- package/lib/converter/types.js.map +1 -1
- package/lib/index._auto-generated_.js +2 -2
- package/lib/index._auto-generated_.js.map +1 -1
- package/lib/index.js.map +1 -1
- package/migrations/index.js.map +1 -1
- package/migrations/migrations_index._auto-generated_.js.map +1 -1
- package/package.json +2 -2
- package/src.d.ts +3 -3
- package/taon.jsonc +12 -12
- package/tmp-environment.json +4 -3
- package/websql/README.md +24 -24
- package/browser/esm2022/lib/builder/column/basic-column.mjs +0 -13
- package/browser/esm2022/lib/builder/column/boolean-column.mjs +0 -14
- package/browser/esm2022/lib/builder/column/comparable-column.mjs +0 -41
- package/browser/esm2022/lib/builder/column/date-column.mjs +0 -14
- package/browser/esm2022/lib/builder/column/number-column.mjs +0 -19
- package/browser/esm2022/lib/builder/column/query-column.mjs +0 -21
- package/browser/esm2022/lib/builder/column/string-column.mjs +0 -36
- package/browser/esm2022/lib/builder/column/value-column.mjs +0 -30
- package/browser/esm2022/lib/builder/condition/query-column-condition.mjs +0 -19
- package/browser/esm2022/lib/builder/condition/query-condition-chain.mjs +0 -28
- package/browser/esm2022/lib/builder/condition/query-condition.mjs +0 -6
- package/browser/esm2022/lib/builder/condition/query-join-condition.mjs +0 -19
- package/browser/esm2022/lib/builder/helpers/generics-helper.mjs +0 -5
- package/browser/esm2022/lib/builder/helpers/internal-types.mjs +0 -4
- package/browser/esm2022/lib/builder/join/joined-tables-chain.mjs +0 -14
- package/browser/esm2022/lib/builder/join/joined-tables.mjs +0 -22
- package/browser/esm2022/lib/builder/other/query-ordering.mjs +0 -17
- package/browser/esm2022/lib/builder/query/select-query.mjs +0 -48
- package/browser/esm2022/lib/builder/query/table-condition-query.mjs +0 -25
- package/browser/esm2022/lib/builder/query/table-query.mjs +0 -54
- package/browser/esm2022/lib/builder/query-source.mjs +0 -20
- package/browser/esm2022/lib/builder/query-table.mjs +0 -24
- package/browser/esm2022/lib/client/mysql.mjs +0 -10
- package/browser/esm2022/lib/client/query-processor.mjs +0 -45
- package/browser/esm2022/lib/converter/param-converter.mjs +0 -27
- package/browser/esm2022/lib/converter/parameterized-converter.mjs +0 -17
- package/browser/esm2022/lib/converter/query-converter.mjs +0 -282
- package/browser/esm2022/lib/converter/result-converter.mjs +0 -88
- package/browser/esm2022/lib/converter/sql-converter.mjs +0 -8
- package/browser/esm2022/lib/converter/type-converter.mjs +0 -39
- package/browser/esm2022/lib/converter/types.mjs +0 -4
- package/browser/esm2022/lib/index.mjs +0 -23
- package/browser/esm2022/public-api.mjs +0 -2
- package/browser/esm2022/taon-type-sql.mjs +0 -5
- package/client/esm2022/lib/builder/column/basic-column.mjs +0 -13
- package/client/esm2022/lib/builder/column/boolean-column.mjs +0 -14
- package/client/esm2022/lib/builder/column/comparable-column.mjs +0 -41
- package/client/esm2022/lib/builder/column/date-column.mjs +0 -14
- package/client/esm2022/lib/builder/column/number-column.mjs +0 -19
- package/client/esm2022/lib/builder/column/query-column.mjs +0 -21
- package/client/esm2022/lib/builder/column/string-column.mjs +0 -36
- package/client/esm2022/lib/builder/column/value-column.mjs +0 -30
- package/client/esm2022/lib/builder/condition/query-column-condition.mjs +0 -19
- package/client/esm2022/lib/builder/condition/query-condition-chain.mjs +0 -28
- package/client/esm2022/lib/builder/condition/query-condition.mjs +0 -6
- package/client/esm2022/lib/builder/condition/query-join-condition.mjs +0 -19
- package/client/esm2022/lib/builder/helpers/generics-helper.mjs +0 -5
- package/client/esm2022/lib/builder/helpers/internal-types.mjs +0 -4
- package/client/esm2022/lib/builder/join/joined-tables-chain.mjs +0 -14
- package/client/esm2022/lib/builder/join/joined-tables.mjs +0 -22
- package/client/esm2022/lib/builder/other/query-ordering.mjs +0 -17
- package/client/esm2022/lib/builder/query/select-query.mjs +0 -48
- package/client/esm2022/lib/builder/query/table-condition-query.mjs +0 -25
- package/client/esm2022/lib/builder/query/table-query.mjs +0 -54
- package/client/esm2022/lib/builder/query-source.mjs +0 -20
- package/client/esm2022/lib/builder/query-table.mjs +0 -24
- package/client/esm2022/lib/client/mysql.mjs +0 -10
- package/client/esm2022/lib/client/query-processor.mjs +0 -45
- package/client/esm2022/lib/converter/param-converter.mjs +0 -27
- package/client/esm2022/lib/converter/parameterized-converter.mjs +0 -17
- package/client/esm2022/lib/converter/query-converter.mjs +0 -282
- package/client/esm2022/lib/converter/result-converter.mjs +0 -88
- package/client/esm2022/lib/converter/sql-converter.mjs +0 -8
- package/client/esm2022/lib/converter/type-converter.mjs +0 -39
- package/client/esm2022/lib/converter/types.mjs +0 -4
- package/client/esm2022/lib/index.mjs +0 -23
- package/client/esm2022/public-api.mjs +0 -2
- package/client/esm2022/taon-type-sql.mjs +0 -5
- package/websql/esm2022/lib/builder/column/basic-column.mjs +0 -13
- package/websql/esm2022/lib/builder/column/boolean-column.mjs +0 -14
- package/websql/esm2022/lib/builder/column/comparable-column.mjs +0 -41
- package/websql/esm2022/lib/builder/column/date-column.mjs +0 -14
- package/websql/esm2022/lib/builder/column/number-column.mjs +0 -19
- package/websql/esm2022/lib/builder/column/query-column.mjs +0 -21
- package/websql/esm2022/lib/builder/column/string-column.mjs +0 -36
- package/websql/esm2022/lib/builder/column/value-column.mjs +0 -30
- package/websql/esm2022/lib/builder/condition/query-column-condition.mjs +0 -19
- package/websql/esm2022/lib/builder/condition/query-condition-chain.mjs +0 -28
- package/websql/esm2022/lib/builder/condition/query-condition.mjs +0 -6
- package/websql/esm2022/lib/builder/condition/query-join-condition.mjs +0 -19
- package/websql/esm2022/lib/builder/helpers/generics-helper.mjs +0 -5
- package/websql/esm2022/lib/builder/helpers/internal-types.mjs +0 -4
- package/websql/esm2022/lib/builder/join/joined-tables-chain.mjs +0 -14
- package/websql/esm2022/lib/builder/join/joined-tables.mjs +0 -22
- package/websql/esm2022/lib/builder/other/query-ordering.mjs +0 -17
- package/websql/esm2022/lib/builder/query/select-query.mjs +0 -48
- package/websql/esm2022/lib/builder/query/table-condition-query.mjs +0 -25
- package/websql/esm2022/lib/builder/query/table-query.mjs +0 -54
- package/websql/esm2022/lib/builder/query-source.mjs +0 -20
- package/websql/esm2022/lib/builder/query-table.mjs +0 -24
- package/websql/esm2022/lib/client/mysql.mjs +0 -10
- package/websql/esm2022/lib/client/query-processor.mjs +0 -45
- package/websql/esm2022/lib/converter/param-converter.mjs +0 -27
- package/websql/esm2022/lib/converter/parameterized-converter.mjs +0 -17
- package/websql/esm2022/lib/converter/query-converter.mjs +0 -282
- package/websql/esm2022/lib/converter/result-converter.mjs +0 -88
- package/websql/esm2022/lib/converter/sql-converter.mjs +0 -8
- package/websql/esm2022/lib/converter/type-converter.mjs +0 -39
- package/websql/esm2022/lib/converter/types.mjs +0 -4
- package/websql/esm2022/lib/index.mjs +0 -23
- package/websql/esm2022/public-api.mjs +0 -2
- package/websql/esm2022/taon-type-sql.mjs +0 -5
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { Log } from 'ng2-logger/websql';
|
|
2
|
-
import { convertQueryToParameterizedSQL } from '../converter/parameterized-converter';
|
|
3
|
-
import { convertQueryToSQL } from '../converter/sql-converter';
|
|
4
|
-
const log = Log.create('query processor');
|
|
5
|
-
const DEFAULT_OPTIONS = {
|
|
6
|
-
lineBreaks: false,
|
|
7
|
-
parameterized: true,
|
|
8
|
-
logging: true,
|
|
9
|
-
identifierQuote: '"'
|
|
10
|
-
};
|
|
11
|
-
function mySqlTypeCast(field, next) {
|
|
12
|
-
if (field.type == 'TINY' && field.length == 1) { // Boolean
|
|
13
|
-
let value = field.string();
|
|
14
|
-
if (value == '1')
|
|
15
|
-
return true;
|
|
16
|
-
if (value == '0')
|
|
17
|
-
return false;
|
|
18
|
-
return null;
|
|
19
|
-
}
|
|
20
|
-
else if (field.type == 'JSON') {
|
|
21
|
-
let value = field.string();
|
|
22
|
-
return value == null ? null : JSON.parse(value);
|
|
23
|
-
}
|
|
24
|
-
return next();
|
|
25
|
-
}
|
|
26
|
-
export function createQueryProcessor(client, _options = {}, engine = 'pg') {
|
|
27
|
-
let options = Object.assign({}, DEFAULT_OPTIONS, _options);
|
|
28
|
-
let queryOptions = {
|
|
29
|
-
lineBreak: options.lineBreaks ? '\n' : ' ',
|
|
30
|
-
nameEscape: _options.identifierQuote || (engine === 'mysql' ? '`' : '"')
|
|
31
|
-
};
|
|
32
|
-
return (query) => {
|
|
33
|
-
if (options.parameterized) {
|
|
34
|
-
let { sql, params } = convertQueryToParameterizedSQL(query, queryOptions, engine);
|
|
35
|
-
return client.query(sql, params);
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
let sql = convertQueryToSQL(query, queryOptions, engine);
|
|
39
|
-
return client.query(sql, undefined);
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
;
|
|
44
|
-
({}); // @--end-of-file-for-module=taon-type-sql lib/client/query-processor.ts
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktcHJvY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24tdHlwZS1zcWwvcHJvamVjdHMvdGFvbi10eXBlLXNxbC9zcmMvbGliL2NsaWVudC9xdWVyeS1wcm9jZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEdBQUcsRUFBUyxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBTS9ELE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBRXZDLENBQUE7QUFVRCxNQUFNLGVBQWUsR0FBMEI7SUFDN0MsVUFBVSxFQUFFLEtBQUs7SUFDakIsYUFBYSxFQUFFLElBQUk7SUFDbkIsT0FBTyxFQUFFLElBQUk7SUFDYixlQUFlLEVBQUUsR0FBRztDQUNyQixDQUFDO0FBRUYsU0FBUyxhQUFhLENBQUMsS0FBVSxFQUFFLElBQVM7SUFDMUMsSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVTtRQUN6RCxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0IsSUFBSSxLQUFLLElBQUksR0FBRztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzlCLElBQUksS0FBSyxJQUFJLEdBQUc7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7U0FBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksTUFBTSxFQUFFLENBQUM7UUFDaEMsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzNCLE9BQU8sS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRCxPQUFPLElBQUksRUFBRSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsTUFBVyxFQUFFLFdBQWtDLEVBQUUsRUFBRSxTQUFzQixJQUFJO0lBRWhILElBQUksT0FBTyxHQUEwQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxlQUFlLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFFbEYsSUFBSSxZQUFZLEdBQXFCO1FBQ25DLFNBQVMsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUc7UUFDMUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxlQUFlLElBQUksQ0FBQyxNQUFNLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztLQUN6RSxDQUFDO0lBMEJGLE9BQU8sQ0FBQyxLQUFVLEVBQUUsRUFBRTtRQUNwQixJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMxQixJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLDhCQUE4QixDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFFbEYsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUduQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksR0FBRyxHQUFHLGlCQUFpQixDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFFekQsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUd0QyxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUdBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsd0VBQXdFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IExvZywgTGV2ZWwgfSBmcm9tICduZzItbG9nZ2VyL3dlYnNxbCc7XG5pbXBvcnQgeyBjb252ZXJ0UXVlcnlUb1BhcmFtZXRlcml6ZWRTUUwgfSBmcm9tICcuLi9jb252ZXJ0ZXIvcGFyYW1ldGVyaXplZC1jb252ZXJ0ZXInO1xuaW1wb3J0IHsgY29udmVydFF1ZXJ5VG9TUUwgfSBmcm9tICcuLi9jb252ZXJ0ZXIvc3FsLWNvbnZlcnRlcic7XG5pbXBvcnQgeyBjb252ZXJ0UmVzdWx0IH0gZnJvbSBcIi4uL2NvbnZlcnRlci9yZXN1bHQtY29udmVydGVyXCI7XG5pbXBvcnQgeyBRdWVyeUVuZ2luZSwgQ29udmVydGVyT3B0aW9ucyB9IGZyb20gJy4uL2NvbnZlcnRlci90eXBlcyc7XG5pbXBvcnQgeyBRdWVyeVByb2Nlc3NvciB9IGZyb20gJy4uL2J1aWxkZXIvaGVscGVycy9pbnRlcm5hbC10eXBlcyc7XG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcblxuY29uc3QgbG9nID0gTG9nLmNyZWF0ZSgncXVlcnkgcHJvY2Vzc29yJyxcblxuKVxuXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5UHJvY2Vzc29yT3B0aW9ucyB7XG4gIGxpbmVCcmVha3M/OiBib29sZWFuLFxuICBwYXJhbWV0ZXJpemVkPzogYm9vbGVhbixcbiAgbG9nZ2luZz86IGJvb2xlYW4sXG4gIGxvZ2dlcj86IChzcWw6IHN0cmluZywgcGFyYW1zPzogYW55W10pID0+IHZvaWQsXG4gIGlkZW50aWZpZXJRdW90ZT86IHN0cmluZ1xufVxuXG5jb25zdCBERUZBVUxUX09QVElPTlM6IFF1ZXJ5UHJvY2Vzc29yT3B0aW9ucyA9IHtcbiAgbGluZUJyZWFrczogZmFsc2UsXG4gIHBhcmFtZXRlcml6ZWQ6IHRydWUsXG4gIGxvZ2dpbmc6IHRydWUsXG4gIGlkZW50aWZpZXJRdW90ZTogJ1wiJ1xufTtcblxuZnVuY3Rpb24gbXlTcWxUeXBlQ2FzdChmaWVsZDogYW55LCBuZXh0OiBhbnkpIHtcbiAgaWYgKGZpZWxkLnR5cGUgPT0gJ1RJTlknICYmIGZpZWxkLmxlbmd0aCA9PSAxKSB7IC8vIEJvb2xlYW5cbiAgICBsZXQgdmFsdWUgPSBmaWVsZC5zdHJpbmcoKTtcbiAgICBpZiAodmFsdWUgPT0gJzEnKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAodmFsdWUgPT0gJzAnKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIG51bGw7XG4gIH0gZWxzZSBpZiAoZmllbGQudHlwZSA9PSAnSlNPTicpIHtcbiAgICBsZXQgdmFsdWUgPSBmaWVsZC5zdHJpbmcoKTtcbiAgICByZXR1cm4gdmFsdWUgPT0gbnVsbCA/IG51bGwgOiBKU09OLnBhcnNlKHZhbHVlKTtcbiAgfVxuICByZXR1cm4gbmV4dCgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUXVlcnlQcm9jZXNzb3IoY2xpZW50OiBhbnksIF9vcHRpb25zOiBRdWVyeVByb2Nlc3Nvck9wdGlvbnMgPSB7fSwgZW5naW5lOiBRdWVyeUVuZ2luZSA9ICdwZycpOiBRdWVyeVByb2Nlc3NvciB7XG5cbiAgbGV0IG9wdGlvbnM6IFF1ZXJ5UHJvY2Vzc29yT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIERFRkFVTFRfT1BUSU9OUywgX29wdGlvbnMpO1xuXG4gIGxldCBxdWVyeU9wdGlvbnM6IENvbnZlcnRlck9wdGlvbnMgPSB7XG4gICAgbGluZUJyZWFrOiBvcHRpb25zLmxpbmVCcmVha3MgPyAnXFxuJyA6ICcgJyxcbiAgICBuYW1lRXNjYXBlOiBfb3B0aW9ucy5pZGVudGlmaWVyUXVvdGUgfHwgKGVuZ2luZSA9PT0gJ215c3FsJyA/ICdgJyA6ICdcIicpXG4gIH07XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbiAgcmV0dXJuIChxdWVyeTogYW55KSA9PiB7XG4gICAgaWYgKG9wdGlvbnMucGFyYW1ldGVyaXplZCkge1xuICAgICAgbGV0IHsgc3FsLCBwYXJhbXMgfSA9IGNvbnZlcnRRdWVyeVRvUGFyYW1ldGVyaXplZFNRTChxdWVyeSwgcXVlcnlPcHRpb25zLCBlbmdpbmUpO1xuXG4gICAgICByZXR1cm4gY2xpZW50LnF1ZXJ5KHNxbCwgcGFyYW1zKTtcblxuXG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBzcWwgPSBjb252ZXJ0UXVlcnlUb1NRTChxdWVyeSwgcXVlcnlPcHRpb25zLCBlbmdpbmUpO1xuXG4gICAgICByZXR1cm4gY2xpZW50LnF1ZXJ5KHNxbCwgdW5kZWZpbmVkKTtcblxuXG4gICAgfVxuICB9O1xufVxuXG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10YW9uLXR5cGUtc3FsIGxpYi9jbGllbnQvcXVlcnktcHJvY2Vzc29yLnRzIl19
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
export function convertSubstitutionParam(param) {
|
|
2
|
-
if (param == null)
|
|
3
|
-
return 'NULL';
|
|
4
|
-
if (typeof param === 'string' || param instanceof String) {
|
|
5
|
-
return `'${String(param)}'`;
|
|
6
|
-
}
|
|
7
|
-
else if (typeof param === 'boolean' || param instanceof Boolean) {
|
|
8
|
-
return String(param).toUpperCase();
|
|
9
|
-
}
|
|
10
|
-
else if (param instanceof Date) {
|
|
11
|
-
return `'${param.toISOString()}'`;
|
|
12
|
-
}
|
|
13
|
-
else if (typeof param === 'number' || param instanceof Number) {
|
|
14
|
-
return String(param);
|
|
15
|
-
}
|
|
16
|
-
return `'${JSON.stringify(param)}'`;
|
|
17
|
-
}
|
|
18
|
-
export function convertEscapedParam(param) {
|
|
19
|
-
if (typeof param === 'object' && !(param == null || param instanceof String || param instanceof Number ||
|
|
20
|
-
param instanceof Boolean || param instanceof Date)) {
|
|
21
|
-
return JSON.stringify(param);
|
|
22
|
-
}
|
|
23
|
-
return param;
|
|
24
|
-
}
|
|
25
|
-
;
|
|
26
|
-
({}); // @--end-of-file-for-module=taon-type-sql lib/converter/param-converter.ts
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW0tY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24tdHlwZS1zcWwvcHJvamVjdHMvdGFvbi10eXBlLXNxbC9zcmMvbGliL2NvbnZlcnRlci9wYXJhbS1jb252ZXJ0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxVQUFVLHdCQUF3QixDQUFDLEtBQVU7SUFDL0MsSUFBSSxLQUFLLElBQUksSUFBSTtRQUFFLE9BQU8sTUFBTSxDQUFDO0lBQ2pDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssWUFBWSxNQUFNLEVBQUUsQ0FBQztRQUN2RCxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDaEMsQ0FBQztTQUFNLElBQUksT0FBTyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssWUFBWSxPQUFPLEVBQUUsQ0FBQztRQUNoRSxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QyxDQUFDO1NBQU0sSUFBSSxLQUFLLFlBQVksSUFBSSxFQUFFLENBQUM7UUFDL0IsT0FBTyxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDO0lBQ3RDLENBQUM7U0FBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLFlBQVksTUFBTSxFQUFFLENBQUM7UUFDOUQsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUNELE9BQU8sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7QUFDeEMsQ0FBQztBQUlELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxLQUFVO0lBQzFDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssWUFBWSxNQUFNLElBQUksS0FBSyxZQUFZLE1BQU07UUFDbEcsS0FBSyxZQUFZLE9BQU8sSUFBSSxLQUFLLFlBQVksSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNyRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUM7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDJFQUEyRSIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0U3Vic3RpdHV0aW9uUGFyYW0ocGFyYW06IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKHBhcmFtID09IG51bGwpIHJldHVybiAnTlVMTCc7XG4gICAgaWYgKHR5cGVvZiBwYXJhbSA9PT0gJ3N0cmluZycgfHwgcGFyYW0gaW5zdGFuY2VvZiBTdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIGAnJHtTdHJpbmcocGFyYW0pfSdgO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHBhcmFtID09PSAnYm9vbGVhbicgfHwgcGFyYW0gaW5zdGFuY2VvZiBCb29sZWFuKSB7XG4gICAgICAgIHJldHVybiBTdHJpbmcocGFyYW0pLnRvVXBwZXJDYXNlKCk7XG4gICAgfSBlbHNlIGlmIChwYXJhbSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgcmV0dXJuIGAnJHtwYXJhbS50b0lTT1N0cmluZygpfSdgO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHBhcmFtID09PSAnbnVtYmVyJyB8fCBwYXJhbSBpbnN0YW5jZW9mIE51bWJlcikge1xuICAgICAgICByZXR1cm4gU3RyaW5nKHBhcmFtKTtcbiAgICB9XG4gICAgcmV0dXJuIGAnJHtKU09OLnN0cmluZ2lmeShwYXJhbSl9J2A7XG59XG5cblxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydEVzY2FwZWRQYXJhbShwYXJhbTogYW55KSB7XG4gICAgaWYgKHR5cGVvZiBwYXJhbSA9PT0gJ29iamVjdCcgJiYgIShwYXJhbSA9PSBudWxsIHx8IHBhcmFtIGluc3RhbmNlb2YgU3RyaW5nIHx8IHBhcmFtIGluc3RhbmNlb2YgTnVtYmVyIHx8XG4gICAgICAgIHBhcmFtIGluc3RhbmNlb2YgQm9vbGVhbiB8fCBwYXJhbSBpbnN0YW5jZW9mIERhdGUpKSB7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShwYXJhbSk7XG4gICAgfVxuICAgIHJldHVybiBwYXJhbTtcbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24tdHlwZS1zcWwgbGliL2NvbnZlcnRlci9wYXJhbS1jb252ZXJ0ZXIudHMiXX0=
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { createQueryConverter } from "./query-converter";
|
|
2
|
-
import { convertEscapedParam } from './param-converter';
|
|
3
|
-
let pgParamConverter = (index) => '$' + index;
|
|
4
|
-
let mySqlParamConverter = (index) => '?';
|
|
5
|
-
function convertSingleParam(param, params, paramConverter) {
|
|
6
|
-
params.push(convertEscapedParam(param));
|
|
7
|
-
return paramConverter(params.length);
|
|
8
|
-
}
|
|
9
|
-
export function convertQueryToParameterizedSQL(query, options, engine) {
|
|
10
|
-
let params = [];
|
|
11
|
-
let paramConverter = engine === 'mysql' ? mySqlParamConverter : pgParamConverter;
|
|
12
|
-
let sql = createQueryConverter((param) => convertSingleParam(param, params, paramConverter), options, engine)(query);
|
|
13
|
-
return { sql, params };
|
|
14
|
-
}
|
|
15
|
-
;
|
|
16
|
-
({}); // @--end-of-file-for-module=taon-type-sql lib/converter/parameterized-converter.ts
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyaXplZC1jb252ZXJ0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi10eXBlLXNxbC9wcm9qZWN0cy90YW9uLXR5cGUtc3FsL3NyYy9saWIvY29udmVydGVyL3BhcmFtZXRlcml6ZWQtY29udmVydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBR3RELElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7QUFDdEQsSUFBSSxtQkFBbUIsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDO0FBRWpELFNBQVMsa0JBQWtCLENBQUMsS0FBVSxFQUFFLE1BQWEsRUFBRSxjQUFzQztJQUN6RixNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDeEMsT0FBTyxjQUFjLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxNQUFNLFVBQVUsOEJBQThCLENBQUMsS0FBVSxFQUFFLE9BQXlCLEVBQUUsTUFBbUI7SUFDckcsSUFBSSxNQUFNLEdBQVUsRUFBRSxDQUFDO0lBRXZCLElBQUksY0FBYyxHQUFHLE1BQU0sS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqRixJQUFJLEdBQUcsR0FBRyxvQkFBb0IsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxjQUFjLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFMUgsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUMzQixDQUFDO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxtRkFBbUYiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHtjcmVhdGVRdWVyeUNvbnZlcnRlcn0gZnJvbSBcIi4vcXVlcnktY29udmVydGVyXCI7XG5pbXBvcnQge2NvbnZlcnRFc2NhcGVkUGFyYW19IGZyb20gJy4vcGFyYW0tY29udmVydGVyJztcbmltcG9ydCB7UXVlcnlFbmdpbmUsIENvbnZlcnRlck9wdGlvbnN9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmxldCBwZ1BhcmFtQ29udmVydGVyID0gKGluZGV4OiBudW1iZXIpID0+ICckJyArIGluZGV4O1xubGV0IG15U3FsUGFyYW1Db252ZXJ0ZXIgPSAoaW5kZXg6IG51bWJlcikgPT4gJz8nO1xuXG5mdW5jdGlvbiBjb252ZXJ0U2luZ2xlUGFyYW0ocGFyYW06IGFueSwgcGFyYW1zOiBhbnlbXSwgcGFyYW1Db252ZXJ0ZXI6IChwYXJhbTogYW55KSA9PiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHBhcmFtcy5wdXNoKGNvbnZlcnRFc2NhcGVkUGFyYW0ocGFyYW0pKTtcbiAgICByZXR1cm4gcGFyYW1Db252ZXJ0ZXIocGFyYW1zLmxlbmd0aCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0UXVlcnlUb1BhcmFtZXRlcml6ZWRTUUwocXVlcnk6IGFueSwgb3B0aW9uczogQ29udmVydGVyT3B0aW9ucywgZW5naW5lOiBRdWVyeUVuZ2luZSkge1xuICAgIGxldCBwYXJhbXM6IGFueVtdID0gW107XG5cbiAgICBsZXQgcGFyYW1Db252ZXJ0ZXIgPSBlbmdpbmUgPT09ICdteXNxbCcgPyBteVNxbFBhcmFtQ29udmVydGVyIDogcGdQYXJhbUNvbnZlcnRlcjtcbiAgICBsZXQgc3FsID0gY3JlYXRlUXVlcnlDb252ZXJ0ZXIoKHBhcmFtOiBhbnkpID0+IGNvbnZlcnRTaW5nbGVQYXJhbShwYXJhbSwgcGFyYW1zLCBwYXJhbUNvbnZlcnRlciksIG9wdGlvbnMsIGVuZ2luZSkocXVlcnkpO1xuXG4gICAgcmV0dXJuIHsgc3FsLCBwYXJhbXMgfTtcbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24tdHlwZS1zcWwgbGliL2NvbnZlcnRlci9wYXJhbWV0ZXJpemVkLWNvbnZlcnRlci50cyJdfQ==
|
|
@@ -1,282 +0,0 @@
|
|
|
1
|
-
import { string, number, date, boolean } from './type-converter';
|
|
2
|
-
export function createQueryConverter(paramConverter, options, engine) {
|
|
3
|
-
return convertQuery;
|
|
4
|
-
function convertQuery(query) {
|
|
5
|
-
if (query._action === 'select')
|
|
6
|
-
return convertSelectQuery(query);
|
|
7
|
-
if (query._action === 'delete')
|
|
8
|
-
return convertDeleteQuery(query);
|
|
9
|
-
if (query._action === 'update')
|
|
10
|
-
return convertUpdateQuery(query);
|
|
11
|
-
if (query._action === 'insert')
|
|
12
|
-
return convertInsertQuery(query);
|
|
13
|
-
throw new Error('Unknown query type:' + query._action);
|
|
14
|
-
}
|
|
15
|
-
function convertDeleteQuery(query) {
|
|
16
|
-
let s = 'DELETE FROM ' + convertTable(query._table);
|
|
17
|
-
s += convertConditions(query._conditions);
|
|
18
|
-
return s;
|
|
19
|
-
}
|
|
20
|
-
function convertUpdateQuery(query) {
|
|
21
|
-
let s = 'UPDATE ' + convertTable(query._table) + ' SET ';
|
|
22
|
-
s += convertUpdateSetters(query._table, query._entity);
|
|
23
|
-
s += convertConditions(query._conditions);
|
|
24
|
-
return s;
|
|
25
|
-
}
|
|
26
|
-
function convertUpdateSetters(table, entity) {
|
|
27
|
-
return Object.keys(entity).sort().map(key => {
|
|
28
|
-
let value = entity[key];
|
|
29
|
-
let column = table[key];
|
|
30
|
-
return convertColumnName(column) + ' = ' + convertParam(column, value);
|
|
31
|
-
}).join(', ');
|
|
32
|
-
}
|
|
33
|
-
function convertInsertQuery(query) {
|
|
34
|
-
let items = Array.isArray(query._entity) ? query._entity : [query._entity];
|
|
35
|
-
let keySet = items.reduce((set, item) => {
|
|
36
|
-
Object.keys(item).forEach(key => set.add(key));
|
|
37
|
-
return set;
|
|
38
|
-
}, new Set());
|
|
39
|
-
let keys = Array.from(keySet).sort();
|
|
40
|
-
let s = 'INSERT INTO ' + convertTable(query._table) + ' ';
|
|
41
|
-
s += '(' + keys.map(key => convertColumnName(query._table[key])).join(', ') + ')';
|
|
42
|
-
s += options.lineBreak + 'VALUES ';
|
|
43
|
-
s += items.map(item => convertInsertItem(query._table, item, keys))
|
|
44
|
-
.map((row) => '(' + row + ')').join(', ');
|
|
45
|
-
s += getPgInsertReturningIfNeeded(query);
|
|
46
|
-
return s;
|
|
47
|
-
}
|
|
48
|
-
function getPgInsertReturningIfNeeded(query) {
|
|
49
|
-
if (engine === 'pg' && query._action === 'insert' && !Array.isArray(query._entity) &&
|
|
50
|
-
query._table.$id && query._table.$id._table && query._table.$id._name) {
|
|
51
|
-
return ' RETURNING ' + convertColumnName(query._table.$id);
|
|
52
|
-
}
|
|
53
|
-
return '';
|
|
54
|
-
}
|
|
55
|
-
function convertInsertItem(table, entity, keys) {
|
|
56
|
-
return keys.map(key => {
|
|
57
|
-
let value = entity[key];
|
|
58
|
-
let column = table[key];
|
|
59
|
-
return convertParam(column, value);
|
|
60
|
-
}).join(', ');
|
|
61
|
-
}
|
|
62
|
-
function convertSelectQuery(query) {
|
|
63
|
-
let s = 'SELECT ';
|
|
64
|
-
if (query._distinct) {
|
|
65
|
-
s += 'DISTINCT ';
|
|
66
|
-
}
|
|
67
|
-
if (query._columns == null || query._columns.length === 0) {
|
|
68
|
-
s += '*';
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
s += query._columns.map((column) => convertColumn(column)).join(', ');
|
|
72
|
-
}
|
|
73
|
-
s += options.lineBreak + 'FROM ';
|
|
74
|
-
if (query._tables) {
|
|
75
|
-
s += query._tables.map((table) => table._parent ? convertJoin(table) : convertTable(table)).join(', ');
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
s += convertTable(query._table);
|
|
79
|
-
}
|
|
80
|
-
s += convertConditions(query._conditions);
|
|
81
|
-
if (query._groupBy && query._groupBy.length > 0) {
|
|
82
|
-
s += options.lineBreak + 'GROUP BY ';
|
|
83
|
-
s += query._groupBy.map((column) => convertColumn(column)).join(', ');
|
|
84
|
-
}
|
|
85
|
-
s += convertConditions(query._having, 'HAVING');
|
|
86
|
-
if (query._orderings && query._orderings.length > 0) {
|
|
87
|
-
s += options.lineBreak + 'ORDER BY ';
|
|
88
|
-
s += query._orderings.map((ordering) => convertOrdering(ordering)).join(', ');
|
|
89
|
-
}
|
|
90
|
-
if (query._limit != null) {
|
|
91
|
-
s += options.lineBreak + 'LIMIT ' + number(query._limit);
|
|
92
|
-
}
|
|
93
|
-
if (query._offset != null) {
|
|
94
|
-
s += options.lineBreak + 'OFFSET ' + number(query._offset);
|
|
95
|
-
}
|
|
96
|
-
return s;
|
|
97
|
-
}
|
|
98
|
-
function convertConditions(conditions, keyword = 'WHERE') {
|
|
99
|
-
let s = '';
|
|
100
|
-
if (conditions && conditions.length > 0) {
|
|
101
|
-
s += options.lineBreak + keyword + ' ';
|
|
102
|
-
preprocessConditions(conditions);
|
|
103
|
-
s += conditions.map(condition => convertCondition(condition, true)).join(' AND ');
|
|
104
|
-
}
|
|
105
|
-
return s;
|
|
106
|
-
}
|
|
107
|
-
function convertJoin(joinChain) {
|
|
108
|
-
let items = [];
|
|
109
|
-
while (joinChain) {
|
|
110
|
-
items.push(joinChain);
|
|
111
|
-
joinChain = joinChain._parent;
|
|
112
|
-
}
|
|
113
|
-
let root = items[items.length - 1];
|
|
114
|
-
let s = convertTable(root);
|
|
115
|
-
for (let i = items.length - 2; i >= 0; i -= 2) {
|
|
116
|
-
let table = items[i]._table;
|
|
117
|
-
let modifier = items[i]._modifier;
|
|
118
|
-
let condition = items[i - 1]._condition;
|
|
119
|
-
let param = convertColumn(condition._otherColumn);
|
|
120
|
-
s += ' ' + modifier.toUpperCase() + ' JOIN ' + convertTable(table) + ' ON ' +
|
|
121
|
-
convertColumnCondition(condition, param);
|
|
122
|
-
}
|
|
123
|
-
return s;
|
|
124
|
-
}
|
|
125
|
-
function convertOrdering(ordering) {
|
|
126
|
-
if (ordering._column) {
|
|
127
|
-
let s = convertColumn(ordering._column);
|
|
128
|
-
if (ordering._nullsPosition != null) { // "NULLS FIRST" only exists in PG, this is the general solution
|
|
129
|
-
s += ' IS NULL ' + (ordering._nullsPosition === 'FIRST' ? 'DESC' : 'ASC') + ', ' + s;
|
|
130
|
-
}
|
|
131
|
-
if (ordering._direction === 'ASC')
|
|
132
|
-
s += ' ASC';
|
|
133
|
-
if (ordering._direction === 'DESC')
|
|
134
|
-
s += ' DESC';
|
|
135
|
-
return s;
|
|
136
|
-
}
|
|
137
|
-
else {
|
|
138
|
-
return convertColumn(ordering);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
function convertTable(table) {
|
|
142
|
-
return options.nameEscape + table._$name + options.nameEscape;
|
|
143
|
-
}
|
|
144
|
-
function convertColumn(column) {
|
|
145
|
-
let s = '';
|
|
146
|
-
if (!(column._name === '*' && column._modifiers.length > 0 && column._modifiers[0].name === 'count')) {
|
|
147
|
-
s += convertTable(column._table) + '.';
|
|
148
|
-
}
|
|
149
|
-
s += convertColumnName(column);
|
|
150
|
-
return convertColumnModifiers(s, column);
|
|
151
|
-
}
|
|
152
|
-
function convertColumnModifiers(s, column) {
|
|
153
|
-
if (column._modifiers) {
|
|
154
|
-
column._modifiers.forEach((modifier) => {
|
|
155
|
-
let name = modifier.name;
|
|
156
|
-
if (name === 'lower')
|
|
157
|
-
s = 'LOWER(' + s + ')';
|
|
158
|
-
else if (name === 'upper')
|
|
159
|
-
s = 'UPPER(' + s + ')';
|
|
160
|
-
else if (name === 'count')
|
|
161
|
-
s = 'COUNT(' + s + ')';
|
|
162
|
-
else if (name === 'sum')
|
|
163
|
-
s = 'SUM(' + s + ')';
|
|
164
|
-
else if (name === 'avg')
|
|
165
|
-
s = 'AVG(' + s + ')';
|
|
166
|
-
else if (name === 'min')
|
|
167
|
-
s = 'MIN(' + s + ')';
|
|
168
|
-
else if (name === 'max')
|
|
169
|
-
s = 'MAX(' + s + ')';
|
|
170
|
-
else if (name === 'as')
|
|
171
|
-
s = s + ' AS ' + options.nameEscape + modifier.params + options.nameEscape;
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
return s + '';
|
|
175
|
-
}
|
|
176
|
-
function convertColumnName(column) {
|
|
177
|
-
if (column._name === '*')
|
|
178
|
-
return column._name;
|
|
179
|
-
let name = typeof column._name === 'string' ? column._name : column._name.name;
|
|
180
|
-
return options.nameEscape + name + options.nameEscape;
|
|
181
|
-
}
|
|
182
|
-
function preprocessConditions(conditions) {
|
|
183
|
-
conditions.forEach(condition => {
|
|
184
|
-
if (conditions.length > 1 && condition._sibling) {
|
|
185
|
-
condition._parenthesis = true;
|
|
186
|
-
}
|
|
187
|
-
preprocessParams(condition);
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
function preprocessParams(condition) {
|
|
191
|
-
if (condition._sibling) {
|
|
192
|
-
preprocessParams(condition._sibling);
|
|
193
|
-
}
|
|
194
|
-
if (!condition._sibling && !condition._child) {
|
|
195
|
-
condition.__param = getConditionParam(condition);
|
|
196
|
-
}
|
|
197
|
-
if (condition._child) {
|
|
198
|
-
preprocessParams(condition._child);
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
function convertCondition(condition, root = false) {
|
|
202
|
-
if (!condition._sibling && !condition._child) {
|
|
203
|
-
return convertColumnCondition(condition, condition.__param);
|
|
204
|
-
}
|
|
205
|
-
let s = '';
|
|
206
|
-
if (condition._child) {
|
|
207
|
-
s += convertCondition(condition._child);
|
|
208
|
-
}
|
|
209
|
-
if (condition._sibling) {
|
|
210
|
-
s = convertCondition(condition._sibling, root) + ' ' + condition._chainType.toUpperCase() + ' ' + s;
|
|
211
|
-
}
|
|
212
|
-
if (condition._parenthesis || ((!root || condition._negation) && condition._child)) {
|
|
213
|
-
s = '( ' + s + ' )';
|
|
214
|
-
}
|
|
215
|
-
if (condition._negation) {
|
|
216
|
-
s = 'NOT ' + s;
|
|
217
|
-
}
|
|
218
|
-
return s;
|
|
219
|
-
}
|
|
220
|
-
function convertColumnCondition(condition, param) {
|
|
221
|
-
let s = convertColumn(condition._column);
|
|
222
|
-
s += getConditionString(condition, param);
|
|
223
|
-
return s;
|
|
224
|
-
}
|
|
225
|
-
function getConditionString(condition, param) {
|
|
226
|
-
switch (condition._type) {
|
|
227
|
-
case 'eq': return ' = ' + param;
|
|
228
|
-
case 'ne': return ' <> ' + param;
|
|
229
|
-
case 'lt': return ' < ' + param;
|
|
230
|
-
case 'gt': return ' > ' + param;
|
|
231
|
-
case 'lte': return ' <= ' + param;
|
|
232
|
-
case 'gte': return ' >= ' + param;
|
|
233
|
-
case 'is-null': return ' IS NULL';
|
|
234
|
-
case 'is-not-null': return ' IS NOT NULL';
|
|
235
|
-
case 'like': return ' LIKE ' + param;
|
|
236
|
-
case 'not-like': return ' NOT LIKE ' + param;
|
|
237
|
-
case 'in': return ' IN (' + param + ')';
|
|
238
|
-
case 'not-in': return ' NOT IN (' + param + ')';
|
|
239
|
-
case 'between': return ' BETWEEN ' + param;
|
|
240
|
-
case 'not-between': return ' NOT BETWEEN ' + param;
|
|
241
|
-
default: return '';
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
function getConditionParam(condition) {
|
|
245
|
-
let param = '';
|
|
246
|
-
if (condition._otherColumn) {
|
|
247
|
-
param = convertColumn(condition._otherColumn);
|
|
248
|
-
}
|
|
249
|
-
else {
|
|
250
|
-
let _convertParam = (param) => convertParam(condition._column, param);
|
|
251
|
-
if (condition._type === 'in' || condition._type === 'not-in') {
|
|
252
|
-
param = condition._values.map((value) => _convertParam(value)).join(', ');
|
|
253
|
-
}
|
|
254
|
-
else if (condition._type === 'between' || condition._type === 'not-between') {
|
|
255
|
-
param = _convertParam(condition._values[0]) + ' AND ' + _convertParam(condition._values[1]);
|
|
256
|
-
}
|
|
257
|
-
else if (condition._type !== 'is-null' && condition._type !== 'is-not-null') {
|
|
258
|
-
param = _convertParam(condition._values[0]);
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
return param;
|
|
262
|
-
}
|
|
263
|
-
function convertParam(column, param) {
|
|
264
|
-
if (param == null)
|
|
265
|
-
return 'NULL';
|
|
266
|
-
return paramConverter(getTypedParam(column._type, param));
|
|
267
|
-
}
|
|
268
|
-
function getTypedParam(type, param) {
|
|
269
|
-
if (type === 'number')
|
|
270
|
-
return number(param);
|
|
271
|
-
else if (type === 'boolean')
|
|
272
|
-
return boolean(param);
|
|
273
|
-
else if (type === 'date')
|
|
274
|
-
return date(param);
|
|
275
|
-
else if (type === 'string')
|
|
276
|
-
return string(param);
|
|
277
|
-
return param;
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
;
|
|
281
|
-
({}); // @--end-of-file-for-module=taon-type-sql lib/converter/query-converter.ts
|
|
282
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24tdHlwZS1zcWwvcHJvamVjdHMvdGFvbi10eXBlLXNxbC9zcmMvbGliL2NvbnZlcnRlci9xdWVyeS1jb252ZXJ0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSWpFLE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxjQUFzQyxFQUFFLE9BQXlCLEVBQUUsTUFBbUI7SUFFdkgsT0FBTyxZQUFZLENBQUM7SUFFcEIsU0FBUyxZQUFZLENBQUMsS0FBVTtRQUM1QixJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssUUFBUTtZQUFFLE9BQU8sa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLFFBQVE7WUFBRSxPQUFPLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxRQUFRO1lBQUUsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssUUFBUTtZQUFFLE9BQU8sa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELFNBQVMsa0JBQWtCLENBQUMsS0FBVTtRQUNsQyxJQUFJLENBQUMsR0FBRyxjQUFjLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRCxDQUFDLElBQUksaUJBQWlCLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzFD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QUM7SUFDOUQsQ0FBQztJQUVELFNBQVMsYUFBYSxDQUFDLElBQVksRUFBRSxLQUFVO1FBQzNDLElBQUksSUFBSSxLQUFLLFFBQVE7WUFBRSxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN2QyxJQUFJLElBQUksS0FBSyxTQUFTO1lBQUUsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDOUMsSUFBSSxJQUFJLEtBQUssTUFBTTtZQUFFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3hDLElBQUksSUFBSSxLQUFLLFFBQVE7WUFBRSxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0FBQ0wsQ0FBQztBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsMkVBQTJFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IHN0cmluZywgbnVtYmVyLCBkYXRlLCBib29sZWFuIH0gZnJvbSAnLi90eXBlLWNvbnZlcnRlcic7XG5pbXBvcnQgeyBRdWVyeUVuZ2luZSwgQ29udmVydGVyT3B0aW9ucyB9IGZyb20gXCIuL3R5cGVzXCI7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVF1ZXJ5Q29udmVydGVyKHBhcmFtQ29udmVydGVyOiAocGFyYW06IGFueSkgPT4gc3RyaW5nLCBvcHRpb25zOiBDb252ZXJ0ZXJPcHRpb25zLCBlbmdpbmU6IFF1ZXJ5RW5naW5lKSB7XG5cbiAgICByZXR1cm4gY29udmVydFF1ZXJ5O1xuXG4gICAgZnVuY3Rpb24gY29udmVydFF1ZXJ5KHF1ZXJ5OiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBpZiAocXVlcnkuX2FjdGlvbiA9PT0gJ3NlbGVjdCcpIHJldHVybiBjb252ZXJ0U2VsZWN0UXVlcnkocXVlcnkpO1xuICAgICAgICBpZiAocXVlcnkuX2FjdGlvbiA9PT0gJ2RlbGV0ZScpIHJldHVybiBjb252ZXJ0RGVsZXRlUXVlcnkocXVlcnkpO1xuICAgICAgICBpZiAocXVlcnkuX2FjdGlvbiA9PT0gJ3VwZGF0ZScpIHJldHVybiBjb252ZXJ0VXBkYXRlUXVlcnkocXVlcnkpO1xuICAgICAgICBpZiAocXVlcnkuX2FjdGlvbiA9PT0gJ2luc2VydCcpIHJldHVybiBjb252ZXJ0SW5zZXJ0UXVlcnkocXVlcnkpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gcXVlcnkgdHlwZTonICsgcXVlcnkuX2FjdGlvbik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29udmVydERlbGV0ZVF1ZXJ5KHF1ZXJ5OiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBsZXQgcyA9ICdERUxFVEUgRlJPTSAnICsgY29udmVydFRhYmxlKHF1ZXJ5Ll90YWJsZSk7XG4gICAgICAgIHMgKz0gY29udmVydENvbmRpdGlvbnMocXVlcnkuX2NvbmRpdGlvbnMpO1xuICAgICAgICByZXR1cm4gcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb252ZXJ0VXBkYXRlUXVlcnkocXVlcnk6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGxldCBzID0gJ1VQREFURSAnICsgY29udmVydFRhYmxlKHF1ZXJ5Ll90YWJsZSkgKyAnIFNFVCAnO1xuICAgICAgICBzICs9IGNvbnZlcnRVcGRhdGVTZXR0ZXJzKHF1ZXJ5Ll90YWJsZSwgcXVlcnkuX2VudGl0eSk7XG4gICAgICAgIHMgKz0gY29udmVydENvbmRpdGlvbnMocXVlcnkuX2NvbmRpdGlvbnMpO1xuICAgICAgICByZXR1cm4gcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb252ZXJ0VXBkYXRlU2V0dGVycyh0YWJsZTogYW55LCBlbnRpdHk6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhlbnRpdHkpLnNvcnQoKS5tYXAoa2V5ID0+IHtcbiAgICAgICAgICAgIGxldCB2YWx1ZSA9IGVudGl0eVtrZXldO1xuICAgICAgICAgICAgbGV0IGNvbHVtbiA9IHRhYmxlW2tleV07XG4gICAgICAgICAgICByZXR1cm4gY29udmVydENvbHVtbk5hbWUoY29sdW1uKSArICcgPSAnICsgY29udmVydFBhcmFtKGNvbHVtbiwgdmFsdWUpO1xuICAgICAgICB9KS5qb2luKCcsICcpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbnZlcnRJbnNlcnRRdWVyeShxdWVyeTogYW55KTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGl0ZW1zOiBhbnlbXSA9IEFycmF5LmlzQXJyYXkocXVlcnkuX2VudGl0eSkgPyBxdWVyeS5fZW50aXR5IDogW3F1ZXJ5Ll9lbnRpdHldO1xuICAgICAgICBsZXQga2V5U2V0OiBTZXQ8c3RyaW5nPiA9IGl0ZW1zLnJlZHVjZSgoc2V0OiBTZXQ8c3RyaW5nPiwgaXRlbSkgPT4ge1xuICAgICAgICAgICAgT2JqZWN0LmtleXMoaXRlbSkuZm9yRWFjaChrZXkgPT4gc2V0LmFkZChrZXkpKTsgcmV0dXJuIHNldDtcbiAgICAgICAgfSwgbmV3IFNldDxzdHJpbmc+KCkpO1xuICAgICAgICBsZXQga2V5cyA9IEFycmF5LmZyb20oa2V5U2V0KS5zb3J0KCk7XG5cbiAgICAgICAgbGV0IHMgPSAnSU5TRVJUIElOVE8gJyArIGNvbnZlcnRUYWJsZShxdWVyeS5fdGFibGUpICsgJyAnO1xuICAgICAgICBzICs9ICcoJyArIGtleXMubWFwKGtleSA9PiBjb252ZXJ0Q29sdW1uTmFtZShxdWVyeS5fdGFibGVba2V5XSkpLmpvaW4oJywgJykgKyAnKSc7XG4gICAgICAgIHMgKz0gb3B0aW9ucy5saW5lQnJlYWsgKyAnVkFMVUVTICc7XG4gICAgICAgIHMgKz0gaXRlbXMubWFwKGl0ZW0gPT4gY29udmVydEluc2VydEl0ZW0ocXVlcnkuX3RhYmxlLCBpdGVtLCBrZXlzKSlcbiAgICAgICAgICAgIC5tYXAoKHJvdzogc3RyaW5nKSA9PiAnKCcgKyByb3cgKyAnKScpLmpvaW4oJywgJyk7XG5cbiAgICAgICAgcyArPSBnZXRQZ0luc2VydFJldHVybmluZ0lmTmVlZGVkKHF1ZXJ5KTtcbiAgICAgICAgcmV0dXJuIHM7XG4gICAgfVxuXG5cbiAgICBmdW5jdGlvbiBnZXRQZ0luc2VydFJldHVybmluZ0lmTmVlZGVkKHF1ZXJ5OiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBpZiAoZW5naW5lID09PSAncGcnICYmIHF1ZXJ5Ll9hY3Rpb24gPT09ICdpbnNlcnQnICYmICFBcnJheS5pc0FycmF5KHF1ZXJ5Ll9lbnRpdHkpICYmXG4gICAgICAgICAgICBxdWVyeS5fdGFibGUuJGlkICYmIHF1ZXJ5Ll90YWJsZS4kaWQuX3RhYmxlICYmIHF1ZXJ5Ll90YWJsZS4kaWQuX25hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiAnIFJFVFVSTklORyAnICsgY29udmVydENvbHVtbk5hbWUocXVlcnkuX3RhYmxlLiRpZCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbnZlcnRJbnNlcnRJdGVtKHRhYmxlOiBhbnksIGVudGl0eTogYW55LCBrZXlzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBrZXlzLm1hcChrZXkgPT4ge1xuICAgICAgICAgICAgbGV0IHZhbHVlID0gZW50aXR5W2tleV07XG4gICAgICAgICAgICBsZXQgY29sdW1uID0gdGFibGVba2V5XTtcbiAgICAgICAgICAgIHJldHVybiBjb252ZXJ0UGFyYW0oY29sdW1uLCB2YWx1ZSk7XG4gICAgICAgIH0pLmpvaW4oJywgJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29udmVydFNlbGVjdFF1ZXJ5KHF1ZXJ5OiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBsZXQgcyA9ICdTRUxFQ1QgJztcbiAgICAgICAgaWYgKHF1ZXJ5Ll9kaXN0aW5jdCkge1xuICAgICAgICAgICAgcyArPSAnRElTVElOQ1QgJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChxdWVyeS5fY29sdW1ucyA9PSBudWxsIHx8IHF1ZXJ5Ll9jb2x1bW5zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcyArPSAnKidcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHMgKz0gcXVlcnkuX2NvbHVtbnMubWFwKChjb2x1bW46IGFueSkgPT4gY29udmVydENvbHVtbihjb2x1bW4pKS5qb2luKCcsICcpO1xuICAgICAgICB9XG5cbiAgICAgICAgcyArPSBvcHRpb25zLmxpbmVCcmVhayArICdGUk9NICc7XG4gICAgICAgIGlmIChxdWVyeS5fdGFibGVzKSB7XG4gICAgICAgICAgICBzKz0gcXVlcnkuX3RhYmxlcy5tYXAoKHRhYmxlOiBhbnkpID0+IHRhYmxlLl9wYXJlbnQgPyBjb252ZXJ0Sm9pbih0YWJsZSkgOiBjb252ZXJ0VGFibGUodGFibGUpKS5qb2luKCcsICcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcys9IGNvbnZlcnRUYWJsZShxdWVyeS5fdGFibGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcyArPSBjb252ZXJ0Q29uZGl0aW9ucyhxdWVyeS5fY29uZGl0aW9ucyk7XG5cbiAgICAgICAgaWYgKHF1ZXJ5Ll9ncm91cEJ5ICYmIHF1ZXJ5Ll9ncm91cEJ5Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHMgKz0gb3B0aW9ucy5saW5lQnJlYWsgKyAnR1JPVVAgQlkgJztcbiAgICAgICAgICAgIHMgKz0gcXVlcnkuX2dyb3VwQnkubWFwKChjb2x1bW46IGFueSkgPT4gY29udmVydENvbHVtbihjb2x1bW4pKS5qb2luKCcsICcpO1xuICAgICAgICB9XG4gICAgICAgIHMgKz0gY29udmVydENvbmRpdGlvbnMocXVlcnkuX2hhdmluZywgJ0hBVklORycpO1xuXG4gICAgICAgIGlmIChxdWVyeS5fb3JkZXJpbmdzICYmIHF1ZXJ5Ll9vcmRlcmluZ3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcyArPSBvcHRpb25zLmxpbmVCcmVhayArICdPUkRFUiBCWSAnO1xuICAgICAgICAgICAgcyArPSBxdWVyeS5fb3JkZXJpbmdzLm1hcCgob3JkZXJpbmc6IGFueSkgPT4gY29udmVydE9yZGVyaW5nKG9yZGVyaW5nKSkuam9pbignLCAnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocXVlcnkuX2xpbWl0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIHMgKz0gb3B0aW9ucy5saW5lQnJlYWsgKyAnTElNSVQgJyArIG51bWJlcihxdWVyeS5fbGltaXQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChxdWVyeS5fb2Zmc2V0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIHMgKz0gb3B0aW9ucy5saW5lQnJlYWsgKyAnT0ZGU0VUICcgKyBudW1iZXIocXVlcnkuX29mZnNldCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29udmVydENvbmRpdGlvbnMoY29uZGl0aW9uczogYW55W10sIGtleXdvcmQgPSAnV0hFUkUnKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHMgPSAnJztcbiAgICAgICAgaWYgKGNvbmRpdGlvbnMgJiYgY29uZGl0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBzICs9IG9wdGlvbnMubGluZUJyZWFrICsga2V5d29yZCArICcgJztcbiAgICAgICAgICAgIHByZXByb2Nlc3NDb25kaXRpb25zKGNvbmRpdGlvbnMpO1xuICAgICAgICAgICAgcyArPSBjb25kaXRpb25zLm1hcChjb25kaXRpb24gPT4gY29udmVydENvbmRpdGlvbihjb25kaXRpb24sIHRydWUpKS5qb2luKCcgQU5EICcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbnZlcnRKb2luKGpvaW5DaGFpbjogYW55KTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGl0ZW1zOiBhbnlbXSA9IFtdO1xuICAgICAgICB3aGlsZSAoam9pbkNoYWluKSB7XG4gICAgICAgICAgICBpdGVtcy5wdXNoKGpvaW5DaGFpbik7XG4gICAgICAgICAgICBqb2luQ2hhaW4gPSBqb2luQ2hhaW4uX3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCByb290ID0gaXRlbXNbaXRlbXMubGVuZ3RoIC0gMV07XG4gICAgICAgIGxldCBzID0gY29udmVydFRhYmxlKHJvb3QpO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSBpdGVtcy5sZW5ndGggLSAyOyBpID49IDA7IGktPSAyKSB7XG4gICAgICAgICAgICBsZXQgdGFibGUgPSBpdGVtc1tpXS5fdGFibGU7XG4gICAgICAgICAgICBsZXQgbW9kaWZpZXIgPSBpdGVtc1tpXS5fbW9kaWZpZXI7XG4gICAgICAgICAgICBsZXQgY29uZGl0aW9uID0gaXRlbXNbaSAtIDFdLl9jb25kaXRpb247XG4gICAgICAgICAgICBsZXQgcGFyYW0gPSBjb252ZXJ0Q29sdW1uKGNvbmRpdGlvbi5fb3RoZXJDb2x1bW4pO1xuICAgICAgICAgICAgcyArPSAnICcgKyBtb2RpZmllci50b1VwcGVyQ2FzZSgpICsgJyBKT0lOICcgKyBjb252ZXJ0VGFibGUodGFibGUpICsgJyBPTiAnICtcbiAgICAgICAgICAgICAgICBjb252ZXJ0Q29sdW1uQ29uZGl0aW9uKGNvbmRpdGlvbiwgcGFyYW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29udmVydE9yZGVyaW5nKG9yZGVyaW5nOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBpZiAob3JkZXJpbmcuX2NvbHVtbikge1xuICAgICAgICAgICAgbGV0IHMgPSBjb252ZXJ0Q29sdW1uKG9yZGVyaW5nLl9jb2x1bW4pO1xuXG4gICAgICAgICAgICBpZiAob3JkZXJpbmcuX251bGxzUG9zaXRpb24gIT0gbnVsbCkgeyAvLyBcIk5VTExTIEZJUlNUXCIgb25seSBleGlzdHMgaW4gUEcsIHRoaXMgaXMgdGhlIGdlbmVyYWwgc29sdXRpb25cbiAgICAgICAgICAgICAgICBzICs9ICcgSVMgTlVMTCAnICsgKG9yZGVyaW5nLl9udWxsc1Bvc2l0aW9uID09PSAnRklSU1QnID8gJ0RFU0MnIDogJ0FTQycpICsgJywgJyArIHM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvcmRlcmluZy5fZGlyZWN0aW9uID09PSAnQVNDJykgcyArPSAnIEFTQyc7XG4gICAgICAgICAgICBpZiAob3JkZXJpbmcuX2RpcmVjdGlvbiA9PT0gJ0RFU0MnKSBzICs9ICcgREVTQyc7XG5cbiAgICAgICAgICAgIHJldHVybiBzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRDb2x1bW4ob3JkZXJpbmcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29udmVydFRhYmxlKHRhYmxlOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5uYW1lRXNjYXBlICsgdGFibGUuXyRuYW1lICsgb3B0aW9ucy5uYW1lRXNjYXBlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbnZlcnRDb2x1bW4oY29sdW1uOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBsZXQgcyA9ICcnO1xuICAgICAgICBpZiAoIShjb2x1bW4uX25hbWUgPT09ICcqJyAmJiBjb2x1bW4uX21vZGlmaWVycy5sZW5ndGggPiAwICYmIGNvbHVtbi5fbW9kaWZpZXJzWzBdLm5hbWUgPT09ICdjb3VudCcpKSB7XG4gICAgICAgICAgICBzICs9IGNvbnZlcnRUYWJsZShjb2x1bW4uX3RhYmxlKSArICcuJztcbiAgICAgICAgfVxuICAgICAgICBzICs9IGNvbnZlcnRDb2x1bW5OYW1lKGNvbHVtbik7XG4gICAgICAgIHJldHVybiBjb252ZXJ0Q29sdW1uTW9kaWZpZXJzKHMsIGNvbHVtbik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29udmVydENvbHVtbk1vZGlmaWVycyhzOiBzdHJpbmcsIGNvbHVtbjogYW55KTogc3RyaW5nIHtcbiAgICAgICAgaWYgKGNvbHVtbi5fbW9kaWZpZXJzKSB7XG4gICAgICAgICAgICBjb2x1bW4uX21vZGlmaWVycy5mb3JFYWNoKChtb2RpZmllcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IG5hbWUgPSBtb2RpZmllci5uYW1lO1xuICAgICAgICAgICAgICAgIGlmIChuYW1lID09PSAnbG93ZXInKSBzID0gJ0xPV0VSKCcgKyBzICsgJyknO1xuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG5hbWUgPT09ICd1cHBlcicpIHMgPSAnVVBQRVIoJyArIHMgKyAnKSc7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobmFtZSA9PT0gJ2NvdW50JykgcyA9ICdDT1VOVCgnICsgcyArICcpJztcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChuYW1lID09PSAnc3VtJykgcyA9ICdTVU0oJyArIHMgKyAnKSc7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobmFtZSA9PT0gJ2F2ZycpIHMgPSAnQVZHKCcgKyBzICsgJyknO1xuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG5hbWUgPT09ICdtaW4nKSBzID0gJ01JTignICsgcyArICcpJztcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChuYW1lID09PSAnbWF4JykgcyA9ICdNQVgoJyArIHMgKyAnKSc7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobmFtZSA9PT0gJ2FzJykgcyA9IHMgKyAnIEFTICcgKyBvcHRpb25zLm5hbWVFc2NhcGUgKyBtb2RpZmllci5wYXJhbXMgKyBvcHRpb25zLm5hbWVFc2NhcGU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcyArICcnO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbnZlcnRDb2x1bW5OYW1lKGNvbHVtbjogYW55KTogc3RyaW5nIHtcbiAgICAgICAgaWYgKGNvbHVtbi5fbmFtZSA9PT0gJyonKSByZXR1cm4gY29sdW1uLl9uYW1lO1xuICAgICAgICBsZXQgbmFtZSA9IHR5cGVvZiBjb2x1bW4uX25hbWUgPT09ICdzdHJpbmcnID8gY29sdW1uLl9uYW1lIDogY29sdW1uLl9uYW1lLm5hbWU7XG4gICAgICAgIHJldHVybiBvcHRpb25zLm5hbWVFc2NhcGUgKyBuYW1lICsgb3B0aW9ucy5uYW1lRXNjYXBlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHByZXByb2Nlc3NDb25kaXRpb25zKGNvbmRpdGlvbnM6IGFueVtdKTogdm9pZCB7XG4gICAgICAgIGNvbmRpdGlvbnMuZm9yRWFjaChjb25kaXRpb24gPT4ge1xuICAgICAgICAgICAgaWYgKGNvbmRpdGlvbnMubGVuZ3RoID4gMSAmJiBjb25kaXRpb24uX3NpYmxpbmcpIHtcbiAgICAgICAgICAgICAgICBjb25kaXRpb24uX3BhcmVudGhlc2lzID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHByZXByb2Nlc3NQYXJhbXMoY29uZGl0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG5cbiAgICBmdW5jdGlvbiBwcmVwcm9jZXNzUGFyYW1zKGNvbmRpdGlvbjogYW55KTogdm9pZCB7XG4gICAgICAgIGlmIChjb25kaXRpb24uX3NpYmxpbmcpIHtcbiAgICAgICAgICAgIHByZXByb2Nlc3NQYXJhbXMoY29uZGl0aW9uLl9zaWJsaW5nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNvbmRpdGlvbi5fc2libGluZyAmJiAhY29uZGl0aW9uLl9jaGlsZCkge1xuICAgICAgICAgICAgY29uZGl0aW9uLl9fcGFyYW0gPSBnZXRDb25kaXRpb25QYXJhbShjb25kaXRpb24pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb25kaXRpb24uX2NoaWxkKSB7XG4gICAgICAgICAgICBwcmVwcm9jZXNzUGFyYW1zKGNvbmRpdGlvbi5fY2hpbGQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29udmVydENvbmRpdGlvbihjb25kaXRpb246IGFueSwgcm9vdCA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFjb25kaXRpb24uX3NpYmxpbmcgJiYgIWNvbmRpdGlvbi5fY2hpbGQpIHtcbiAgICAgICAgICAgIHJldHVybiBjb252ZXJ0Q29sdW1uQ29uZGl0aW9uKGNvbmRpdGlvbiwgY29uZGl0aW9uLl9fcGFyYW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHMgPSAnJztcbiAgICAgICAgaWYgKGNvbmRpdGlvbi5fY2hpbGQpIHtcbiAgICAgICAgICAgIHMgKz0gY29udmVydENvbmRpdGlvbihjb25kaXRpb24uX2NoaWxkKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29uZGl0aW9uLl9zaWJsaW5nKSB7XG4gICAgICAgICAgICBzID0gY29udmVydENvbmRpdGlvbihjb25kaXRpb24uX3NpYmxpbmcsIHJvb3QpICsgJyAnICsgY29uZGl0aW9uLl9jaGFpblR5cGUudG9VcHBlckNhc2UoKSArICcgJyArIHM7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbmRpdGlvbi5fcGFyZW50aGVzaXMgfHwgKCghcm9vdCB8fCBjb25kaXRpb24uX25lZ2F0aW9uKSAmJiBjb25kaXRpb24uX2NoaWxkKSkge1xuICAgICAgICAgICAgcyA9ICcoICcgKyBzICsgJyApJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29uZGl0aW9uLl9uZWdhdGlvbikge1xuICAgICAgICAgICAgcyA9ICdOT1QgJyArIHM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29udmVydENvbHVtbkNvbmRpdGlvbihjb25kaXRpb246IGFueSwgcGFyYW06IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGxldCBzID0gY29udmVydENvbHVtbihjb25kaXRpb24uX2NvbHVtbik7XG4gICAgICAgIHMgKz0gZ2V0Q29uZGl0aW9uU3RyaW5nKGNvbmRpdGlvbiwgcGFyYW0pO1xuICAgICAgICByZXR1cm4gcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRDb25kaXRpb25TdHJpbmcoY29uZGl0aW9uOiBhbnksIHBhcmFtOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBzd2l0Y2ggKGNvbmRpdGlvbi5fdHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnZXEnOiByZXR1cm4gJyA9ICcgKyBwYXJhbTtcbiAgICAgICAgICAgIGNhc2UgJ25lJzogcmV0dXJuICcgPD4gJyArIHBhcmFtO1xuICAgICAgICAgICAgY2FzZSAnbHQnOiByZXR1cm4gJyA8ICcgKyBwYXJhbTtcbiAgICAgICAgICAgIGNhc2UgJ2d0JzogcmV0dXJuICcgPiAnICsgcGFyYW07XG4gICAgICAgICAgICBjYXNlICdsdGUnOiByZXR1cm4gJyA8PSAnICsgcGFyYW07XG4gICAgICAgICAgICBjYXNlICdndGUnOiByZXR1cm4gJyA+PSAnICsgcGFyYW07XG4gICAgICAgICAgICBjYXNlICdpcy1udWxsJzogcmV0dXJuICcgSVMgTlVMTCc7XG4gICAgICAgICAgICBjYXNlICdpcy1ub3QtbnVsbCc6IHJldHVybiAnIElTIE5PVCBOVUxMJztcbiAgICAgICAgICAgIGNhc2UgJ2xpa2UnOiByZXR1cm4gJyBMSUtFICcgKyBwYXJhbTtcbiAgICAgICAgICAgIGNhc2UgJ25vdC1saWtlJzogcmV0dXJuICcgTk9UIExJS0UgJyArIHBhcmFtO1xuICAgICAgICAgICAgY2FzZSAnaW4nOiByZXR1cm4gJyBJTiAoJyArIHBhcmFtICsgJyknO1xuICAgICAgICAgICAgY2FzZSAnbm90LWluJzogcmV0dXJuICcgTk9UIElOICgnICsgcGFyYW0gKyAnKSc7XG4gICAgICAgICAgICBjYXNlICdiZXR3ZWVuJzogcmV0dXJuICcgQkVUV0VFTiAnICsgcGFyYW07XG4gICAgICAgICAgICBjYXNlICdub3QtYmV0d2Vlbic6IHJldHVybiAnIE5PVCBCRVRXRUVOICcgKyBwYXJhbTtcbiAgICAgICAgICAgIGRlZmF1bHQ6IHJldHVybiAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldENvbmRpdGlvblBhcmFtKGNvbmRpdGlvbjogYW55KTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHBhcmFtID0gJyc7XG4gICAgICAgIGlmIChjb25kaXRpb24uX290aGVyQ29sdW1uKSB7XG4gICAgICAgICAgICBwYXJhbSA9IGNvbnZlcnRDb2x1bW4oY29uZGl0aW9uLl9vdGhlckNvbHVtbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgX2NvbnZlcnRQYXJhbSA9IChwYXJhbTogYW55KSA9PiBjb252ZXJ0UGFyYW0oY29uZGl0aW9uLl9jb2x1bW4sIHBhcmFtKTtcblxuICAgICAgICAgICAgaWYgKGNvbmRpdGlvbi5fdHlwZSA9PT0gJ2luJyB8fCBjb25kaXRpb24uX3R5cGUgPT09ICdub3QtaW4nKSB7XG4gICAgICAgICAgICAgICAgcGFyYW0gPSBjb25kaXRpb24uX3ZhbHVlcy5tYXAoKHZhbHVlOiBhbnkpID0+IF9jb252ZXJ0UGFyYW0odmFsdWUpKS5qb2luKCcsICcpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb25kaXRpb24uX3R5cGUgPT09ICdiZXR3ZWVuJyB8fCBjb25kaXRpb24uX3R5cGUgPT09ICdub3QtYmV0d2VlbicpIHtcbiAgICAgICAgICAgICAgICBwYXJhbSA9IF9jb252ZXJ0UGFyYW0oY29uZGl0aW9uLl92YWx1ZXNbMF0pICsgJyBBTkQgJyArIF9jb252ZXJ0UGFyYW0oY29uZGl0aW9uLl92YWx1ZXNbMV0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb25kaXRpb24uX3R5cGUgIT09ICdpcy1udWxsJyAmJiBjb25kaXRpb24uX3R5cGUgIT09ICdpcy1ub3QtbnVsbCcpIHtcbiAgICAgICAgICAgICAgICBwYXJhbSA9IF9jb252ZXJ0UGFyYW0oY29uZGl0aW9uLl92YWx1ZXNbMF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXJhbTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb252ZXJ0UGFyYW0oY29sdW1uOiBhbnksIHBhcmFtOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBpZiAocGFyYW0gPT0gbnVsbCkgcmV0dXJuICdOVUxMJztcbiAgICAgICAgcmV0dXJuIHBhcmFtQ29udmVydGVyKGdldFR5cGVkUGFyYW0oY29sdW1uLl90eXBlLCBwYXJhbSkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFR5cGVkUGFyYW0odHlwZTogc3RyaW5nLCBwYXJhbTogYW55KTogYW55IHtcbiAgICAgICAgaWYgKHR5cGUgPT09ICdudW1iZXInKSByZXR1cm4gbnVtYmVyKHBhcmFtKTtcbiAgICAgICAgZWxzZSBpZiAodHlwZSA9PT0gJ2Jvb2xlYW4nKSByZXR1cm4gYm9vbGVhbihwYXJhbSk7XG4gICAgICAgIGVsc2UgaWYgKHR5cGUgPT09ICdkYXRlJykgcmV0dXJuIGRhdGUocGFyYW0pO1xuICAgICAgICBlbHNlIGlmICh0eXBlID09PSAnc3RyaW5nJykgcmV0dXJuIHN0cmluZyhwYXJhbSk7XG4gICAgICAgIHJldHVybiBwYXJhbTtcbiAgICB9XG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10YW9uLXR5cGUtc3FsIGxpYi9jb252ZXJ0ZXIvcXVlcnktY29udmVydGVyLnRzIl19
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
export function convertResult(query, result, engine) {
|
|
2
|
-
let rows = engine === 'pg' ? result.rows : result;
|
|
3
|
-
let rowCount = engine === 'pg' ? result.rowCount : result.affectedRows || result.changedRows;
|
|
4
|
-
if (query._action === 'select')
|
|
5
|
-
return convertSelectResult(query, rows);
|
|
6
|
-
if (query._action === 'delete')
|
|
7
|
-
return rowCount;
|
|
8
|
-
if (query._action === 'update')
|
|
9
|
-
return rowCount;
|
|
10
|
-
if (query._action === 'insert')
|
|
11
|
-
return convertInsertResult(result, engine);
|
|
12
|
-
throw new Error('Unknown query type:' + query._action);
|
|
13
|
-
}
|
|
14
|
-
function convertInsertResult(result, engine) {
|
|
15
|
-
if (engine === 'mysql')
|
|
16
|
-
return result.insertId > 0 ? result.insertId : undefined; // mysql returns 0 for tables that have a non-autoincrement ID
|
|
17
|
-
if (engine === 'pg' && result.rows && result.rows.length === 1) {
|
|
18
|
-
let columnName = Object.keys(result.rows[0])[0];
|
|
19
|
-
return result.rows[0][columnName];
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
function convertSelectResult(query, rows) {
|
|
23
|
-
if (query._columns && query._columns.length === 1 &&
|
|
24
|
-
!(query._columns[0]._name === '*' && query._columns[0]._modifiers.length === 0)) {
|
|
25
|
-
if (rows.length == 0)
|
|
26
|
-
return [];
|
|
27
|
-
let columnName = Object.keys(rows[0])[0]; // easier than reverse engineering from the column modifiers
|
|
28
|
-
let values = rows.map((row) => row[columnName]);
|
|
29
|
-
if (query._columns[0]._name === '*' && query._columns[0]._modifiers.some((m) => m.name === 'count')) {
|
|
30
|
-
return values.map((value) => Number(value)); // string to number conversion for PG count values
|
|
31
|
-
}
|
|
32
|
-
return values;
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
convertAliasFields(query, rows);
|
|
36
|
-
return rows;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
function convertAliasFields(query, rows) {
|
|
40
|
-
let aliasByName = getColumnAliasesByName(query);
|
|
41
|
-
if (Object.keys(aliasByName).length === 0)
|
|
42
|
-
return;
|
|
43
|
-
rows.forEach((row) => {
|
|
44
|
-
Object.keys(row).forEach((name) => {
|
|
45
|
-
if (aliasByName[name]) {
|
|
46
|
-
row[aliasByName[name]] = row[name];
|
|
47
|
-
delete row[name];
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
function getColumnAliasesByName(query) {
|
|
53
|
-
let aliasByName = {};
|
|
54
|
-
if (query._columns && query._columns.length > 0) {
|
|
55
|
-
query._columns.forEach((column) => {
|
|
56
|
-
if (column._name && column._name.alias && column._modifiers.length === 0) {
|
|
57
|
-
aliasByName[column._name.name] = column._name.alias;
|
|
58
|
-
}
|
|
59
|
-
else if (column._name === '*' && column._modifiers.length === 0) {
|
|
60
|
-
getAliasColumnsOfTable(column._table).forEach((column) => {
|
|
61
|
-
aliasByName[column._name.name] = column._name.alias;
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
let tables = query._table ? [query._table] : query._tables;
|
|
68
|
-
tables.forEach((table) => {
|
|
69
|
-
getAliasColumnsOfTable(table).forEach((column) => {
|
|
70
|
-
aliasByName[column._name.name] = column._name.alias;
|
|
71
|
-
});
|
|
72
|
-
let joinTable = table._parent;
|
|
73
|
-
while (joinTable) {
|
|
74
|
-
getAliasColumnsOfTable(joinTable).forEach((column) => {
|
|
75
|
-
aliasByName[column._name.name] = column._name.alias;
|
|
76
|
-
});
|
|
77
|
-
joinTable = joinTable._parent;
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
return aliasByName;
|
|
82
|
-
}
|
|
83
|
-
function getAliasColumnsOfTable(table) {
|
|
84
|
-
return Object.keys(table).map(key => table[key]).filter((column) => column && column._name && column._name.alias);
|
|
85
|
-
}
|
|
86
|
-
;
|
|
87
|
-
({}); // @--end-of-file-for-module=taon-type-sql lib/converter/result-converter.ts
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LWNvbnZlcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90YW9uLXR5cGUtc3FsL3Byb2plY3RzL3Rhb24tdHlwZS1zcWwvc3JjL2xpYi9jb252ZXJ0ZXIvcmVzdWx0LWNvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLFVBQVUsYUFBYSxDQUFDLEtBQVUsRUFBRSxNQUFXLEVBQUUsTUFBbUI7SUFDeEUsSUFBSSxJQUFJLEdBQUcsTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2xELElBQUksUUFBUSxHQUFHLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQztJQUU3RixJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssUUFBUTtRQUFFLE9BQU8sbUJBQW1CLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3hFLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxRQUFRO1FBQUUsT0FBTyxRQUFRLENBQUM7SUFDaEQsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLFFBQVE7UUFBRSxPQUFPLFFBQVEsQ0FBQztJQUNoRCxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssUUFBUTtRQUFFLE9BQU8sbUJBQW1CLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNFLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLE1BQVcsRUFBRSxNQUFtQjtJQUMzRCxJQUFJLE1BQU0sS0FBSyxPQUFPO1FBQUUsT0FBTyxN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LENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUN0RCxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDOUIsT0FBTyxTQUFTLEVBQUUsQ0FBQztnQkFDakIsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7b0JBQ3hELFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUN0RCxDQUFDLENBQUMsQ0FBQztnQkFDSCxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQztZQUNoQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQztBQUVELFNBQVMsc0JBQXNCLENBQUMsS0FBVTtJQUN4QyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pILENBQUM7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDRFQUE0RSIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBRdWVyeUVuZ2luZSB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0UmVzdWx0KHF1ZXJ5OiBhbnksIHJlc3VsdDogYW55LCBlbmdpbmU6IFF1ZXJ5RW5naW5lKTogYW55IHtcbiAgbGV0IHJvd3MgPSBlbmdpbmUgPT09ICdwZycgPyByZXN1bHQucm93cyA6IHJlc3VsdDtcbiAgbGV0IHJvd0NvdW50ID0gZW5naW5lID09PSAncGcnID8gcmVzdWx0LnJvd0NvdW50IDogcmVzdWx0LmFmZmVjdGVkUm93cyB8fCByZXN1bHQuY2hhbmdlZFJvd3M7XG5cbiAgaWYgKHF1ZXJ5Ll9hY3Rpb24gPT09ICdzZWxlY3QnKSByZXR1cm4gY29udmVydFNlbGVjdFJlc3VsdChxdWVyeSwgcm93cyk7XG4gIGlmIChxdWVyeS5fYWN0aW9uID09PSAnZGVsZXRlJykgcmV0dXJuIHJvd0NvdW50O1xuICBpZiAocXVlcnkuX2FjdGlvbiA9PT0gJ3VwZGF0ZScpIHJldHVybiByb3dDb3VudDtcbiAgaWYgKHF1ZXJ5Ll9hY3Rpb24gPT09ICdpbnNlcnQnKSByZXR1cm4gY29udmVydEluc2VydFJlc3VsdChyZXN1bHQsIGVuZ2luZSk7XG4gIHRocm93IG5ldyBFcnJvcignVW5rbm93biBxdWVyeSB0eXBlOicgKyBxdWVyeS5fYWN0aW9uKTtcbn1cblxuZnVuY3Rpb24gY29udmVydEluc2VydFJlc3VsdChyZXN1bHQ6IGFueSwgZW5naW5lOiBRdWVyeUVuZ2luZSk6IGFueSB7XG4gIGlmIChlbmdpbmUgPT09ICdteXNxbCcpIHJldHVybiByZXN1bHQuaW5zZXJ0SWQgPiAwID8gcmVzdWx0Lmluc2VydElkIDogdW5kZWZpbmVkOyAvLyBteXNxbCByZXR1cm5zIDAgZm9yIHRhYmxlcyB0aGF0IGhhdmUgYSBub24tYXV0b2luY3JlbWVudCBJRFxuICBpZiAoZW5naW5lID09PSAncGcnICYmIHJlc3VsdC5yb3dzICYmIHJlc3VsdC5yb3dzLmxlbmd0aCA9PT0gMSkge1xuICAgIGxldCBjb2x1bW5OYW1lID0gT2JqZWN0LmtleXMocmVzdWx0LnJvd3NbMF0pWzBdO1xuICAgIHJldHVybiByZXN1bHQucm93c1swXVtjb2x1bW5OYW1lXTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb252ZXJ0U2VsZWN0UmVzdWx0KHF1ZXJ5OiBhbnksIHJvd3M6IGFueVtdKTogYW55IHtcbiAgaWYgKHF1ZXJ5Ll9jb2x1bW5zICYmIHF1ZXJ5Ll9jb2x1bW5zLmxlbmd0aCA9PT0gMSAmJlxuICAgICEocXVlcnkuX2NvbHVtbnNbMF0uX25hbWUgPT09ICcqJyAmJiBxdWVyeS5fY29sdW1uc1swXS5fbW9kaWZpZXJzLmxlbmd0aCA9PT0gMCkpIHtcbiAgICBpZiAocm93cy5sZW5ndGggPT0gMCkgcmV0dXJuIFtdO1xuICAgIGxldCBjb2x1bW5OYW1lID0gT2JqZWN0LmtleXMocm93c1swXSlbMF07IC8vIGVhc2llciB0aGFuIHJldmVyc2UgZW5naW5lZXJpbmcgZnJvbSB0aGUgY29sdW1uIG1vZGlmaWVyc1xuICAgIGxldCB2YWx1ZXMgPSByb3dzLm1hcCgocm93OiBhbnkpID0+IHJvd1tjb2x1bW5OYW1lXSk7XG5cbiAgICBpZiAocXVlcnkuX2NvbHVtbnNbMF0uX25hbWUgPT09ICcqJyAmJiBxdWVyeS5fY29sdW1uc1swXS5fbW9kaWZpZXJzLnNvbWUoKG06IGFueSkgPT4gbS5uYW1lID09PSAnY291bnQnKSkge1xuICAgICAgcmV0dXJuIHZhbHVlcy5tYXAoKHZhbHVlOiBhbnkpID0+IE51bWJlcih2YWx1ZSkpOyAvLyBzdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnNpb24gZm9yIFBHIGNvdW50IHZhbHVlc1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWVzO1xuICB9IGVsc2Uge1xuICAgIGNvbnZlcnRBbGlhc0ZpZWxkcyhxdWVyeSwgcm93cyk7XG4gICAgcmV0dXJuIHJvd3M7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29udmVydEFsaWFzRmllbGRzKHF1ZXJ5OiBhbnksIHJvd3M6IGFueVtdKTogdm9pZCB7XG4gIGxldCBhbGlhc0J5TmFtZSA9IGdldENvbHVtbkFsaWFzZXNCeU5hbWUocXVlcnkpO1xuICBpZiAoT2JqZWN0LmtleXMoYWxpYXNCeU5hbWUpLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gIHJvd3MuZm9yRWFjaCgocm93OiBhbnkpID0+IHtcbiAgICBPYmplY3Qua2V5cyhyb3cpLmZvckVhY2goKG5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKGFsaWFzQnlOYW1lW25hbWVdKSB7XG4gICAgICAgIHJvd1thbGlhc0J5TmFtZVtuYW1lXV0gPSByb3dbbmFtZV07XG4gICAgICAgIGRlbGV0ZSByb3dbbmFtZV07XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRDb2x1bW5BbGlhc2VzQnlOYW1lKHF1ZXJ5OiBhbnkpOiBhbnkge1xuICBsZXQgYWxpYXNCeU5hbWUgPSB7fSBhcyBhbnk7XG5cbiAgaWYgKHF1ZXJ5Ll9jb2x1bW5zICYmIHF1ZXJ5Ll9jb2x1bW5zLmxlbmd0aCA+IDApIHtcbiAgICBxdWVyeS5fY29sdW1ucy5mb3JFYWNoKChjb2x1bW46IGFueSkgPT4ge1xuICAgICAgaWYgKGNvbHVtbi5fbmFtZSAmJiBjb2x1bW4uX25hbWUuYWxpYXMgJiYgY29sdW1uLl9tb2RpZmllcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGFsaWFzQnlOYW1lW2NvbHVtbi5fbmFtZS5uYW1lXSA9IGNvbHVtbi5fbmFtZS5hbGlhcztcbiAgICAgIH0gZWxzZSBpZiAoY29sdW1uLl9uYW1lID09PSAnKicgJiYgY29sdW1uLl9tb2RpZmllcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGdldEFsaWFzQ29sdW1uc09mVGFibGUoY29sdW1uLl90YWJsZSkuZm9yRWFjaCgoY29sdW1uOiBhbnkpID0+IHtcbiAgICAgICAgICBhbGlhc0J5TmFtZVtjb2x1bW4uX25hbWUubmFtZV0gPSBjb2x1bW4uX25hbWUuYWxpYXM7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGxldCB0YWJsZXMgPSBxdWVyeS5fdGFibGUgPyBbcXVlcnkuX3RhYmxlXSA6IHF1ZXJ5Ll90YWJsZXM7XG4gICAgdGFibGVzLmZvckVhY2goKHRhYmxlOiBhbnkpID0+IHtcbiAgICAgIGdldEFsaWFzQ29sdW1uc09mVGFibGUodGFibGUpLmZvckVhY2goKGNvbHVtbjogYW55KSA9PiB7XG4gICAgICAgIGFsaWFzQnlOYW1lW2NvbHVtbi5fbmFtZS5uYW1lXSA9IGNvbHVtbi5fbmFtZS5hbGlhcztcbiAgICAgIH0pO1xuXG4gICAgICBsZXQgam9pblRhYmxlID0gdGFibGUuX3BhcmVudDtcbiAgICAgIHdoaWxlIChqb2luVGFibGUpIHtcbiAgICAgICAgZ2V0QWxpYXNDb2x1bW5zT2ZUYWJsZShqb2luVGFibGUpLmZvckVhY2goKGNvbHVtbjogYW55KSA9PiB7XG4gICAgICAgICAgYWxpYXNCeU5hbWVbY29sdW1uLl9uYW1lLm5hbWVdID0gY29sdW1uLl9uYW1lLmFsaWFzO1xuICAgICAgICB9KTtcbiAgICAgICAgam9pblRhYmxlID0gam9pblRhYmxlLl9wYXJlbnQ7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gYWxpYXNCeU5hbWU7XG59XG5cbmZ1bmN0aW9uIGdldEFsaWFzQ29sdW1uc09mVGFibGUodGFibGU6IGFueSk6IGFueVtdIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKHRhYmxlKS5tYXAoa2V5ID0+IHRhYmxlW2tleV0pLmZpbHRlcigoY29sdW1uOiBhbnkpID0+IGNvbHVtbiAmJiBjb2x1bW4uX25hbWUgJiYgY29sdW1uLl9uYW1lLmFsaWFzKTtcbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24tdHlwZS1zcWwgbGliL2NvbnZlcnRlci9yZXN1bHQtY29udmVydGVyLnRzIl19
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { createQueryConverter } from "./query-converter";
|
|
2
|
-
import { convertSubstitutionParam } from './param-converter';
|
|
3
|
-
export function convertQueryToSQL(query, options, engine) {
|
|
4
|
-
return createQueryConverter((param) => convertSubstitutionParam(param), options, engine)(query);
|
|
5
|
-
}
|
|
6
|
-
;
|
|
7
|
-
({}); // @--end-of-file-for-module=taon-type-sql lib/converter/sql-converter.ts
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsLWNvbnZlcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90YW9uLXR5cGUtc3FsL3Byb2plY3RzL3Rhb24tdHlwZS1zcWwvc3JjL2xpYi9jb252ZXJ0ZXIvc3FsLWNvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUczRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBVSxFQUFFLE9BQXlCLEVBQUUsTUFBbUI7SUFDeEYsT0FBTyxvQkFBb0IsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pHLENBQUM7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHlFQUF5RSIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQge2NyZWF0ZVF1ZXJ5Q29udmVydGVyfSBmcm9tIFwiLi9xdWVyeS1jb252ZXJ0ZXJcIjtcbmltcG9ydCB7Y29udmVydFN1YnN0aXR1dGlvblBhcmFtfSBmcm9tICcuL3BhcmFtLWNvbnZlcnRlcic7XG5pbXBvcnQge1F1ZXJ5RW5naW5lLCBDb252ZXJ0ZXJPcHRpb25zfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFF1ZXJ5VG9TUUwocXVlcnk6IGFueSwgb3B0aW9uczogQ29udmVydGVyT3B0aW9ucywgZW5naW5lOiBRdWVyeUVuZ2luZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNyZWF0ZVF1ZXJ5Q29udmVydGVyKChwYXJhbTogYW55KSA9PiBjb252ZXJ0U3Vic3RpdHV0aW9uUGFyYW0ocGFyYW0pLCBvcHRpb25zLCBlbmdpbmUpKHF1ZXJ5KTtcbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24tdHlwZS1zcWwgbGliL2NvbnZlcnRlci9zcWwtY29udmVydGVyLnRzIl19
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
export function number(param) {
|
|
2
|
-
let result = Number(param);
|
|
3
|
-
if (Number.isNaN(result))
|
|
4
|
-
throw new Error('Invalid number parameter in SQL query: ' + param);
|
|
5
|
-
return result;
|
|
6
|
-
}
|
|
7
|
-
export function boolean(param) {
|
|
8
|
-
if (typeof param === 'boolean')
|
|
9
|
-
return param;
|
|
10
|
-
if (param instanceof Boolean)
|
|
11
|
-
return param.valueOf();
|
|
12
|
-
if (param === 'true')
|
|
13
|
-
return true;
|
|
14
|
-
if (param === 'false')
|
|
15
|
-
return false;
|
|
16
|
-
throw new Error('Invalid boolean parameter in SQL query: ' + param);
|
|
17
|
-
}
|
|
18
|
-
export function date(param) {
|
|
19
|
-
if (param instanceof Date)
|
|
20
|
-
return param; // @ts-ignore
|
|
21
|
-
if (typeof param === 'number' || param instanceof Number)
|
|
22
|
-
return new Date(param);
|
|
23
|
-
if (typeof param === 'string' || param instanceof String) {
|
|
24
|
-
if (Number.isNaN(Date.parse(String(param))))
|
|
25
|
-
throw new Error('Invalid date parameter in SQL query: ' + param); // @ts-ignore
|
|
26
|
-
return new Date(param);
|
|
27
|
-
}
|
|
28
|
-
throw new Error('Invalid date parameter in SQL query: ' + param);
|
|
29
|
-
}
|
|
30
|
-
export function string(param) {
|
|
31
|
-
if (typeof param === 'string')
|
|
32
|
-
return param;
|
|
33
|
-
if (param instanceof String)
|
|
34
|
-
return param.valueOf();
|
|
35
|
-
throw new Error('Invalid string parameter in SQL query: ' + param);
|
|
36
|
-
}
|
|
37
|
-
;
|
|
38
|
-
({}); // @--end-of-file-for-module=taon-type-sql lib/converter/type-converter.ts
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1jb252ZXJ0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi10eXBlLXNxbC9wcm9qZWN0cy90YW9uLXR5cGUtc3FsL3NyYy9saWIvY29udmVydGVyL3R5cGUtY29udmVydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sVUFBVSxNQUFNLENBQUMsS0FBVTtJQUMvQixJQUFJLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDN0YsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUMsS0FBVTtJQUNoQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFNBQVM7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUM3QyxJQUFJLEtBQUssWUFBWSxPQUFPO1FBQUUsT0FBTyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDckQsSUFBSSxLQUFLLEtBQUssTUFBTTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ2xDLElBQUksS0FBSyxLQUFLLE9BQU87UUFBRSxPQUFPLEtBQUssQ0FBQztJQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxHQUFHLEtBQUssQ0FBQyxDQUFDO0FBQ3RFLENBQUM7QUFFRCxNQUFNLFVBQVUsSUFBSSxDQUFDLEtBQVU7SUFDN0IsSUFBSSxLQUFLLFlBQVksSUFBSTtRQUFFLE9BQU8sS0FBSyxDQUFDLENBQUMsYUFBYTtJQUN0RCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLFlBQVksTUFBTTtRQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakYsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxZQUFZLE1BQU0sRUFBRSxDQUFDO1FBQ3pELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLGFBQWE7UUFDNUgsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsR0FBRyxLQUFLLENBQUMsQ0FBQztBQUNuRSxDQUFDO0FBRUQsTUFBTSxVQUFVLE1BQU0sQ0FBQyxLQUFVO0lBQy9CLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQzVDLElBQUksS0FBSyxZQUFZLE1BQU07UUFBRSxPQUFPLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNwRCxNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxHQUFHLEtBQUssQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDBFQUEwRSIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cbmV4cG9ydCBmdW5jdGlvbiBudW1iZXIocGFyYW06IGFueSk6IG51bWJlciB7XG4gIGxldCByZXN1bHQgPSBOdW1iZXIocGFyYW0pO1xuICBpZiAoTnVtYmVyLmlzTmFOKHJlc3VsdCkpIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBudW1iZXIgcGFyYW1ldGVyIGluIFNRTCBxdWVyeTogJyArIHBhcmFtKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJvb2xlYW4ocGFyYW06IGFueSk6IGJvb2xlYW4ge1xuICBpZiAodHlwZW9mIHBhcmFtID09PSAnYm9vbGVhbicpIHJldHVybiBwYXJhbTtcbiAgaWYgKHBhcmFtIGluc3RhbmNlb2YgQm9vbGVhbikgcmV0dXJuIHBhcmFtLnZhbHVlT2YoKTtcbiAgaWYgKHBhcmFtID09PSAndHJ1ZScpIHJldHVybiB0cnVlO1xuICBpZiAocGFyYW0gPT09ICdmYWxzZScpIHJldHVybiBmYWxzZTtcbiAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGJvb2xlYW4gcGFyYW1ldGVyIGluIFNRTCBxdWVyeTogJyArIHBhcmFtKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGUocGFyYW06IGFueSk6IERhdGUge1xuICBpZiAocGFyYW0gaW5zdGFuY2VvZiBEYXRlKSByZXR1cm4gcGFyYW07IC8vIEB0cy1pZ25vcmVcbiAgaWYgKHR5cGVvZiBwYXJhbSA9PT0gJ251bWJlcicgfHwgcGFyYW0gaW5zdGFuY2VvZiBOdW1iZXIpIHJldHVybiBuZXcgRGF0ZShwYXJhbSk7XG4gIGlmICh0eXBlb2YgcGFyYW0gPT09ICdzdHJpbmcnIHx8IHBhcmFtIGluc3RhbmNlb2YgU3RyaW5nKSB7XG4gICAgaWYgKE51bWJlci5pc05hTihEYXRlLnBhcnNlKFN0cmluZyhwYXJhbSkpKSkgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRhdGUgcGFyYW1ldGVyIGluIFNRTCBxdWVyeTogJyArIHBhcmFtKTsgLy8gQHRzLWlnbm9yZVxuICAgIHJldHVybiBuZXcgRGF0ZShwYXJhbSk7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRhdGUgcGFyYW1ldGVyIGluIFNRTCBxdWVyeTogJyArIHBhcmFtKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZyhwYXJhbTogYW55KTogc3RyaW5nIHtcbiAgaWYgKHR5cGVvZiBwYXJhbSA9PT0gJ3N0cmluZycpIHJldHVybiBwYXJhbTtcbiAgaWYgKHBhcmFtIGluc3RhbmNlb2YgU3RyaW5nKSByZXR1cm4gcGFyYW0udmFsdWVPZigpO1xuICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc3RyaW5nIHBhcmFtZXRlciBpbiBTUUwgcXVlcnk6ICcgKyBwYXJhbSk7XG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10YW9uLXR5cGUtc3FsIGxpYi9jb252ZXJ0ZXIvdHlwZS1jb252ZXJ0ZXIudHMiXX0=
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
;
|
|
2
|
-
({}); // @--end-of-file-for-module=taon-type-sql lib/converter/types.ts
|
|
3
|
-
export {};
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi10eXBlLXNxbC9wcm9qZWN0cy90YW9uLXR5cGUtc3FsL3NyYy9saWIvY29udmVydGVyL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVDLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUVBQWlFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuZXhwb3J0IHR5cGUgUXVlcnlFbmdpbmUgPSAncGcnIHwgJ215c3FsJztcblxuZXhwb3J0IGludGVyZmFjZSBDb252ZXJ0ZXJPcHRpb25zIHtcbiAgICBsaW5lQnJlYWs6IHN0cmluZyxcbiAgICBuYW1lRXNjYXBlOiBzdHJpbmdcbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24tdHlwZS1zcWwgbGliL2NvbnZlcnRlci90eXBlcy50cyJdfQ==
|