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,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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdGFvbi10eXBlLXNxbC9wcm9qZWN0cy90YW9uLXR5cGUtc3FsL3NyYy9saWIvY29udmVydGVyL3F1ZXJ5LWNvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJakUsTUFBTSxVQUFVLG9CQUFvQixDQUFDLGNBQXNDLEVBQUUsT0FBeUIsRUFBRSxNQUFtQjtJQUV2SCxPQUFPLFlBQVksQ0FBQztJQUVwQixTQUFTLFlBQVksQ0FBQyxLQUFVO1FBQzVCLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxRQUFRO1lBQUUsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssUUFBUTtZQUFFLE9BQU8sa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLFFBQVE7WUFBRSxPQUFPLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxRQUFRO1lBQUUsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsU0FBUyxrQkFBa0IsQ0FBQyxLQUFVO1FBQ2xDLElBQUksQ0FBQyxHQUFHLGNBQWMsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BELENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDMUMsT0FBTyxD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RCxDQUFDO0lBRUQsU0FBUyxhQUFhLENBQUMsSUFBWSxFQUFFLEtBQVU7UUFDM0MsSUFBSSxJQUFJLEtBQUssUUFBUTtZQUFFLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3ZDLElBQUksSUFBSSxLQUFLLFNBQVM7WUFBRSxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM5QyxJQUFJLElBQUksS0FBSyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDeEMsSUFBSSxJQUFJLEtBQUssUUFBUTtZQUFFLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7QUFDTCxDQUFDO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywyRUFBMkUiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgc3RyaW5nLCBudW1iZXIsIGRhdGUsIGJvb2xlYW4gfSBmcm9tICcuL3R5cGUtY29udmVydGVyJztcbmltcG9ydCB7IFF1ZXJ5RW5naW5lLCBDb252ZXJ0ZXJPcHRpb25zIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUXVlcnlDb252ZXJ0ZXIocGFyYW1Db252ZXJ0ZXI6IChwYXJhbTogYW55KSA9PiBzdHJpbmcsIG9wdGlvbnM6IENvbnZlcnRlck9wdGlvbnMsIGVuZ2luZTogUXVlcnlFbmdpbmUpIHtcblxuICAgIHJldHVybiBjb252ZXJ0UXVlcnk7XG5cbiAgICBmdW5jdGlvbiBjb252ZXJ0UXVlcnkocXVlcnk6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGlmIChxdWVyeS5fYWN0aW9uID09PSAnc2VsZWN0JykgcmV0dXJuIGNvbnZlcnRTZWxlY3RRdWVyeShxdWVyeSk7XG4gICAgICAgIGlmIChxdWVyeS5fYWN0aW9uID09PSAnZGVsZXRlJykgcmV0dXJuIGNvbnZlcnREZWxldGVRdWVyeShxdWVyeSk7XG4gICAgICAgIGlmIChxdWVyeS5fYWN0aW9uID09PSAndXBkYXRlJykgcmV0dXJuIGNvbnZlcnRVcGRhdGVRdWVyeShxdWVyeSk7XG4gICAgICAgIGlmIChxdWVyeS5fYWN0aW9uID09PSAnaW5zZXJ0JykgcmV0dXJuIGNvbnZlcnRJbnNlcnRRdWVyeShxdWVyeSk7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBxdWVyeSB0eXBlOicgKyBxdWVyeS5fYWN0aW9uKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb252ZXJ0RGVsZXRlUXVlcnkocXVlcnk6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGxldCBzID0gJ0RFTEVURSBGUk9NICcgKyBjb252ZXJ0VGFibGUocXVlcnkuX3RhYmxlKTtcbiAgICAgICAgcyArPSBjb252ZXJ0Q29uZGl0aW9ucyhxdWVyeS5fY29uZGl0aW9ucyk7XG4gICAgICAgIHJldHVybiBzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbnZlcnRVcGRhdGVRdWVyeShxdWVyeTogYW55KTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHMgPSAnVVBEQVRFICcgKyBjb252ZXJ0VGFibGUocXVlcnkuX3RhYmxlKSArICcgU0VUICc7XG4gICAgICAgIHMgKz0gY29udmVydFVwZGF0ZVNldHRlcnMocXVlcnkuX3RhYmxlLCBxdWVyeS5fZW50aXR5KTtcbiAgICAgICAgcyArPSBjb252ZXJ0Q29uZGl0aW9ucyhxdWVyeS5fY29uZGl0aW9ucyk7XG4gICAgICAgIHJldHVybiBzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbnZlcnRVcGRhdGVTZXR0ZXJzKHRhYmxlOiBhbnksIGVudGl0eTogYW55KTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGVudGl0eSkuc29ydCgpLm1hcChrZXkgPT4ge1xuICAgICAgICAgICAgbGV0IHZhbHVlID0gZW50aXR5W2tleV07XG4gICAgICAgICAgICBsZXQgY29sdW1uID0gdGFibGVba2V5XTtcbiAgICAgICAgICAgIHJldHVybiBjb252ZXJ0Q29sdW1uTmFtZShjb2x1bW4pICsgJyA9ICcgKyBjb252ZXJ0UGFyYW0oY29sdW1uLCB2YWx1ZSk7XG4gICAgICAgIH0pLmpvaW4oJywgJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29udmVydEluc2VydFF1ZXJ5KHF1ZXJ5OiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBsZXQgaXRlbXM6IGFueVtdID0gQXJyYXkuaXNBcnJheShxdWVyeS5fZW50aXR5KSA/IHF1ZXJ5Ll9lbnRpdHkgOiBbcXVlcnkuX2VudGl0eV07XG4gICAgICAgIGxldCBrZXlTZXQ6IFNldDxzdHJpbmc+ID0gaXRlbXMucmVkdWNlKChzZXQ6IFNldDxzdHJpbmc+LCBpdGVtKSA9PiB7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhpdGVtKS5mb3JFYWNoKGtleSA9PiBzZXQuYWRkKGtleSkpOyByZXR1cm4gc2V0O1xuICAgICAgICB9LCBuZXcgU2V0PHN0cmluZz4oKSk7XG4gICAgICAgIGxldCBrZXlzID0gQXJyYXkuZnJvbShrZXlTZXQpLnNvcnQoKTtcblxuICAgICAgICBsZXQgcyA9ICdJTlNFUlQgSU5UTyAnICsgY29udmVydFRhYmxlKHF1ZXJ5Ll90YWJsZSkgKyAnICc7XG4gICAgICAgIHMgKz0gJygnICsga2V5cy5tYXAoa2V5ID0+IGNvbnZlcnRDb2x1bW5OYW1lKHF1ZXJ5Ll90YWJsZVtrZXldKSkuam9pbignLCAnKSArICcpJztcbiAgICAgICAgcyArPSBvcHRpb25zLmxpbmVCcmVhayArICdWQUxVRVMgJztcbiAgICAgICAgcyArPSBpdGVtcy5tYXAoaXRlbSA9PiBjb252ZXJ0SW5zZXJ0SXRlbShxdWVyeS5fdGFibGUsIGl0ZW0sIGtleXMpKVxuICAgICAgICAgICAgLm1hcCgocm93OiBzdHJpbmcpID0+ICcoJyArIHJvdyArICcpJykuam9pbignLCAnKTtcblxuICAgICAgICBzICs9IGdldFBnSW5zZXJ0UmV0dXJuaW5nSWZOZWVkZWQocXVlcnkpO1xuICAgICAgICByZXR1cm4gcztcbiAgICB9XG5cblxuICAgIGZ1bmN0aW9uIGdldFBnSW5zZXJ0UmV0dXJuaW5nSWZOZWVkZWQocXVlcnk6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGlmIChlbmdpbmUgPT09ICdwZycgJiYgcXVlcnkuX2FjdGlvbiA9PT0gJ2luc2VydCcgJiYgIUFycmF5LmlzQXJyYXkocXVlcnkuX2VudGl0eSkgJiZcbiAgICAgICAgICAgIHF1ZXJ5Ll90YWJsZS4kaWQgJiYgcXVlcnkuX3RhYmxlLiRpZC5fdGFibGUgJiYgcXVlcnkuX3RhYmxlLiRpZC5fbmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuICcgUkVUVVJOSU5HICcgKyBjb252ZXJ0Q29sdW1uTmFtZShxdWVyeS5fdGFibGUuJGlkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29udmVydEluc2VydEl0ZW0odGFibGU6IGFueSwgZW50aXR5OiBhbnksIGtleXM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGtleXMubWFwKGtleSA9PiB7XG4gICAgICAgICAgICBsZXQgdmFsdWUgPSBlbnRpdHlba2V5XTtcbiAgICAgICAgICAgIGxldCBjb2x1bW4gPSB0YWJsZVtrZXldO1xuICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRQYXJhbShjb2x1bW4sIHZhbHVlKTtcbiAgICAgICAgfSkuam9pbignLCAnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb252ZXJ0U2VsZWN0UXVlcnkocXVlcnk6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGxldCBzID0gJ1NFTEVDVCAnO1xuICAgICAgICBpZiAocXVlcnkuX2Rpc3RpbmN0KSB7XG4gICAgICAgICAgICBzICs9ICdESVNUSU5DVCAnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHF1ZXJ5Ll9jb2x1bW5zID09IG51bGwgfHwgcXVlcnkuX2NvbHVtbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBzICs9ICcqJ1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcyArPSBxdWVyeS5fY29sdW1ucy5tYXAoKGNvbHVtbjogYW55KSA9PiBjb252ZXJ0Q29sdW1uKGNvbHVtbikpLmpvaW4oJywgJyk7XG4gICAgICAgIH1cblxuICAgICAgICBzICs9IG9wdGlvbnMubGluZUJyZWFrICsgJ0ZST00gJztcbiAgICAgICAgaWYgKHF1ZXJ5Ll90YWJsZXMpIHtcbiAgICAgICAgICAgIHMrPSBxdWVyeS5fdGFibGVzLm1hcCgodGFibGU6IGFueSkgPT4gdGFibGUuX3BhcmVudCA/IGNvbnZlcnRKb2luKHRhYmxlKSA6IGNvbnZlcnRUYWJsZSh0YWJsZSkpLmpvaW4oJywgJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzKz0gY29udmVydFRhYmxlKHF1ZXJ5Ll90YWJsZSk7XG4gICAgICAgIH1cblxuICAgICAgICBzICs9IGNvbnZlcnRDb25kaXRpb25zKHF1ZXJ5Ll9jb25kaXRpb25zKTtcblxuICAgICAgICBpZiAocXVlcnkuX2dyb3VwQnkgJiYgcXVlcnkuX2dyb3VwQnkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcyArPSBvcHRpb25zLmxpbmVCcmVhayArICdHUk9VUCBCWSAnO1xuICAgICAgICAgICAgcyArPSBxdWVyeS5fZ3JvdXBCeS5tYXAoKGNvbHVtbjogYW55KSA9PiBjb252ZXJ0Q29sdW1uKGNvbHVtbikpLmpvaW4oJywgJyk7XG4gICAgICAgIH1cbiAgICAgICAgcyArPSBjb252ZXJ0Q29uZGl0aW9ucyhxdWVyeS5faGF2aW5nLCAnSEFWSU5HJyk7XG5cbiAgICAgICAgaWYgKHF1ZXJ5Ll9vcmRlcmluZ3MgJiYgcXVlcnkuX29yZGVyaW5ncy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBzICs9IG9wdGlvbnMubGluZUJyZWFrICsgJ09SREVSIEJZICc7XG4gICAgICAgICAgICBzICs9IHF1ZXJ5Ll9vcmRlcmluZ3MubWFwKChvcmRlcmluZzogYW55KSA9PiBjb252ZXJ0T3JkZXJpbmcob3JkZXJpbmcpKS5qb2luKCcsICcpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChxdWVyeS5fbGltaXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgcyArPSBvcHRpb25zLmxpbmVCcmVhayArICdMSU1JVCAnICsgbnVtYmVyKHF1ZXJ5Ll9saW1pdCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHF1ZXJ5Ll9vZmZzZXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgcyArPSBvcHRpb25zLmxpbmVCcmVhayArICdPRkZTRVQgJyArIG51bWJlcihxdWVyeS5fb2Zmc2V0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb252ZXJ0Q29uZGl0aW9ucyhjb25kaXRpb25zOiBhbnlbXSwga2V5d29yZCA9ICdXSEVSRScpOiBzdHJpbmcge1xuICAgICAgICBsZXQgcyA9ICcnO1xuICAgICAgICBpZiAoY29uZGl0aW9ucyAmJiBjb25kaXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHMgKz0gb3B0aW9ucy5saW5lQnJlYWsgKyBrZXl3b3JkICsgJyAnO1xuICAgICAgICAgICAgcHJlcHJvY2Vzc0NvbmRpdGlvbnMoY29uZGl0aW9ucyk7XG4gICAgICAgICAgICBzICs9IGNvbmRpdGlvbnMubWFwKGNvbmRpdGlvbiA9PiBjb252ZXJ0Q29uZGl0aW9uKGNvbmRpdGlvbiwgdHJ1ZSkpLmpvaW4oJyBBTkQgJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29udmVydEpvaW4oam9pbkNoYWluOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBsZXQgaXRlbXM6IGFueVtdID0gW107XG4gICAgICAgIHdoaWxlIChqb2luQ2hhaW4pIHtcbiAgICAgICAgICAgIGl0ZW1zLnB1c2goam9pbkNoYWluKTtcbiAgICAgICAgICAgIGpvaW5DaGFpbiA9IGpvaW5DaGFpbi5fcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHJvb3QgPSBpdGVtc1tpdGVtcy5sZW5ndGggLSAxXTtcbiAgICAgICAgbGV0IHMgPSBjb252ZXJ0VGFibGUocm9vdCk7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IGl0ZW1zLmxlbmd0aCAtIDI7IGkgPj0gMDsgaS09IDIpIHtcbiAgICAgICAgICAgIGxldCB0YWJsZSA9IGl0ZW1zW2ldLl90YWJsZTtcbiAgICAgICAgICAgIGxldCBtb2RpZmllciA9IGl0ZW1zW2ldLl9tb2RpZmllcjtcbiAgICAgICAgICAgIGxldCBjb25kaXRpb24gPSBpdGVtc1tpIC0gMV0uX2NvbmRpdGlvbjtcbiAgICAgICAgICAgIGxldCBwYXJhbSA9IGNvbnZlcnRDb2x1bW4oY29uZGl0aW9uLl9vdGhlckNvbHVtbik7XG4gICAgICAgICAgICBzICs9ICcgJyArIG1vZGlmaWVyLnRvVXBwZXJDYXNlKCkgKyAnIEpPSU4gJyArIGNvbnZlcnRUYWJsZSh0YWJsZSkgKyAnIE9OICcgK1xuICAgICAgICAgICAgICAgIGNvbnZlcnRDb2x1bW5Db25kaXRpb24oY29uZGl0aW9uLCBwYXJhbSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb252ZXJ0T3JkZXJpbmcob3JkZXJpbmc6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGlmIChvcmRlcmluZy5fY29sdW1uKSB7XG4gICAgICAgICAgICBsZXQgcyA9IGNvbnZlcnRDb2x1bW4ob3JkZXJpbmcuX2NvbHVtbik7XG5cbiAgICAgICAgICAgIGlmIChvcmRlcmluZy5fbnVsbHNQb3NpdGlvbiAhPSBudWxsKSB7IC8vIFwiTlVMTFMgRklSU1RcIiBvbmx5IGV4aXN0cyBpbiBQRywgdGhpcyBpcyB0aGUgZ2VuZXJhbCBzb2x1dGlvblxuICAgICAgICAgICAgICAgIHMgKz0gJyBJUyBOVUxMICcgKyAob3JkZXJpbmcuX251bGxzUG9zaXRpb24gPT09ICdGSVJTVCcgPyAnREVTQycgOiAnQVNDJykgKyAnLCAnICsgcztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG9yZGVyaW5nLl9kaXJlY3Rpb24gPT09ICdBU0MnKSBzICs9ICcgQVNDJztcbiAgICAgICAgICAgIGlmIChvcmRlcmluZy5fZGlyZWN0aW9uID09PSAnREVTQycpIHMgKz0gJyBERVNDJztcblxuICAgICAgICAgICAgcmV0dXJuIHM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gY29udmVydENvbHVtbihvcmRlcmluZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb252ZXJ0VGFibGUodGFibGU6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBvcHRpb25zLm5hbWVFc2NhcGUgKyB0YWJsZS5fJG5hbWUgKyBvcHRpb25zLm5hbWVFc2NhcGU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29udmVydENvbHVtbihjb2x1bW46IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGxldCBzID0gJyc7XG4gICAgICAgIGlmICghKGNvbHVtbi5fbmFtZSA9PT0gJyonICYmIGNvbHVtbi5fbW9kaWZpZXJzLmxlbmd0aCA+IDAgJiYgY29sdW1uLl9tb2RpZmllcnNbMF0ubmFtZSA9PT0gJ2NvdW50JykpIHtcbiAgICAgICAgICAgIHMgKz0gY29udmVydFRhYmxlKGNvbHVtbi5fdGFibGUpICsgJy4nO1xuICAgICAgICB9XG4gICAgICAgIHMgKz0gY29udmVydENvbHVtbk5hbWUoY29sdW1uKTtcbiAgICAgICAgcmV0dXJuIGNvbnZlcnRDb2x1bW5Nb2RpZmllcnMocywgY29sdW1uKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb252ZXJ0Q29sdW1uTW9kaWZpZXJzKHM6IHN0cmluZywgY29sdW1uOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBpZiAoY29sdW1uLl9tb2RpZmllcnMpIHtcbiAgICAgICAgICAgIGNvbHVtbi5fbW9kaWZpZXJzLmZvckVhY2goKG1vZGlmaWVyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgbmFtZSA9IG1vZGlmaWVyLm5hbWU7XG4gICAgICAgICAgICAgICAgaWYgKG5hbWUgPT09ICdsb3dlcicpIHMgPSAnTE9XRVIoJyArIHMgKyAnKSc7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobmFtZSA9PT0gJ3VwcGVyJykgcyA9ICdVUFBFUignICsgcyArICcpJztcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChuYW1lID09PSAnY291bnQnKSBzID0gJ0NPVU5UKCcgKyBzICsgJyknO1xuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG5hbWUgPT09ICdzdW0nKSBzID0gJ1NVTSgnICsgcyArICcpJztcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChuYW1lID09PSAnYXZnJykgcyA9ICdBVkcoJyArIHMgKyAnKSc7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobmFtZSA9PT0gJ21pbicpIHMgPSAnTUlOKCcgKyBzICsgJyknO1xuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG5hbWUgPT09ICdtYXgnKSBzID0gJ01BWCgnICsgcyArICcpJztcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChuYW1lID09PSAnYXMnKSBzID0gcyArICcgQVMgJyArIG9wdGlvbnMubmFtZUVzY2FwZSArIG1vZGlmaWVyLnBhcmFtcyArIG9wdGlvbnMubmFtZUVzY2FwZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzICsgJyc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29udmVydENvbHVtbk5hbWUoY29sdW1uOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBpZiAoY29sdW1uLl9uYW1lID09PSAnKicpIHJldHVybiBjb2x1bW4uX25hbWU7XG4gICAgICAgIGxldCBuYW1lID0gdHlwZW9mIGNvbHVtbi5fbmFtZSA9PT0gJ3N0cmluZycgPyBjb2x1bW4uX25hbWUgOiBjb2x1bW4uX25hbWUubmFtZTtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMubmFtZUVzY2FwZSArIG5hbWUgKyBvcHRpb25zLm5hbWVFc2NhcGU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcHJlcHJvY2Vzc0NvbmRpdGlvbnMoY29uZGl0aW9uczogYW55W10pOiB2b2lkIHtcbiAgICAgICAgY29uZGl0aW9ucy5mb3JFYWNoKGNvbmRpdGlvbiA9PiB7XG4gICAgICAgICAgICBpZiAoY29uZGl0aW9ucy5sZW5ndGggPiAxICYmIGNvbmRpdGlvbi5fc2libGluZykge1xuICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5fcGFyZW50aGVzaXMgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcHJlcHJvY2Vzc1BhcmFtcyhjb25kaXRpb24pO1xuICAgICAgICB9KTtcbiAgICB9XG5cblxuICAgIGZ1bmN0aW9uIHByZXByb2Nlc3NQYXJhbXMoY29uZGl0aW9uOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNvbmRpdGlvbi5fc2libGluZykge1xuICAgICAgICAgICAgcHJlcHJvY2Vzc1BhcmFtcyhjb25kaXRpb24uX3NpYmxpbmcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghY29uZGl0aW9uLl9zaWJsaW5nICYmICFjb25kaXRpb24uX2NoaWxkKSB7XG4gICAgICAgICAgICBjb25kaXRpb24uX19wYXJhbSA9IGdldENvbmRpdGlvblBhcmFtKGNvbmRpdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbmRpdGlvbi5fY2hpbGQpIHtcbiAgICAgICAgICAgIHByZXByb2Nlc3NQYXJhbXMoY29uZGl0aW9uLl9jaGlsZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb252ZXJ0Q29uZGl0aW9uKGNvbmRpdGlvbjogYW55LCByb290ID0gZmFsc2UpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWNvbmRpdGlvbi5fc2libGluZyAmJiAhY29uZGl0aW9uLl9jaGlsZCkge1xuICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRDb2x1bW5Db25kaXRpb24oY29uZGl0aW9uLCBjb25kaXRpb24uX19wYXJhbSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcyA9ICcnO1xuICAgICAgICBpZiAoY29uZGl0aW9uLl9jaGlsZCkge1xuICAgICAgICAgICAgcyArPSBjb252ZXJ0Q29uZGl0aW9uKGNvbmRpdGlvbi5fY2hpbGQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb25kaXRpb24uX3NpYmxpbmcpIHtcbiAgICAgICAgICAgIHMgPSBjb252ZXJ0Q29uZGl0aW9uKGNvbmRpdGlvbi5fc2libGluZywgcm9vdCkgKyAnICcgKyBjb25kaXRpb24uX2NoYWluVHlwZS50b1VwcGVyQ2FzZSgpICsgJyAnICsgcztcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29uZGl0aW9uLl9wYXJlbnRoZXNpcyB8fCAoKCFyb290IHx8IGNvbmRpdGlvbi5fbmVnYXRpb24pICYmIGNvbmRpdGlvbi5fY2hpbGQpKSB7XG4gICAgICAgICAgICBzID0gJyggJyArIHMgKyAnICknO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb25kaXRpb24uX25lZ2F0aW9uKSB7XG4gICAgICAgICAgICBzID0gJ05PVCAnICsgcztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb252ZXJ0Q29sdW1uQ29uZGl0aW9uKGNvbmRpdGlvbjogYW55LCBwYXJhbTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHMgPSBjb252ZXJ0Q29sdW1uKGNvbmRpdGlvbi5fY29sdW1uKTtcbiAgICAgICAgcyArPSBnZXRDb25kaXRpb25TdHJpbmcoY29uZGl0aW9uLCBwYXJhbSk7XG4gICAgICAgIHJldHVybiBzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldENvbmRpdGlvblN0cmluZyhjb25kaXRpb246IGFueSwgcGFyYW06IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHN3aXRjaCAoY29uZGl0aW9uLl90eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdlcSc6IHJldHVybiAnID0gJyArIHBhcmFtO1xuICAgICAgICAgICAgY2FzZSAnbmUnOiByZXR1cm4gJyA8PiAnICsgcGFyYW07XG4gICAgICAgICAgICBjYXNlICdsdCc6IHJldHVybiAnIDwgJyArIHBhcmFtO1xuICAgICAgICAgICAgY2FzZSAnZ3QnOiByZXR1cm4gJyA+ICcgKyBwYXJhbTtcbiAgICAgICAgICAgIGNhc2UgJ2x0ZSc6IHJldHVybiAnIDw9ICcgKyBwYXJhbTtcbiAgICAgICAgICAgIGNhc2UgJ2d0ZSc6IHJldHVybiAnID49ICcgKyBwYXJhbTtcbiAgICAgICAgICAgIGNhc2UgJ2lzLW51bGwnOiByZXR1cm4gJyBJUyBOVUxMJztcbiAgICAgICAgICAgIGNhc2UgJ2lzLW5vdC1udWxsJzogcmV0dXJuICcgSVMgTk9UIE5VTEwnO1xuICAgICAgICAgICAgY2FzZSAnbGlrZSc6IHJldHVybiAnIExJS0UgJyArIHBhcmFtO1xuICAgICAgICAgICAgY2FzZSAnbm90LWxpa2UnOiByZXR1cm4gJyBOT1QgTElLRSAnICsgcGFyYW07XG4gICAgICAgICAgICBjYXNlICdpbic6IHJldHVybiAnIElOICgnICsgcGFyYW0gKyAnKSc7XG4gICAgICAgICAgICBjYXNlICdub3QtaW4nOiByZXR1cm4gJyBOT1QgSU4gKCcgKyBwYXJhbSArICcpJztcbiAgICAgICAgICAgIGNhc2UgJ2JldHdlZW4nOiByZXR1cm4gJyBCRVRXRUVOICcgKyBwYXJhbTtcbiAgICAgICAgICAgIGNhc2UgJ25vdC1iZXR3ZWVuJzogcmV0dXJuICcgTk9UIEJFVFdFRU4gJyArIHBhcmFtO1xuICAgICAgICAgICAgZGVmYXVsdDogcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0Q29uZGl0aW9uUGFyYW0oY29uZGl0aW9uOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBsZXQgcGFyYW0gPSAnJztcbiAgICAgICAgaWYgKGNvbmRpdGlvbi5fb3RoZXJDb2x1bW4pIHtcbiAgICAgICAgICAgIHBhcmFtID0gY29udmVydENvbHVtbihjb25kaXRpb24uX290aGVyQ29sdW1uKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBfY29udmVydFBhcmFtID0gKHBhcmFtOiBhbnkpID0+IGNvbnZlcnRQYXJhbShjb25kaXRpb24uX2NvbHVtbiwgcGFyYW0pO1xuXG4gICAgICAgICAgICBpZiAoY29uZGl0aW9uLl90eXBlID09PSAnaW4nIHx8IGNvbmRpdGlvbi5fdHlwZSA9PT0gJ25vdC1pbicpIHtcbiAgICAgICAgICAgICAgICBwYXJhbSA9IGNvbmRpdGlvbi5fdmFsdWVzLm1hcCgodmFsdWU6IGFueSkgPT4gX2NvbnZlcnRQYXJhbSh2YWx1ZSkpLmpvaW4oJywgJyk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbmRpdGlvbi5fdHlwZSA9PT0gJ2JldHdlZW4nIHx8IGNvbmRpdGlvbi5fdHlwZSA9PT0gJ25vdC1iZXR3ZWVuJykge1xuICAgICAgICAgICAgICAgIHBhcmFtID0gX2NvbnZlcnRQYXJhbShjb25kaXRpb24uX3ZhbHVlc1swXSkgKyAnIEFORCAnICsgX2NvbnZlcnRQYXJhbShjb25kaXRpb24uX3ZhbHVlc1sxXSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbmRpdGlvbi5fdHlwZSAhPT0gJ2lzLW51bGwnICYmIGNvbmRpdGlvbi5fdHlwZSAhPT0gJ2lzLW5vdC1udWxsJykge1xuICAgICAgICAgICAgICAgIHBhcmFtID0gX2NvbnZlcnRQYXJhbShjb25kaXRpb24uX3ZhbHVlc1swXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhcmFtO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbnZlcnRQYXJhbShjb2x1bW46IGFueSwgcGFyYW06IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGlmIChwYXJhbSA9PSBudWxsKSByZXR1cm4gJ05VTEwnO1xuICAgICAgICByZXR1cm4gcGFyYW1Db252ZXJ0ZXIoZ2V0VHlwZWRQYXJhbShjb2x1bW4uX3R5cGUsIHBhcmFtKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0VHlwZWRQYXJhbSh0eXBlOiBzdHJpbmcsIHBhcmFtOiBhbnkpOiBhbnkge1xuICAgICAgICBpZiAodHlwZSA9PT0gJ251bWJlcicpIHJldHVybiBudW1iZXIocGFyYW0pO1xuICAgICAgICBlbHNlIGlmICh0eXBlID09PSAnYm9vbGVhbicpIHJldHVybiBib29sZWFuKHBhcmFtKTtcbiAgICAgICAgZWxzZSBpZiAodHlwZSA9PT0gJ2RhdGUnKSByZXR1cm4gZGF0ZShwYXJhbSk7XG4gICAgICAgIGVsc2UgaWYgKHR5cGUgPT09ICdzdHJpbmcnKSByZXR1cm4gc3RyaW5nKHBhcmFtKTtcbiAgICAgICAgcmV0dXJuIHBhcmFtO1xuICAgIH1cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24tdHlwZS1zcWwgbGliL2NvbnZlcnRlci9xdWVyeS1jb252ZXJ0ZXIudHMiXX0=
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LWNvbnZlcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L3Rhb24tdHlwZS1zcWwvcHJvamVjdHMvdGFvbi10eXBlLXNxbC9zcmMvbGliL2NvbnZlcnRlci9yZXN1bHQtY29udmVydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sVUFBVSxhQUFhLENBQUMsS0FBVSxFQUFFLE1BQVcsRUFBRSxNQUFtQjtJQUN4RSxJQUFJLElBQUksR0FBRyxNQUFNLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDbEQsSUFBSSxRQUFRLEdBQUcsTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDO0lBRTdGLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxRQUFRO1FBQUUsT0FBTyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEUsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLFFBQVE7UUFBRSxPQUFPLFFBQVEsQ0FBQztJQUNoRCxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssUUFBUTtRQUFFLE9BQU8sUUFBUSxDQUFDO0lBQ2hELElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxRQUFRO1FBQUUsT0FBTyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDekQsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsTUFBVyxFQUFFLE1BQW1CO0lBQzNELElBQUksTUFBTSxLQUFLLE9BQU87UUFBRSxPQUFPLE1BQU0sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyw4REFBOEQ7SUFDaEosSUFBSSxNQUFNLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDL0QsSUFBSSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxLQUFVLEVBQUUsSUFBVztJQUNsRCxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUMvQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2xGLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDaEMsSUFBSSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLDREQUE0RDtRQUN0RyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUVyRCxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENB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QUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ3RELENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUM5QixPQUFPLFNBQVMsRUFBRSxDQUFDO2dCQUNqQixzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTtvQkFDeEQsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQ3RELENBQUMsQ0FBQyxDQUFDO2dCQUNILFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDO1lBQ2hDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDO0FBRUQsU0FBUyxzQkFBc0IsQ0FBQyxLQUFVO0lBQ3hDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDekgsQ0FBQztBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsNEVBQTRFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IFF1ZXJ5RW5naW5lIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRSZXN1bHQocXVlcnk6IGFueSwgcmVzdWx0OiBhbnksIGVuZ2luZTogUXVlcnlFbmdpbmUpOiBhbnkge1xuICBsZXQgcm93cyA9IGVuZ2luZSA9PT0gJ3BnJyA/IHJlc3VsdC5yb3dzIDogcmVzdWx0O1xuICBsZXQgcm93Q291bnQgPSBlbmdpbmUgPT09ICdwZycgPyByZXN1bHQucm93Q291bnQgOiByZXN1bHQuYWZmZWN0ZWRSb3dzIHx8IHJlc3VsdC5jaGFuZ2VkUm93cztcblxuICBpZiAocXVlcnkuX2FjdGlvbiA9PT0gJ3NlbGVjdCcpIHJldHVybiBjb252ZXJ0U2VsZWN0UmVzdWx0KHF1ZXJ5LCByb3dzKTtcbiAgaWYgKHF1ZXJ5Ll9hY3Rpb24gPT09ICdkZWxldGUnKSByZXR1cm4gcm93Q291bnQ7XG4gIGlmIChxdWVyeS5fYWN0aW9uID09PSAndXBkYXRlJykgcmV0dXJuIHJvd0NvdW50O1xuICBpZiAocXVlcnkuX2FjdGlvbiA9PT0gJ2luc2VydCcpIHJldHVybiBjb252ZXJ0SW5zZXJ0UmVzdWx0KHJlc3VsdCwgZW5naW5lKTtcbiAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIHF1ZXJ5IHR5cGU6JyArIHF1ZXJ5Ll9hY3Rpb24pO1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0SW5zZXJ0UmVzdWx0KHJlc3VsdDogYW55LCBlbmdpbmU6IFF1ZXJ5RW5naW5lKTogYW55IHtcbiAgaWYgKGVuZ2luZSA9PT0gJ215c3FsJykgcmV0dXJuIHJlc3VsdC5pbnNlcnRJZCA+IDAgPyByZXN1bHQuaW5zZXJ0SWQgOiB1bmRlZmluZWQ7IC8vIG15c3FsIHJldHVybnMgMCBmb3IgdGFibGVzIHRoYXQgaGF2ZSBhIG5vbi1hdXRvaW5jcmVtZW50IElEXG4gIGlmIChlbmdpbmUgPT09ICdwZycgJiYgcmVzdWx0LnJvd3MgJiYgcmVzdWx0LnJvd3MubGVuZ3RoID09PSAxKSB7XG4gICAgbGV0IGNvbHVtbk5hbWUgPSBPYmplY3Qua2V5cyhyZXN1bHQucm93c1swXSlbMF07XG4gICAgcmV0dXJuIHJlc3VsdC5yb3dzWzBdW2NvbHVtbk5hbWVdO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRTZWxlY3RSZXN1bHQocXVlcnk6IGFueSwgcm93czogYW55W10pOiBhbnkge1xuICBpZiAocXVlcnkuX2NvbHVtbnMgJiYgcXVlcnkuX2NvbHVtbnMubGVuZ3RoID09PSAxICYmXG4gICAgIShxdWVyeS5fY29sdW1uc1swXS5fbmFtZSA9PT0gJyonICYmIHF1ZXJ5Ll9jb2x1bW5zWzBdLl9tb2RpZmllcnMubGVuZ3RoID09PSAwKSkge1xuICAgIGlmIChyb3dzLmxlbmd0aCA9PSAwKSByZXR1cm4gW107XG4gICAgbGV0IGNvbHVtbk5hbWUgPSBPYmplY3Qua2V5cyhyb3dzWzBdKVswXTsgLy8gZWFzaWVyIHRoYW4gcmV2ZXJzZSBlbmdpbmVlcmluZyBmcm9tIHRoZSBjb2x1bW4gbW9kaWZpZXJzXG4gICAgbGV0IHZhbHVlcyA9IHJvd3MubWFwKChyb3c6IGFueSkgPT4gcm93W2NvbHVtbk5hbWVdKTtcblxuICAgIGlmIChxdWVyeS5fY29sdW1uc1swXS5fbmFtZSA9PT0gJyonICYmIHF1ZXJ5Ll9jb2x1bW5zWzBdLl9tb2RpZmllcnMuc29tZSgobTogYW55KSA9PiBtLm5hbWUgPT09ICdjb3VudCcpKSB7XG4gICAgICByZXR1cm4gdmFsdWVzLm1hcCgodmFsdWU6IGFueSkgPT4gTnVtYmVyKHZhbHVlKSk7IC8vIHN0cmluZyB0byBudW1iZXIgY29udmVyc2lvbiBmb3IgUEcgY291bnQgdmFsdWVzXG4gICAgfVxuICAgIHJldHVybiB2YWx1ZXM7XG4gIH0gZWxzZSB7XG4gICAgY29udmVydEFsaWFzRmllbGRzKHF1ZXJ5LCByb3dzKTtcbiAgICByZXR1cm4gcm93cztcbiAgfVxufVxuXG5mdW5jdGlvbiBjb252ZXJ0QWxpYXNGaWVsZHMocXVlcnk6IGFueSwgcm93czogYW55W10pOiB2b2lkIHtcbiAgbGV0IGFsaWFzQnlOYW1lID0gZ2V0Q29sdW1uQWxpYXNlc0J5TmFtZShxdWVyeSk7XG4gIGlmIChPYmplY3Qua2V5cyhhbGlhc0J5TmFtZSkubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgcm93cy5mb3JFYWNoKChyb3c6IGFueSkgPT4ge1xuICAgIE9iamVjdC5rZXlzKHJvdykuZm9yRWFjaCgobmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoYWxpYXNCeU5hbWVbbmFtZV0pIHtcbiAgICAgICAgcm93W2FsaWFzQnlOYW1lW25hbWVdXSA9IHJvd1tuYW1lXTtcbiAgICAgICAgZGVsZXRlIHJvd1tuYW1lXTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldENvbHVtbkFsaWFzZXNCeU5hbWUocXVlcnk6IGFueSk6IGFueSB7XG4gIGxldCBhbGlhc0J5TmFtZSA9IHt9IGFzIGFueTtcblxuICBpZiAocXVlcnkuX2NvbHVtbnMgJiYgcXVlcnkuX2NvbHVtbnMubGVuZ3RoID4gMCkge1xuICAgIHF1ZXJ5Ll9jb2x1bW5zLmZvckVhY2goKGNvbHVtbjogYW55KSA9PiB7XG4gICAgICBpZiAoY29sdW1uLl9uYW1lICYmIGNvbHVtbi5fbmFtZS5hbGlhcyAmJiBjb2x1bW4uX21vZGlmaWVycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgYWxpYXNCeU5hbWVbY29sdW1uLl9uYW1lLm5hbWVdID0gY29sdW1uLl9uYW1lLmFsaWFzO1xuICAgICAgfSBlbHNlIGlmIChjb2x1bW4uX25hbWUgPT09ICcqJyAmJiBjb2x1bW4uX21vZGlmaWVycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgZ2V0QWxpYXNDb2x1bW5zT2ZUYWJsZShjb2x1bW4uX3RhYmxlKS5mb3JFYWNoKChjb2x1bW46IGFueSkgPT4ge1xuICAgICAgICAgIGFsaWFzQnlOYW1lW2NvbHVtbi5fbmFtZS5uYW1lXSA9IGNvbHVtbi5fbmFtZS5hbGlhcztcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHRhYmxlcyA9IHF1ZXJ5Ll90YWJsZSA/IFtxdWVyeS5fdGFibGVdIDogcXVlcnkuX3RhYmxlcztcbiAgICB0YWJsZXMuZm9yRWFjaCgodGFibGU6IGFueSkgPT4ge1xuICAgICAgZ2V0QWxpYXNDb2x1bW5zT2ZUYWJsZSh0YWJsZSkuZm9yRWFjaCgoY29sdW1uOiBhbnkpID0+IHtcbiAgICAgICAgYWxpYXNCeU5hbWVbY29sdW1uLl9uYW1lLm5hbWVdID0gY29sdW1uLl9uYW1lLmFsaWFzO1xuICAgICAgfSk7XG5cbiAgICAgIGxldCBqb2luVGFibGUgPSB0YWJsZS5fcGFyZW50O1xuICAgICAgd2hpbGUgKGpvaW5UYWJsZSkge1xuICAgICAgICBnZXRBbGlhc0NvbHVtbnNPZlRhYmxlKGpvaW5UYWJsZSkuZm9yRWFjaCgoY29sdW1uOiBhbnkpID0+IHtcbiAgICAgICAgICBhbGlhc0J5TmFtZVtjb2x1bW4uX25hbWUubmFtZV0gPSBjb2x1bW4uX25hbWUuYWxpYXM7XG4gICAgICAgIH0pO1xuICAgICAgICBqb2luVGFibGUgPSBqb2luVGFibGUuX3BhcmVudDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBhbGlhc0J5TmFtZTtcbn1cblxuZnVuY3Rpb24gZ2V0QWxpYXNDb2x1bW5zT2ZUYWJsZSh0YWJsZTogYW55KTogYW55W10ge1xuICByZXR1cm4gT2JqZWN0LmtleXModGFibGUpLm1hcChrZXkgPT4gdGFibGVba2V5XSkuZmlsdGVyKChjb2x1bW46IGFueSkgPT4gY29sdW1uICYmIGNvbHVtbi5fbmFtZSAmJiBjb2x1bW4uX25hbWUuYWxpYXMpO1xufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbi10eXBlLXNxbCBsaWIvY29udmVydGVyL3Jlc3VsdC1jb252ZXJ0ZXIudHMiXX0=
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsLWNvbnZlcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L3Rhb24tdHlwZS1zcWwvcHJvamVjdHMvdGFvbi10eXBlLXNxbC9zcmMvbGliL2NvbnZlcnRlci9zcWwtY29udmVydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRzNELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFVLEVBQUUsT0FBeUIsRUFBRSxNQUFtQjtJQUN4RixPQUFPLG9CQUFvQixDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDekcsQ0FBQztBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMseUVBQXlFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7Y3JlYXRlUXVlcnlDb252ZXJ0ZXJ9IGZyb20gXCIuL3F1ZXJ5LWNvbnZlcnRlclwiO1xuaW1wb3J0IHtjb252ZXJ0U3Vic3RpdHV0aW9uUGFyYW19IGZyb20gJy4vcGFyYW0tY29udmVydGVyJztcbmltcG9ydCB7UXVlcnlFbmdpbmUsIENvbnZlcnRlck9wdGlvbnN9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0UXVlcnlUb1NRTChxdWVyeTogYW55LCBvcHRpb25zOiBDb252ZXJ0ZXJPcHRpb25zLCBlbmdpbmU6IFF1ZXJ5RW5naW5lKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY3JlYXRlUXVlcnlDb252ZXJ0ZXIoKHBhcmFtOiBhbnkpID0+IGNvbnZlcnRTdWJzdGl0dXRpb25QYXJhbShwYXJhbSksIG9wdGlvbnMsIGVuZ2luZSkocXVlcnkpO1xufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbi10eXBlLXNxbCBsaWIvY29udmVydGVyL3NxbC1jb252ZXJ0ZXIudHMiXX0=
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1jb252ZXJ0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90YW9uLXR5cGUtc3FsL3Byb2plY3RzL3Rhb24tdHlwZS1zcWwvc3JjL2xpYi9jb252ZXJ0ZXIvdHlwZS1jb252ZXJ0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxVQUFVLE1BQU0sQ0FBQyxLQUFVO0lBQy9CLElBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUM3RixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxLQUFVO0lBQ2hDLElBQUksT0FBTyxLQUFLLEtBQUssU0FBUztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQzdDLElBQUksS0FBSyxZQUFZLE9BQU87UUFBRSxPQUFPLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNyRCxJQUFJLEtBQUssS0FBSyxNQUFNO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDbEMsSUFBSSxLQUFLLEtBQUssT0FBTztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQTBDLEdBQUcsS0FBSyxDQUFDLENBQUM7QUFDdEUsQ0FBQztBQUVELE1BQU0sVUFBVSxJQUFJLENBQUMsS0FBVTtJQUM3QixJQUFJLEtBQUssWUFBWSxJQUFJO1FBQUUsT0FBTyxLQUFLLENBQUMsQ0FBQyxhQUFhO0lBQ3RELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssWUFBWSxNQUFNO1FBQUUsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLFlBQVksTUFBTSxFQUFFLENBQUM7UUFDekQsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsYUFBYTtRQUM1SCxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxHQUFHLEtBQUssQ0FBQyxDQUFDO0FBQ25FLENBQUM7QUFFRCxNQUFNLFVBQVUsTUFBTSxDQUFDLEtBQVU7SUFDL0IsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDNUMsSUFBSSxLQUFLLFlBQVksTUFBTTtRQUFFLE9BQU8sS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BELE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLEdBQUcsS0FBSyxDQUFDLENBQUM7QUFDckUsQ0FBQztBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsMEVBQTBFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuZXhwb3J0IGZ1bmN0aW9uIG51bWJlcihwYXJhbTogYW55KTogbnVtYmVyIHtcbiAgbGV0IHJlc3VsdCA9IE51bWJlcihwYXJhbSk7XG4gIGlmIChOdW1iZXIuaXNOYU4ocmVzdWx0KSkgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG51bWJlciBwYXJhbWV0ZXIgaW4gU1FMIHF1ZXJ5OiAnICsgcGFyYW0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYm9vbGVhbihwYXJhbTogYW55KTogYm9vbGVhbiB7XG4gIGlmICh0eXBlb2YgcGFyYW0gPT09ICdib29sZWFuJykgcmV0dXJuIHBhcmFtO1xuICBpZiAocGFyYW0gaW5zdGFuY2VvZiBCb29sZWFuKSByZXR1cm4gcGFyYW0udmFsdWVPZigpO1xuICBpZiAocGFyYW0gPT09ICd0cnVlJykgcmV0dXJuIHRydWU7XG4gIGlmIChwYXJhbSA9PT0gJ2ZhbHNlJykgcmV0dXJuIGZhbHNlO1xuICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgYm9vbGVhbiBwYXJhbWV0ZXIgaW4gU1FMIHF1ZXJ5OiAnICsgcGFyYW0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGF0ZShwYXJhbTogYW55KTogRGF0ZSB7XG4gIGlmIChwYXJhbSBpbnN0YW5jZW9mIERhdGUpIHJldHVybiBwYXJhbTsgLy8gQHRzLWlnbm9yZVxuICBpZiAodHlwZW9mIHBhcmFtID09PSAnbnVtYmVyJyB8fCBwYXJhbSBpbnN0YW5jZW9mIE51bWJlcikgcmV0dXJuIG5ldyBEYXRlKHBhcmFtKTtcbiAgaWYgKHR5cGVvZiBwYXJhbSA9PT0gJ3N0cmluZycgfHwgcGFyYW0gaW5zdGFuY2VvZiBTdHJpbmcpIHtcbiAgICBpZiAoTnVtYmVyLmlzTmFOKERhdGUucGFyc2UoU3RyaW5nKHBhcmFtKSkpKSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZGF0ZSBwYXJhbWV0ZXIgaW4gU1FMIHF1ZXJ5OiAnICsgcGFyYW0pOyAvLyBAdHMtaWdub3JlXG4gICAgcmV0dXJuIG5ldyBEYXRlKHBhcmFtKTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZGF0ZSBwYXJhbWV0ZXIgaW4gU1FMIHF1ZXJ5OiAnICsgcGFyYW0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nKHBhcmFtOiBhbnkpOiBzdHJpbmcge1xuICBpZiAodHlwZW9mIHBhcmFtID09PSAnc3RyaW5nJykgcmV0dXJuIHBhcmFtO1xuICBpZiAocGFyYW0gaW5zdGFuY2VvZiBTdHJpbmcpIHJldHVybiBwYXJhbS52YWx1ZU9mKCk7XG4gIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBzdHJpbmcgcGFyYW1ldGVyIGluIFNRTCBxdWVyeTogJyArIHBhcmFtKTtcbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24tdHlwZS1zcWwgbGliL2NvbnZlcnRlci90eXBlLWNvbnZlcnRlci50cyJdfQ==
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90YW9uLXR5cGUtc3FsL3Byb2plY3RzL3Rhb24tdHlwZS1zcWwvc3JjL2xpYi9jb252ZXJ0ZXIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUMsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxpRUFBaUUiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5leHBvcnQgdHlwZSBRdWVyeUVuZ2luZSA9ICdwZycgfCAnbXlzcWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnZlcnRlck9wdGlvbnMge1xuICAgIGxpbmVCcmVhazogc3RyaW5nLFxuICAgIG5hbWVFc2NhcGU6IHN0cmluZ1xufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbi10eXBlLXNxbCBsaWIvY29udmVydGVyL3R5cGVzLnRzIl19
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export { default as BasicColumn } from './builder/column/basic-column';
|
|
2
|
-
export { default as BooleanColumn } from './builder/column/boolean-column';
|
|
3
|
-
export { default as ComparableColumn } from './builder/column/comparable-column';
|
|
4
|
-
export { default as DateColumn } from './builder/column/date-column';
|
|
5
|
-
export { default as NumberColumn } from './builder/column/number-column';
|
|
6
|
-
export { default as QueryColumn } from './builder/column/query-column';
|
|
7
|
-
export { default as StringColumn } from './builder/column/string-column';
|
|
8
|
-
export { default as ValueColumn } from './builder/column/value-column';
|
|
9
|
-
export { default as QueryColumnCondition } from './builder/condition/query-column-condition';
|
|
10
|
-
export { default as QueryCondition } from './builder/condition/query-condition';
|
|
11
|
-
export { default as QueryConditionChain } from './builder/condition/query-condition-chain';
|
|
12
|
-
export { default as QueryJoinCondition } from './builder/condition/query-join-condition';
|
|
13
|
-
export { default as JoinedTables } from './builder/join/joined-tables';
|
|
14
|
-
export { default as JoinedTablesChain } from './builder/join/joined-tables-chain';
|
|
15
|
-
export { default as QueryOrdering } from './builder/other/query-ordering';
|
|
16
|
-
export { default as SelectQuery } from './builder/query/select-query';
|
|
17
|
-
export { default as TableQuery } from './builder/query/table-query';
|
|
18
|
-
export { default as TableConditionQuery } from './builder/query/table-condition-query';
|
|
19
|
-
export { default as QuerySource } from './builder/query-source';
|
|
20
|
-
export { default as QueryTable } from './builder/query-table';
|
|
21
|
-
export { default as MySqlQuerySource } from './client/mysql';
|
|
22
|
-
({}); // @--end-of-file-for-module=taon-type-sql lib/index.ts
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90YW9uLXR5cGUtc3FsL3Byb2plY3RzL3Rhb24tdHlwZS1zcWwvc3JjL2xpYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQUUsT0FBTyxJQUFJLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxPQUFPLElBQUksYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0UsT0FBTyxFQUFFLE9BQU8sSUFBSSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxPQUFPLElBQUksVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFFLE9BQU8sSUFBSSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxJQUFJLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxPQUFPLElBQUksWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFFLE9BQU8sSUFBSSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV2RSxPQUFPLEVBQUUsT0FBTyxJQUFJLG9CQUFvQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDN0YsT0FBTyxFQUFFLE9BQU8sSUFBSSxjQUFjLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsT0FBTyxJQUFJLG1CQUFtQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDM0YsT0FBTyxFQUFFLE9BQU8sSUFBSSxrQkFBa0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRXpGLE9BQU8sRUFBRSxPQUFPLElBQUksWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLE9BQU8sSUFBSSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRWxGLE9BQU8sRUFBRSxPQUFPLElBQUksYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFMUUsT0FBTyxFQUFFLE9BQU8sSUFBSSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsT0FBTyxJQUFJLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxPQUFPLElBQUksbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUV2RixPQUFPLEVBQUUsT0FBTyxJQUFJLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxPQUFPLElBQUksVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJOUQsT0FBTyxFQUFFLE9BQU8sSUFBSSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUTNELENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyx1REFBdUQiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5cblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBCYXNpY0NvbHVtbiB9IGZyb20gJy4vYnVpbGRlci9jb2x1bW4vYmFzaWMtY29sdW1uJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQm9vbGVhbkNvbHVtbiB9IGZyb20gJy4vYnVpbGRlci9jb2x1bW4vYm9vbGVhbi1jb2x1bW4nO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDb21wYXJhYmxlQ29sdW1uIH0gZnJvbSAnLi9idWlsZGVyL2NvbHVtbi9jb21wYXJhYmxlLWNvbHVtbic7XG5leHBvcnQgeyBkZWZhdWx0IGFzIERhdGVDb2x1bW4gfSBmcm9tICcuL2J1aWxkZXIvY29sdW1uL2RhdGUtY29sdW1uJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTnVtYmVyQ29sdW1uIH0gZnJvbSAnLi9idWlsZGVyL2NvbHVtbi9udW1iZXItY29sdW1uJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUXVlcnlDb2x1bW4gfSBmcm9tICcuL2J1aWxkZXIvY29sdW1uL3F1ZXJ5LWNvbHVtbic7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFN0cmluZ0NvbHVtbiB9IGZyb20gJy4vYnVpbGRlci9jb2x1bW4vc3RyaW5nLWNvbHVtbic7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFZhbHVlQ29sdW1uIH0gZnJvbSAnLi9idWlsZGVyL2NvbHVtbi92YWx1ZS1jb2x1bW4nO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIFF1ZXJ5Q29sdW1uQ29uZGl0aW9uIH0gZnJvbSAnLi9idWlsZGVyL2NvbmRpdGlvbi9xdWVyeS1jb2x1bW4tY29uZGl0aW9uJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUXVlcnlDb25kaXRpb24gfSBmcm9tICcuL2J1aWxkZXIvY29uZGl0aW9uL3F1ZXJ5LWNvbmRpdGlvbic7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFF1ZXJ5Q29uZGl0aW9uQ2hhaW4gfSBmcm9tICcuL2J1aWxkZXIvY29uZGl0aW9uL3F1ZXJ5LWNvbmRpdGlvbi1jaGFpbic7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFF1ZXJ5Sm9pbkNvbmRpdGlvbiB9IGZyb20gJy4vYnVpbGRlci9jb25kaXRpb24vcXVlcnktam9pbi1jb25kaXRpb24nO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIEpvaW5lZFRhYmxlcyB9IGZyb20gJy4vYnVpbGRlci9qb2luL2pvaW5lZC10YWJsZXMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBKb2luZWRUYWJsZXNDaGFpbiB9IGZyb20gJy4vYnVpbGRlci9qb2luL2pvaW5lZC10YWJsZXMtY2hhaW4nO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIFF1ZXJ5T3JkZXJpbmcgfSBmcm9tICcuL2J1aWxkZXIvb3RoZXIvcXVlcnktb3JkZXJpbmcnO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIFNlbGVjdFF1ZXJ5IH0gZnJvbSAnLi9idWlsZGVyL3F1ZXJ5L3NlbGVjdC1xdWVyeSc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRhYmxlUXVlcnkgfSBmcm9tICcuL2J1aWxkZXIvcXVlcnkvdGFibGUtcXVlcnknO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUYWJsZUNvbmRpdGlvblF1ZXJ5IH0gZnJvbSAnLi9idWlsZGVyL3F1ZXJ5L3RhYmxlLWNvbmRpdGlvbi1xdWVyeSc7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgUXVlcnlTb3VyY2UgfSBmcm9tICcuL2J1aWxkZXIvcXVlcnktc291cmNlJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUXVlcnlUYWJsZSB9IGZyb20gJy4vYnVpbGRlci9xdWVyeS10YWJsZSc7XG5cblxuXG5leHBvcnQgeyBkZWZhdWx0IGFzIE15U3FsUXVlcnlTb3VyY2UgfSBmcm9tICcuL2NsaWVudC9teXNxbCc7XG5cblxuZXhwb3J0IHsgUXVlcnlQcm9jZXNzb3JPcHRpb25zIH0gZnJvbSAnLi9jbGllbnQvcXVlcnktcHJvY2Vzc29yJztcblxuXG5leHBvcnQgdHlwZSBQcm9wc0VudGl0eVNRTDxJRW50aXR5VHlwZT4gPSB7IFtwcm9wIGluIGtleW9mIFJlcXVpcmVkPElFbnRpdHlUeXBlPl06IGFueTsgfVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbi10eXBlLXNxbCBsaWIvaW5kZXgudHMiXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './lib';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L3Rhb24tdHlwZS1zcWwvcHJvamVjdHMvdGFvbi10eXBlLXNxbC9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliJztcbiJdfQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFvbi10eXBlLXNxbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L3Rhb24tdHlwZS1zcWwvcHJvamVjdHMvdGFvbi10eXBlLXNxbC9zcmMvdGFvbi10eXBlLXNxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import QueryColumn from "./query-column";
|
|
2
|
-
import NumberColumn from "./number-column";
|
|
3
|
-
export default class BasicColumn extends QueryColumn {
|
|
4
|
-
constructor(table, name, modifiers = []) {
|
|
5
|
-
super(table, name, modifiers);
|
|
6
|
-
}
|
|
7
|
-
count() {
|
|
8
|
-
return new NumberColumn(this._table, this._name, this._modifiers.concat({ name: 'count' }));
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
;
|
|
12
|
-
({}); // @--end-of-file-for-module=taon-type-sql lib/builder/column/basic-column.ts
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMtY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24tdHlwZS1zcWwvcHJvamVjdHMvdGFvbi10eXBlLXNxbC9zcmMvbGliL2J1aWxkZXIvY29sdW1uL2Jhc2ljLWNvbHVtbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLFdBQVcsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLFlBQVksTUFBTSxpQkFBaUIsQ0FBQztBQUszQyxNQUFNLENBQUMsT0FBTyxPQUFPLFdBQW1ELFNBQVEsV0FBcUI7SUFFakcsWUFBWSxLQUFZLEVBQUUsSUFBZ0IsRUFBRSxZQUE4QixFQUFFO1FBQ3hFLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxLQUFLO1FBQ0QsT0FBTyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7Q0FDSjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsNkVBQTZFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCBRdWVyeVRhYmxlIGZyb20gXCIuLi9xdWVyeS10YWJsZVwiO1xuaW1wb3J0IFF1ZXJ5Q29sdW1uIGZyb20gXCIuL3F1ZXJ5LWNvbHVtblwiO1xuaW1wb3J0IE51bWJlckNvbHVtbiBmcm9tIFwiLi9udW1iZXItY29sdW1uXCI7XG5pbXBvcnQge0NvbHVtbk1vZGlmaWVyLCBDb2x1bW5OYW1lfSBmcm9tIFwiLi4vaGVscGVycy9pbnRlcm5hbC10eXBlc1wiO1xuXG5cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQmFzaWNDb2x1bW48VGFibGUgZXh0ZW5kcyBRdWVyeVRhYmxlPGFueSwgYW55PiwgVD4gZXh0ZW5kcyBRdWVyeUNvbHVtbjxUYWJsZSwgVD4ge1xuXG4gICAgY29uc3RydWN0b3IodGFibGU6IFRhYmxlLCBuYW1lOiBDb2x1bW5OYW1lLCBtb2RpZmllcnM6IENvbHVtbk1vZGlmaWVyW10gPSBbXSkge1xuICAgICAgICBzdXBlcih0YWJsZSwgbmFtZSwgbW9kaWZpZXJzKTtcbiAgICB9XG5cbiAgICBjb3VudCgpOiBOdW1iZXJDb2x1bW48VGFibGU+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBOdW1iZXJDb2x1bW4odGhpcy5fdGFibGUsIHRoaXMuX25hbWUsIHRoaXMuX21vZGlmaWVycy5jb25jYXQoeyBuYW1lOiAnY291bnQnIH0pKTtcbiAgICB9XG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10YW9uLXR5cGUtc3FsIGxpYi9idWlsZGVyL2NvbHVtbi9iYXNpYy1jb2x1bW4udHMiXX0=
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import NumberColumn from "./number-column";
|
|
2
|
-
import ValueColumn from "./value-column";
|
|
3
|
-
export default class BooleanColumn extends ValueColumn {
|
|
4
|
-
constructor(table, name, modifiers = []) {
|
|
5
|
-
super(table, name, modifiers);
|
|
6
|
-
this._type = 'boolean';
|
|
7
|
-
}
|
|
8
|
-
count() {
|
|
9
|
-
return new NumberColumn(this._table, this._name, this._modifiers.concat({ name: 'count' }));
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
;
|
|
13
|
-
({}); // @--end-of-file-for-module=taon-type-sql lib/builder/column/boolean-column.ts
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi1jb2x1bW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi10eXBlLXNxbC9wcm9qZWN0cy90YW9uLXR5cGUtc3FsL3NyYy9saWIvYnVpbGRlci9jb2x1bW4vYm9vbGVhbi1jb2x1bW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxZQUFZLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxXQUFXLE1BQU0sZ0JBQWdCLENBQUM7QUFJekMsTUFBTSxDQUFDLE9BQU8sT0FBTyxhQUFrRCxTQUFRLFdBQTJCO0lBSXRHLFlBQVksS0FBWSxFQUFFLElBQWdCLEVBQUUsWUFBOEIsRUFBRTtRQUN4RSxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUh4QixVQUFLLEdBQUcsU0FBUyxDQUFDO0lBSTVCLENBQUM7SUFFRCxLQUFLO1FBQ0QsT0FBTyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7Q0FFSjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsK0VBQStFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCBRdWVyeVRhYmxlIGZyb20gXCIuLi9xdWVyeS10YWJsZVwiO1xuaW1wb3J0IE51bWJlckNvbHVtbiBmcm9tIFwiLi9udW1iZXItY29sdW1uXCI7XG5pbXBvcnQgVmFsdWVDb2x1bW4gZnJvbSBcIi4vdmFsdWUtY29sdW1uXCI7XG5pbXBvcnQge0NvbHVtbk1vZGlmaWVyLCBDb2x1bW5OYW1lfSBmcm9tIFwiLi4vaGVscGVycy9pbnRlcm5hbC10eXBlc1wiO1xuXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJvb2xlYW5Db2x1bW48VGFibGUgZXh0ZW5kcyBRdWVyeVRhYmxlPGFueSwgYW55Pj4gZXh0ZW5kcyBWYWx1ZUNvbHVtbjxUYWJsZSwgYm9vbGVhbj4ge1xuXG4gICAgcHJvdGVjdGVkIF90eXBlID0gJ2Jvb2xlYW4nO1xuXG4gICAgY29uc3RydWN0b3IodGFibGU6IFRhYmxlLCBuYW1lOiBDb2x1bW5OYW1lLCBtb2RpZmllcnM6IENvbHVtbk1vZGlmaWVyW10gPSBbXSkge1xuICAgICAgICBzdXBlcih0YWJsZSwgbmFtZSwgbW9kaWZpZXJzKTtcbiAgICB9XG5cbiAgICBjb3VudCgpOiBOdW1iZXJDb2x1bW48VGFibGU+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBOdW1iZXJDb2x1bW4odGhpcy5fdGFibGUsIHRoaXMuX25hbWUsIHRoaXMuX21vZGlmaWVycy5jb25jYXQoeyBuYW1lOiAnY291bnQnIH0pKTtcbiAgICB9XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24tdHlwZS1zcWwgbGliL2J1aWxkZXIvY29sdW1uL2Jvb2xlYW4tY29sdW1uLnRzIl19
|