kysely 0.9.1 → 0.9.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/dialect/mysql/mysql-dialect.d.ts +11 -0
- package/dist/cjs/dialect/mysql/mysql-dialect.js +7 -0
- package/dist/cjs/dialect/mysql/mysql-driver.js +2 -2
- package/dist/cjs/dialect/postgres/postgres-dialect.d.ts +13 -1
- package/dist/cjs/dialect/postgres/postgres-dialect.js +10 -0
- package/dist/cjs/dialect/postgres/postgres-driver.js +2 -2
- package/dist/cjs/dialect/postgres/postgres-query-compiler.js +1 -1
- package/dist/cjs/driver/runtime-driver.d.ts +3 -2
- package/dist/cjs/driver/runtime-driver.js +57 -4
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/kysely.d.ts +31 -9
- package/dist/cjs/kysely.js +25 -9
- package/dist/cjs/migration/migration.d.ts +32 -0
- package/dist/cjs/operation-node/join-node.d.ts +2 -1
- package/dist/cjs/operation-node/join-node.js +8 -6
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +2 -0
- package/dist/cjs/operation-node/operation-node-transformer.js +9 -0
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +61 -59
- package/dist/cjs/operation-node/operation-node-visitor.js +1 -316
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/query-node.d.ts +4 -3
- package/dist/cjs/operation-node/query-node.js +10 -2
- package/dist/cjs/operation-node/select-query-node.d.ts +5 -1
- package/dist/cjs/operation-node/select-query-node.js +18 -2
- package/dist/cjs/operation-node/union-node.d.ts +16 -0
- package/dist/cjs/operation-node/union-node.js +19 -0
- package/dist/cjs/parser/group-by-parser.d.ts +4 -0
- package/dist/cjs/parser/group-by-parser.js +9 -0
- package/dist/cjs/parser/insert-values-parser.d.ts +1 -1
- package/dist/cjs/parser/join-parser.d.ts +4 -4
- package/dist/cjs/parser/order-by-parser.d.ts +2 -4
- package/dist/cjs/parser/order-by-parser.js +6 -3
- package/dist/cjs/parser/reference-parser.d.ts +1 -1
- package/dist/cjs/parser/reference-parser.js +1 -1
- package/dist/cjs/parser/union-parser.d.ts +5 -0
- package/dist/cjs/parser/union-parser.js +13 -0
- package/dist/cjs/parser/value-parser.d.ts +1 -1
- package/dist/cjs/plugin/camel-case/camel-case-plugin.js +5 -116
- package/dist/cjs/plugin/camel-case/camel-case-transformer.d.ts +8 -0
- package/dist/cjs/plugin/camel-case/camel-case-transformer.js +19 -0
- package/dist/cjs/plugin/camel-case/camel-case.d.ts +15 -0
- package/dist/cjs/plugin/camel-case/camel-case.js +109 -0
- package/dist/cjs/plugin/kysely-plugin.d.ts +1 -1
- package/dist/cjs/query-builder/join-builder.js +8 -8
- package/dist/cjs/query-builder/query-builder.d.ts +65 -1
- package/dist/cjs/query-builder/query-builder.js +103 -22
- package/dist/cjs/query-compiler/compiled-query.d.ts +1 -1
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +7 -2
- package/dist/cjs/query-compiler/default-query-compiler.js +20 -3
- package/dist/cjs/query-executor/default-query-executor.d.ts +1 -0
- package/dist/cjs/query-executor/default-query-executor.js +6 -0
- package/dist/cjs/query-executor/noop-query-executor.d.ts +1 -0
- package/dist/cjs/query-executor/noop-query-executor.js +3 -0
- package/dist/cjs/query-executor/query-executor.d.ts +9 -4
- package/dist/cjs/util/log.d.ts +19 -0
- package/dist/cjs/util/log.js +37 -0
- package/dist/cjs/util/object-utils.d.ts +11 -11
- package/dist/cjs/util/object-utils.js +1 -1
- package/dist/cjs/util/random-string.js +6 -3
- package/dist/cjs/util/type-utils.d.ts +4 -4
- package/dist/esm/dialect/mysql/mysql-dialect.d.ts +11 -0
- package/dist/esm/dialect/mysql/mysql-dialect.js +7 -0
- package/dist/esm/dialect/mysql/mysql-driver.js +3 -3
- package/dist/esm/dialect/postgres/postgres-dialect.d.ts +13 -1
- package/dist/esm/dialect/postgres/postgres-dialect.js +10 -0
- package/dist/esm/dialect/postgres/postgres-driver.js +2 -2
- package/dist/esm/dialect/postgres/postgres-query-compiler.js +1 -1
- package/dist/esm/driver/runtime-driver.d.ts +3 -2
- package/dist/esm/driver/runtime-driver.js +57 -4
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/kysely.d.ts +31 -9
- package/dist/esm/kysely.js +25 -9
- package/dist/esm/migration/migration.d.ts +32 -0
- package/dist/esm/operation-node/join-node.d.ts +2 -1
- package/dist/esm/operation-node/join-node.js +8 -6
- package/dist/esm/operation-node/operation-node-transformer.d.ts +2 -0
- package/dist/esm/operation-node/operation-node-transformer.js +9 -0
- package/dist/esm/operation-node/operation-node-visitor.d.ts +61 -59
- package/dist/esm/operation-node/operation-node-visitor.js +1 -316
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/query-node.d.ts +4 -3
- package/dist/esm/operation-node/query-node.js +10 -2
- package/dist/esm/operation-node/select-query-node.d.ts +5 -1
- package/dist/esm/operation-node/select-query-node.js +18 -2
- package/dist/esm/operation-node/union-node.d.ts +16 -0
- package/dist/esm/operation-node/union-node.js +16 -0
- package/dist/esm/parser/group-by-parser.d.ts +4 -0
- package/dist/esm/parser/group-by-parser.js +5 -0
- package/dist/esm/parser/insert-values-parser.d.ts +1 -1
- package/dist/esm/parser/join-parser.d.ts +4 -4
- package/dist/esm/parser/order-by-parser.d.ts +2 -4
- package/dist/esm/parser/order-by-parser.js +6 -2
- package/dist/esm/parser/reference-parser.d.ts +1 -1
- package/dist/esm/parser/reference-parser.js +2 -2
- package/dist/esm/parser/union-parser.d.ts +5 -0
- package/dist/esm/parser/union-parser.js +9 -0
- package/dist/esm/parser/value-parser.d.ts +1 -1
- package/dist/esm/plugin/camel-case/camel-case-plugin.js +4 -115
- package/dist/esm/plugin/camel-case/camel-case-transformer.d.ts +8 -0
- package/dist/esm/plugin/camel-case/camel-case-transformer.js +15 -0
- package/dist/esm/plugin/camel-case/camel-case.d.ts +15 -0
- package/dist/esm/plugin/camel-case/camel-case.js +104 -0
- package/dist/esm/plugin/kysely-plugin.d.ts +1 -1
- package/dist/esm/query-builder/join-builder.js +8 -8
- package/dist/esm/query-builder/query-builder.d.ts +65 -1
- package/dist/esm/query-builder/query-builder.js +104 -23
- package/dist/esm/query-compiler/compiled-query.d.ts +1 -1
- package/dist/esm/query-compiler/default-query-compiler.d.ts +7 -2
- package/dist/esm/query-compiler/default-query-compiler.js +20 -3
- package/dist/esm/query-executor/default-query-executor.d.ts +1 -0
- package/dist/esm/query-executor/default-query-executor.js +6 -0
- package/dist/esm/query-executor/noop-query-executor.d.ts +1 -0
- package/dist/esm/query-executor/noop-query-executor.js +3 -0
- package/dist/esm/query-executor/query-executor.d.ts +9 -4
- package/dist/esm/util/log.d.ts +19 -0
- package/dist/esm/util/log.js +33 -0
- package/dist/esm/util/object-utils.d.ts +11 -11
- package/dist/esm/util/object-utils.js +1 -1
- package/dist/esm/util/random-string.js +6 -3
- package/dist/esm/util/type-utils.d.ts +4 -4
- package/package.json +1 -1
|
@@ -62,327 +62,12 @@ class OperationNodeVisitor {
|
|
|
62
62
|
AddConstraintNode: this.visitAddConstraint.bind(this),
|
|
63
63
|
DropConstraintNode: this.visitDropConstraint.bind(this),
|
|
64
64
|
ForeignKeyConstraintNode: this.visitForeignKeyConstraint.bind(this),
|
|
65
|
+
UnionNode: this.visitUnion.bind(this),
|
|
65
66
|
};
|
|
66
67
|
visitNode = (node) => {
|
|
67
68
|
this.nodeStack.push(node);
|
|
68
69
|
this.#visitors[node.kind](node);
|
|
69
70
|
this.nodeStack.pop();
|
|
70
71
|
};
|
|
71
|
-
visitSelectQuery(node) {
|
|
72
|
-
if (node.with) {
|
|
73
|
-
this.visitNode(node.with);
|
|
74
|
-
}
|
|
75
|
-
if (node.distinctOnSelections) {
|
|
76
|
-
node.distinctOnSelections.forEach(this.visitNode);
|
|
77
|
-
}
|
|
78
|
-
if (node.selections) {
|
|
79
|
-
node.selections.forEach(this.visitNode);
|
|
80
|
-
}
|
|
81
|
-
this.visitNode(node.from);
|
|
82
|
-
if (node.joins) {
|
|
83
|
-
node.joins.forEach(this.visitNode);
|
|
84
|
-
}
|
|
85
|
-
if (node.where) {
|
|
86
|
-
this.visitNode(node.where);
|
|
87
|
-
}
|
|
88
|
-
if (node.groupBy) {
|
|
89
|
-
this.visitNode(node.groupBy);
|
|
90
|
-
}
|
|
91
|
-
if (node.having) {
|
|
92
|
-
this.visitNode(node.having);
|
|
93
|
-
}
|
|
94
|
-
if (node.orderBy) {
|
|
95
|
-
this.visitNode(node.orderBy);
|
|
96
|
-
}
|
|
97
|
-
if (node.limit) {
|
|
98
|
-
this.visitNode(node.limit);
|
|
99
|
-
}
|
|
100
|
-
if (node.offset) {
|
|
101
|
-
this.visitNode(node.offset);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
visitSelection(node) {
|
|
105
|
-
this.visitNode(node.selection);
|
|
106
|
-
}
|
|
107
|
-
visitColumn(node) {
|
|
108
|
-
this.visitNode(node.column);
|
|
109
|
-
}
|
|
110
|
-
visitAlias(node) {
|
|
111
|
-
this.visitNode(node.node);
|
|
112
|
-
}
|
|
113
|
-
visitTable(node) {
|
|
114
|
-
if (node.schema) {
|
|
115
|
-
this.visitNode(node.schema);
|
|
116
|
-
}
|
|
117
|
-
this.visitNode(node.table);
|
|
118
|
-
}
|
|
119
|
-
visitFrom(node) {
|
|
120
|
-
node.froms.forEach(this.visitNode);
|
|
121
|
-
}
|
|
122
|
-
visitReference(node) {
|
|
123
|
-
this.visitNode(node.column);
|
|
124
|
-
this.visitNode(node.table);
|
|
125
|
-
}
|
|
126
|
-
visitFilter(node) {
|
|
127
|
-
if (node.left) {
|
|
128
|
-
this.visitNode(node.left);
|
|
129
|
-
}
|
|
130
|
-
this.visitNode(node.op);
|
|
131
|
-
this.visitNode(node.right);
|
|
132
|
-
}
|
|
133
|
-
visitAnd(node) {
|
|
134
|
-
this.visitNode(node.left);
|
|
135
|
-
this.visitNode(node.right);
|
|
136
|
-
}
|
|
137
|
-
visitOr(node) {
|
|
138
|
-
this.visitNode(node.left);
|
|
139
|
-
this.visitNode(node.right);
|
|
140
|
-
}
|
|
141
|
-
visitValueList(node) {
|
|
142
|
-
node.values.forEach(this.visitNode);
|
|
143
|
-
}
|
|
144
|
-
visitParens(node) {
|
|
145
|
-
this.visitNode(node.node);
|
|
146
|
-
}
|
|
147
|
-
visitJoin(node) {
|
|
148
|
-
this.visitNode(node.table);
|
|
149
|
-
if (node.on) {
|
|
150
|
-
this.visitNode(node.on);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
visitRaw(node) {
|
|
154
|
-
node.params.forEach(this.visitNode);
|
|
155
|
-
}
|
|
156
|
-
visitWhere(node) {
|
|
157
|
-
this.visitNode(node.where);
|
|
158
|
-
}
|
|
159
|
-
visitInsertQuery(node) {
|
|
160
|
-
if (node.with) {
|
|
161
|
-
this.visitNode(node.with);
|
|
162
|
-
}
|
|
163
|
-
this.visitNode(node.into);
|
|
164
|
-
if (node.columns) {
|
|
165
|
-
node.columns.forEach(this.visitNode);
|
|
166
|
-
}
|
|
167
|
-
if (node.values) {
|
|
168
|
-
node.values.forEach(this.visitNode);
|
|
169
|
-
}
|
|
170
|
-
if (node.returning) {
|
|
171
|
-
this.visitNode(node.returning);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
visitDeleteQuery(node) {
|
|
175
|
-
if (node.with) {
|
|
176
|
-
this.visitNode(node.with);
|
|
177
|
-
}
|
|
178
|
-
this.visitNode(node.from);
|
|
179
|
-
if (node.joins) {
|
|
180
|
-
node.joins.forEach(this.visitNode);
|
|
181
|
-
}
|
|
182
|
-
if (node.where) {
|
|
183
|
-
this.visitNode(node.where);
|
|
184
|
-
}
|
|
185
|
-
if (node.returning) {
|
|
186
|
-
this.visitNode(node.returning);
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
visitReturning(node) {
|
|
190
|
-
node.selections.forEach(this.visitNode);
|
|
191
|
-
}
|
|
192
|
-
visitCreateTable(node) {
|
|
193
|
-
this.visitNode(node.table);
|
|
194
|
-
node.columns.forEach(this.visitNode);
|
|
195
|
-
if (node.constraints) {
|
|
196
|
-
node.constraints.forEach(this.visitNode);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
visitAddColumn(node) {
|
|
200
|
-
this.visitNode(node.column);
|
|
201
|
-
}
|
|
202
|
-
visitColumnDefinition(node) {
|
|
203
|
-
this.visitNode(node.column);
|
|
204
|
-
this.visitNode(node.dataType);
|
|
205
|
-
if (node.defaultTo) {
|
|
206
|
-
this.visitNode(node.defaultTo);
|
|
207
|
-
}
|
|
208
|
-
if (node.references) {
|
|
209
|
-
this.visitNode(node.references);
|
|
210
|
-
}
|
|
211
|
-
if (node.check) {
|
|
212
|
-
this.visitNode(node.check);
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
visitDropTable(node) {
|
|
216
|
-
this.visitNode(node.table);
|
|
217
|
-
}
|
|
218
|
-
visitOrderBy(node) {
|
|
219
|
-
node.items.forEach(this.visitNode);
|
|
220
|
-
}
|
|
221
|
-
visitOrderByItem(node) {
|
|
222
|
-
this.visitNode(node.orderBy);
|
|
223
|
-
}
|
|
224
|
-
visitGroupBy(node) {
|
|
225
|
-
node.items.forEach(this.visitNode);
|
|
226
|
-
}
|
|
227
|
-
visitGroupByItem(node) {
|
|
228
|
-
this.visitNode(node.groupBy);
|
|
229
|
-
}
|
|
230
|
-
visitUpdateQuery(node) {
|
|
231
|
-
if (node.with) {
|
|
232
|
-
this.visitNode(node.with);
|
|
233
|
-
}
|
|
234
|
-
this.visitNode(node.table);
|
|
235
|
-
if (node.updates) {
|
|
236
|
-
node.updates.forEach(this.visitNode);
|
|
237
|
-
}
|
|
238
|
-
if (node.joins) {
|
|
239
|
-
node.joins.forEach(this.visitNode);
|
|
240
|
-
}
|
|
241
|
-
if (node.where) {
|
|
242
|
-
this.visitNode(node.where);
|
|
243
|
-
}
|
|
244
|
-
if (node.returning) {
|
|
245
|
-
this.visitNode(node.returning);
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
visitColumnUpdate(node) {
|
|
249
|
-
this.visitNode(node.column);
|
|
250
|
-
this.visitNode(node.value);
|
|
251
|
-
}
|
|
252
|
-
visitLimit(node) {
|
|
253
|
-
this.visitNode(node.limit);
|
|
254
|
-
}
|
|
255
|
-
visitOffset(node) {
|
|
256
|
-
this.visitNode(node.offset);
|
|
257
|
-
}
|
|
258
|
-
visitOnConflict(node) {
|
|
259
|
-
if (node.columns) {
|
|
260
|
-
node.columns.forEach(this.visitNode);
|
|
261
|
-
}
|
|
262
|
-
if (node.constraint) {
|
|
263
|
-
this.visitNode(node.constraint);
|
|
264
|
-
}
|
|
265
|
-
if (node.updates) {
|
|
266
|
-
node.updates.forEach(this.visitNode);
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
visitOnDuplicateKey(node) {
|
|
270
|
-
node.updates.forEach(this.visitNode);
|
|
271
|
-
}
|
|
272
|
-
visitCreateIndex(node) {
|
|
273
|
-
this.visitNode(node.name);
|
|
274
|
-
if (node.table) {
|
|
275
|
-
this.visitNode(node.table);
|
|
276
|
-
}
|
|
277
|
-
if (node.using) {
|
|
278
|
-
this.visitNode(node.using);
|
|
279
|
-
}
|
|
280
|
-
if (node.expression) {
|
|
281
|
-
this.visitNode(node.expression);
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
visitList(node) {
|
|
285
|
-
node.items.forEach(this.visitNode);
|
|
286
|
-
}
|
|
287
|
-
visitDropIndex(node) {
|
|
288
|
-
this.visitNode(node.name);
|
|
289
|
-
if (node.table) {
|
|
290
|
-
this.visitNode(node.table);
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
visitPrimaryKeyConstraint(node) {
|
|
294
|
-
if (node.name) {
|
|
295
|
-
this.visitNode(node.name);
|
|
296
|
-
}
|
|
297
|
-
node.columns.forEach(this.visitNode);
|
|
298
|
-
}
|
|
299
|
-
visitUniqueConstraint(node) {
|
|
300
|
-
if (node.name) {
|
|
301
|
-
this.visitNode(node.name);
|
|
302
|
-
}
|
|
303
|
-
node.columns.forEach(this.visitNode);
|
|
304
|
-
}
|
|
305
|
-
visitReferences(node) {
|
|
306
|
-
node.columns.forEach(this.visitNode);
|
|
307
|
-
this.visitNode(node.table);
|
|
308
|
-
}
|
|
309
|
-
visitCheckConstraint(node) {
|
|
310
|
-
if (node.name) {
|
|
311
|
-
this.visitNode(node.name);
|
|
312
|
-
}
|
|
313
|
-
this.visitNode(node.expression);
|
|
314
|
-
}
|
|
315
|
-
visitWith(node) {
|
|
316
|
-
node.expressions.forEach(this.visitNode);
|
|
317
|
-
}
|
|
318
|
-
visitCommonTableExpression(node) {
|
|
319
|
-
this.visitNode(node.name);
|
|
320
|
-
this.visitNode(node.expression);
|
|
321
|
-
}
|
|
322
|
-
visitHaving(node) {
|
|
323
|
-
this.visitNode(node.having);
|
|
324
|
-
}
|
|
325
|
-
visitCreateSchema(node) {
|
|
326
|
-
this.visitNode(node.schema);
|
|
327
|
-
}
|
|
328
|
-
visitDropSchema(node) {
|
|
329
|
-
this.visitNode(node.schema);
|
|
330
|
-
}
|
|
331
|
-
visitAlterTable(node) {
|
|
332
|
-
this.visitNode(node.table);
|
|
333
|
-
if (node.renameTo) {
|
|
334
|
-
this.visitNode(node.renameTo);
|
|
335
|
-
}
|
|
336
|
-
if (node.renameColumn) {
|
|
337
|
-
this.visitNode(node.renameColumn);
|
|
338
|
-
}
|
|
339
|
-
if (node.setSchema) {
|
|
340
|
-
this.visitNode(node.setSchema);
|
|
341
|
-
}
|
|
342
|
-
if (node.addColumn) {
|
|
343
|
-
this.visitNode(node.addColumn);
|
|
344
|
-
}
|
|
345
|
-
if (node.dropColumn) {
|
|
346
|
-
this.visitNode(node.dropColumn);
|
|
347
|
-
}
|
|
348
|
-
if (node.alterColumn) {
|
|
349
|
-
this.visitNode(node.alterColumn);
|
|
350
|
-
}
|
|
351
|
-
if (node.modifyColumn) {
|
|
352
|
-
this.visitNode(node.modifyColumn);
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
visitDropColumn(node) {
|
|
356
|
-
this.visitNode(node.column);
|
|
357
|
-
}
|
|
358
|
-
visitRenameColumn(node) {
|
|
359
|
-
this.visitNode(node.column);
|
|
360
|
-
this.visitNode(node.renameTo);
|
|
361
|
-
}
|
|
362
|
-
visitAlterColumn(node) {
|
|
363
|
-
this.visitNode(node.column);
|
|
364
|
-
}
|
|
365
|
-
visitModifyColumn(node) {
|
|
366
|
-
this.visitNode(node.column);
|
|
367
|
-
}
|
|
368
|
-
visitAddConstraint(node) {
|
|
369
|
-
this.visitNode(node.constraint);
|
|
370
|
-
}
|
|
371
|
-
visitDropConstraint(node) {
|
|
372
|
-
this.visitNode(node.constraintName);
|
|
373
|
-
}
|
|
374
|
-
visitForeignKeyConstraint(node) {
|
|
375
|
-
if (node.name) {
|
|
376
|
-
this.visitNode(node.name);
|
|
377
|
-
}
|
|
378
|
-
node.columns.forEach(this.visitNode);
|
|
379
|
-
this.visitNode(node.references);
|
|
380
|
-
}
|
|
381
|
-
visitDataType(node) { }
|
|
382
|
-
visitSelectAll(_) { }
|
|
383
|
-
visitIdentifier(_) { }
|
|
384
|
-
visitValue(_) { }
|
|
385
|
-
visitPrimitiveValueList(_) { }
|
|
386
|
-
visitOperator(node) { }
|
|
387
72
|
}
|
|
388
73
|
exports.OperationNodeVisitor = OperationNodeVisitor;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare type OperationNodeKind = 'IdentifierNode' | 'RawNode' | 'SelectQueryNode' | 'SelectionNode' | 'ReferenceNode' | 'ColumnNode' | 'TableNode' | 'AliasNode' | 'FromNode' | 'SelectAllNode' | 'FilterNode' | 'AndNode' | 'OrNode' | 'ParensNode' | 'ValueNode' | 'ValueListNode' | 'PrimitiveValueListNode' | 'JoinNode' | 'OperatorNode' | 'WhereNode' | 'InsertQueryNode' | 'DeleteQueryNode' | 'ReturningNode' | 'CreateTableNode' | 'ColumnDefinitionNode' | 'AddColumnNode' | 'DropTableNode' | 'DataTypeNode' | 'OrderByNode' | 'OrderByItemNode' | 'GroupByNode' | 'GroupByItemNode' | 'UpdateQueryNode' | 'ColumnUpdateNode' | 'LimitNode' | 'OffsetNode' | 'OnConflictNode' | 'OnDuplicateKeyNode' | 'CreateIndexNode' | 'DropIndexNode' | 'ListNode' | 'ReferencesNode' | 'PrimaryKeyConstraintNode' | 'UniqueConstraintNode' | 'CheckConstraintNode' | 'ForeignKeyConstraintNode' | 'WithNode' | 'CommonTableExpressionNode' | 'HavingNode' | 'CreateSchemaNode' | 'DropSchemaNode' | 'AlterTableNode' | 'ModifyColumnNode' | 'DropColumnNode' | 'RenameColumnNode' | 'AlterColumnNode' | 'AddConstraintNode' | 'DropConstraintNode';
|
|
1
|
+
export declare type OperationNodeKind = 'IdentifierNode' | 'RawNode' | 'SelectQueryNode' | 'SelectionNode' | 'ReferenceNode' | 'ColumnNode' | 'TableNode' | 'AliasNode' | 'FromNode' | 'SelectAllNode' | 'FilterNode' | 'AndNode' | 'OrNode' | 'ParensNode' | 'ValueNode' | 'ValueListNode' | 'PrimitiveValueListNode' | 'JoinNode' | 'OperatorNode' | 'WhereNode' | 'InsertQueryNode' | 'DeleteQueryNode' | 'ReturningNode' | 'CreateTableNode' | 'ColumnDefinitionNode' | 'AddColumnNode' | 'DropTableNode' | 'DataTypeNode' | 'OrderByNode' | 'OrderByItemNode' | 'GroupByNode' | 'GroupByItemNode' | 'UpdateQueryNode' | 'ColumnUpdateNode' | 'LimitNode' | 'OffsetNode' | 'OnConflictNode' | 'OnDuplicateKeyNode' | 'CreateIndexNode' | 'DropIndexNode' | 'ListNode' | 'ReferencesNode' | 'PrimaryKeyConstraintNode' | 'UniqueConstraintNode' | 'CheckConstraintNode' | 'ForeignKeyConstraintNode' | 'WithNode' | 'CommonTableExpressionNode' | 'HavingNode' | 'CreateSchemaNode' | 'DropSchemaNode' | 'AlterTableNode' | 'ModifyColumnNode' | 'DropColumnNode' | 'RenameColumnNode' | 'AlterColumnNode' | 'AddConstraintNode' | 'DropConstraintNode' | 'UnionNode';
|
|
2
2
|
export interface OperationNode {
|
|
3
3
|
readonly kind: OperationNodeKind;
|
|
4
4
|
}
|
|
@@ -16,7 +16,8 @@ export declare const QueryNode: Readonly<{
|
|
|
16
16
|
is(node: OperationNode): node is QueryNode;
|
|
17
17
|
isMutating(node: OperationNode): node is MutatingQueryNode;
|
|
18
18
|
isFilterable(node: OperationNode): node is FilterableQueryNode;
|
|
19
|
-
cloneWithWhere<T extends FilterableQueryNode>(node: T,
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
cloneWithWhere<T extends FilterableQueryNode>(node: T, filter: WhereChildNode): T;
|
|
20
|
+
cloneWithOrWhere<T_1 extends FilterableQueryNode>(node: T_1, filter: WhereChildNode): T_1;
|
|
21
|
+
cloneWithJoin<T_2 extends FilterableQueryNode>(node: T_2, join: JoinNode): T_2;
|
|
22
|
+
cloneWithReturning<T_3 extends MutatingQueryNode>(node: T_3, selections: ReadonlyArray<SelectionNode>): T_3;
|
|
22
23
|
}>;
|
|
@@ -28,11 +28,19 @@ exports.QueryNode = (0, object_utils_js_1.freeze)({
|
|
|
28
28
|
delete_query_node_js_1.DeleteQueryNode.is(node) ||
|
|
29
29
|
update_query_node_js_1.UpdateQueryNode.is(node));
|
|
30
30
|
},
|
|
31
|
-
cloneWithWhere(node,
|
|
31
|
+
cloneWithWhere(node, filter) {
|
|
32
32
|
return (0, object_utils_js_1.freeze)({
|
|
33
33
|
...node,
|
|
34
34
|
where: node.where
|
|
35
|
-
? where_node_js_1.WhereNode.cloneWithFilter(node.where,
|
|
35
|
+
? where_node_js_1.WhereNode.cloneWithFilter(node.where, 'And', filter)
|
|
36
|
+
: where_node_js_1.WhereNode.create(filter),
|
|
37
|
+
});
|
|
38
|
+
},
|
|
39
|
+
cloneWithOrWhere(node, filter) {
|
|
40
|
+
return (0, object_utils_js_1.freeze)({
|
|
41
|
+
...node,
|
|
42
|
+
where: node.where
|
|
43
|
+
? where_node_js_1.WhereNode.cloneWithFilter(node.where, 'Or', filter)
|
|
36
44
|
: where_node_js_1.WhereNode.create(filter),
|
|
37
45
|
});
|
|
38
46
|
},
|
|
@@ -12,6 +12,7 @@ import { OrderByNode } from './order-by-node.js';
|
|
|
12
12
|
import { SelectionNode } from './selection-node.js';
|
|
13
13
|
import { WhereNode } from './where-node.js';
|
|
14
14
|
import { WithNode } from './with-node.js';
|
|
15
|
+
import { UnionNode } from './union-node.js';
|
|
15
16
|
export declare type SelectModifier = 'ForUpdate' | 'ForNoKeyUpdate' | 'ForShare' | 'ForKeyShare' | 'NoWait' | 'SkipLocked';
|
|
16
17
|
export interface SelectQueryNode extends OperationNode {
|
|
17
18
|
readonly kind: 'SelectQueryNode';
|
|
@@ -28,6 +29,7 @@ export interface SelectQueryNode extends OperationNode {
|
|
|
28
29
|
readonly offset?: OffsetNode;
|
|
29
30
|
readonly with?: WithNode;
|
|
30
31
|
readonly having?: HavingNode;
|
|
32
|
+
readonly union?: ReadonlyArray<UnionNode>;
|
|
31
33
|
}
|
|
32
34
|
/**
|
|
33
35
|
* @internal
|
|
@@ -42,6 +44,8 @@ export declare const SelectQueryNode: Readonly<{
|
|
|
42
44
|
cloneWithGroupByItems(selectNode: SelectQueryNode, items: ReadonlyArray<GroupByItemNode>): SelectQueryNode;
|
|
43
45
|
cloneWithLimit(selectNode: SelectQueryNode, limit: LimitNode): SelectQueryNode;
|
|
44
46
|
cloneWithOffset(selectNode: SelectQueryNode, offset: OffsetNode): SelectQueryNode;
|
|
45
|
-
cloneWithHaving(selectNode: SelectQueryNode,
|
|
47
|
+
cloneWithHaving(selectNode: SelectQueryNode, filter: HavingNodeChild): SelectQueryNode;
|
|
48
|
+
cloneWithOrHaving(selectNode: SelectQueryNode, filter: HavingNodeChild): SelectQueryNode;
|
|
46
49
|
cloneWithDistinct(selectNode: SelectQueryNode): SelectQueryNode;
|
|
50
|
+
cloneWithUnion(selectNode: SelectQueryNode, union: UnionNode): SelectQueryNode;
|
|
47
51
|
}>;
|
|
@@ -72,11 +72,19 @@ exports.SelectQueryNode = (0, object_utils_js_1.freeze)({
|
|
|
72
72
|
offset,
|
|
73
73
|
});
|
|
74
74
|
},
|
|
75
|
-
cloneWithHaving(selectNode,
|
|
75
|
+
cloneWithHaving(selectNode, filter) {
|
|
76
76
|
return (0, object_utils_js_1.freeze)({
|
|
77
77
|
...selectNode,
|
|
78
78
|
having: selectNode.having
|
|
79
|
-
? having_node_js_1.HavingNode.cloneWithFilter(selectNode.having,
|
|
79
|
+
? having_node_js_1.HavingNode.cloneWithFilter(selectNode.having, 'And', filter)
|
|
80
|
+
: having_node_js_1.HavingNode.create(filter),
|
|
81
|
+
});
|
|
82
|
+
},
|
|
83
|
+
cloneWithOrHaving(selectNode, filter) {
|
|
84
|
+
return (0, object_utils_js_1.freeze)({
|
|
85
|
+
...selectNode,
|
|
86
|
+
having: selectNode.having
|
|
87
|
+
? having_node_js_1.HavingNode.cloneWithFilter(selectNode.having, 'Or', filter)
|
|
80
88
|
: having_node_js_1.HavingNode.create(filter),
|
|
81
89
|
});
|
|
82
90
|
},
|
|
@@ -86,4 +94,12 @@ exports.SelectQueryNode = (0, object_utils_js_1.freeze)({
|
|
|
86
94
|
isDistinct: true,
|
|
87
95
|
});
|
|
88
96
|
},
|
|
97
|
+
cloneWithUnion(selectNode, union) {
|
|
98
|
+
return (0, object_utils_js_1.freeze)({
|
|
99
|
+
...selectNode,
|
|
100
|
+
union: selectNode.union
|
|
101
|
+
? (0, object_utils_js_1.freeze)([...selectNode.union, union])
|
|
102
|
+
: (0, object_utils_js_1.freeze)([union]),
|
|
103
|
+
});
|
|
104
|
+
},
|
|
89
105
|
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { OperationNode } from './operation-node.js';
|
|
2
|
+
import { RawNode } from './raw-node.js';
|
|
3
|
+
import { SelectQueryNode } from './select-query-node.js';
|
|
4
|
+
export declare type UnionExpressionNode = SelectQueryNode | RawNode;
|
|
5
|
+
export interface UnionNode extends OperationNode {
|
|
6
|
+
readonly kind: 'UnionNode';
|
|
7
|
+
readonly union: UnionExpressionNode;
|
|
8
|
+
readonly all: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export declare const UnionNode: Readonly<{
|
|
14
|
+
is(node: OperationNode): node is UnionNode;
|
|
15
|
+
create(union: UnionExpressionNode, all: boolean): UnionNode;
|
|
16
|
+
}>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UnionNode = void 0;
|
|
4
|
+
const object_utils_js_1 = require("../util/object-utils.js");
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
exports.UnionNode = (0, object_utils_js_1.freeze)({
|
|
9
|
+
is(node) {
|
|
10
|
+
return node.kind === 'UnionNode';
|
|
11
|
+
},
|
|
12
|
+
create(union, all) {
|
|
13
|
+
return (0, object_utils_js_1.freeze)({
|
|
14
|
+
kind: 'UnionNode',
|
|
15
|
+
union,
|
|
16
|
+
all,
|
|
17
|
+
});
|
|
18
|
+
},
|
|
19
|
+
});
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { GroupByItemNode } from '../operation-node/group-by-item-node.js';
|
|
2
|
+
import { ParseContext } from './parse-context.js';
|
|
3
|
+
import { ReferenceExpressionOrList } from './reference-parser.js';
|
|
4
|
+
export declare function parseGroupBy(ctx: ParseContext, orderBy: ReferenceExpressionOrList<any, any>): GroupByItemNode[];
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseGroupBy = void 0;
|
|
4
|
+
const group_by_item_node_js_1 = require("../operation-node/group-by-item-node.js");
|
|
5
|
+
const reference_parser_js_1 = require("./reference-parser.js");
|
|
6
|
+
function parseGroupBy(ctx, orderBy) {
|
|
7
|
+
return (0, reference_parser_js_1.parseReferenceExpressionOrList)(ctx, orderBy).map(group_by_item_node_js_1.GroupByItemNode.create);
|
|
8
|
+
}
|
|
9
|
+
exports.parseGroupBy = parseGroupBy;
|
|
@@ -8,7 +8,7 @@ import { PrimitiveValue } from '../util/object-utils.js';
|
|
|
8
8
|
export declare type InsertObject<DB, TB extends keyof DB> = {
|
|
9
9
|
[C in keyof DB[TB]]: InsertValueExpression<DB[TB][C]>;
|
|
10
10
|
};
|
|
11
|
-
export declare type InsertObjectOrList<DB, TB extends keyof DB> = InsertObject<DB, TB> | InsertObject<DB, TB
|
|
11
|
+
export declare type InsertObjectOrList<DB, TB extends keyof DB> = InsertObject<DB, TB> | ReadonlyArray<InsertObject<DB, TB>>;
|
|
12
12
|
declare type InsertValueExpression<T> = T | AnyQueryBuilder | AnyRawBuilder | GeneratedPlaceholder;
|
|
13
13
|
export declare function parseInsertObjectOrList(args: InsertObjectOrList<any, any>): [ReadonlyArray<ColumnNode>, ReadonlyArray<InsertValuesNode>];
|
|
14
14
|
export declare function parseInsertValueExpression(value: InsertValueExpression<PrimitiveValue>): ValueNode | RawNode | SelectQueryNode;
|
|
@@ -3,9 +3,9 @@ import { AnyColumn, AnyColumnWithTable } from '../util/type-utils.js';
|
|
|
3
3
|
import { ExtractAliasFromTableExpression, TableExpressionDatabase } from './table-parser.js';
|
|
4
4
|
import { JoinBuilder } from '../query-builder/join-builder.js';
|
|
5
5
|
import { ParseContext } from './parse-context.js';
|
|
6
|
-
export declare type JoinReferenceExpression<DB, TB extends keyof DB,
|
|
7
|
-
export declare type JoinCallbackExpression<DB, TB extends keyof DB,
|
|
8
|
-
declare type AnyJoinColumn<DB, TB extends keyof DB,
|
|
9
|
-
declare type AnyJoinColumnWithTable<DB, TB extends keyof DB,
|
|
6
|
+
export declare type JoinReferenceExpression<DB, TB extends keyof DB, TE> = AnyJoinColumn<DB, TB, TE> | AnyJoinColumnWithTable<DB, TB, TE>;
|
|
7
|
+
export declare type JoinCallbackExpression<DB, TB extends keyof DB, TE> = (join: JoinBuilder<TableExpressionDatabase<DB, TE>, TB | ExtractAliasFromTableExpression<DB, TE>>) => JoinBuilder<any, any>;
|
|
8
|
+
declare type AnyJoinColumn<DB, TB extends keyof DB, TE> = AnyColumn<TableExpressionDatabase<DB, TE>, TB | ExtractAliasFromTableExpression<DB, TE>>;
|
|
9
|
+
declare type AnyJoinColumnWithTable<DB, TB extends keyof DB, TE> = AnyColumnWithTable<TableExpressionDatabase<DB, TE>, TB | ExtractAliasFromTableExpression<DB, TE>>;
|
|
10
10
|
export declare function parseJoin(ctx: ParseContext, joinType: JoinType, args: any[]): JoinNode;
|
|
11
11
|
export {};
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { RawNode } from '../operation-node/raw-node.js';
|
|
1
|
+
import { OrderByItemNode } from '../operation-node/order-by-item-node.js';
|
|
3
2
|
import { AnyRawBuilder } from '../util/type-utils.js';
|
|
4
3
|
import { ParseContext } from './parse-context.js';
|
|
5
4
|
import { ReferenceExpression } from './reference-parser.js';
|
|
6
5
|
export declare type OrderByDirection = 'asc' | 'desc';
|
|
7
6
|
export declare type OrderByExpression<DB, TB extends keyof DB, O> = ReferenceExpression<DB, TB> | keyof O;
|
|
8
7
|
export declare type OrderByDirectionExpression = OrderByDirection | AnyRawBuilder;
|
|
9
|
-
export declare function
|
|
10
|
-
export declare function parseOrderByDirectionExpression(expr?: OrderByDirectionExpression): RawNode | undefined;
|
|
8
|
+
export declare function parseOrderBy(ctx: ParseContext, orderBy: OrderByExpression<any, any, any>, direction?: OrderByDirectionExpression): OrderByItemNode;
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.parseOrderBy = void 0;
|
|
4
|
+
const order_by_item_node_js_1 = require("../operation-node/order-by-item-node.js");
|
|
4
5
|
const raw_node_js_1 = require("../operation-node/raw-node.js");
|
|
5
6
|
const reference_parser_js_1 = require("./reference-parser.js");
|
|
7
|
+
function parseOrderBy(ctx, orderBy, direction) {
|
|
8
|
+
return order_by_item_node_js_1.OrderByItemNode.create(parseOrderByExpression(ctx, orderBy), parseOrderByDirectionExpression(direction));
|
|
9
|
+
}
|
|
10
|
+
exports.parseOrderBy = parseOrderBy;
|
|
6
11
|
function parseOrderByExpression(ctx, expr) {
|
|
7
12
|
return (0, reference_parser_js_1.parseReferenceExpression)(ctx, expr);
|
|
8
13
|
}
|
|
9
|
-
exports.parseOrderByExpression = parseOrderByExpression;
|
|
10
14
|
function parseOrderByDirectionExpression(expr) {
|
|
11
15
|
if (!expr) {
|
|
12
16
|
return undefined;
|
|
@@ -18,4 +22,3 @@ function parseOrderByDirectionExpression(expr) {
|
|
|
18
22
|
return expr.toOperationNode();
|
|
19
23
|
}
|
|
20
24
|
}
|
|
21
|
-
exports.parseOrderByDirectionExpression = parseOrderByDirectionExpression;
|
|
@@ -9,7 +9,7 @@ import { RawBuilder } from '../raw-builder/raw-builder.js';
|
|
|
9
9
|
import { QueryBuilder } from '../query-builder/query-builder.js';
|
|
10
10
|
import { ParseContext } from './parse-context.js';
|
|
11
11
|
export declare type ReferenceExpression<DB, TB extends keyof DB> = StringReference<DB, TB> | AnyQueryBuilder | QueryBuilderFactory<DB, TB> | AnyRawBuilder | RawBuilderFactory<DB, TB> | DynamicReferenceBuilder<any>;
|
|
12
|
-
export declare type ReferenceExpressionOrList<DB, TB extends keyof DB> = ReferenceExpression<DB, TB> | ReferenceExpression<DB, TB
|
|
12
|
+
export declare type ReferenceExpressionOrList<DB, TB extends keyof DB> = ReferenceExpression<DB, TB> | ReadonlyArray<ReferenceExpression<DB, TB>>;
|
|
13
13
|
export declare type StringReference<DB, TB extends keyof DB> = AnyColumn<DB, TB> | AnyColumnWithTable<DB, TB>;
|
|
14
14
|
export declare type ExtractTypeFromReferenceExpression<DB, TB extends keyof DB, RE> = RE extends string ? ExtractTypeFromStringReference<DB, TB, RE> : RE extends RawBuilder<infer O> ? O : RE extends (qb: any) => RawBuilder<infer O> ? O : RE extends QueryBuilder<any, any, infer O> ? ValueType<O> : RE extends (qb: any) => QueryBuilder<any, any, infer O> ? ValueType<O> : PrimitiveValue;
|
|
15
15
|
declare type ExtractTypeFromStringReference<DB, TB extends keyof DB, S extends string, R = RowType<DB, TB>> = S extends `${infer SC}.${infer T}.${infer C}` ? `${SC}.${T}` extends TB ? C extends keyof DB[`${SC}.${T}`] ? DB[`${SC}.${T}`][C] : never : never : S extends `${infer T}.${infer C}` ? T extends TB ? C extends keyof DB[T] ? DB[T][C] : never : never : S extends keyof R ? R[S] : PrimitiveValue;
|
|
@@ -9,7 +9,7 @@ const table_node_js_1 = require("../operation-node/table-node.js");
|
|
|
9
9
|
const object_utils_js_1 = require("../util/object-utils.js");
|
|
10
10
|
const query_node_js_1 = require("../operation-node/query-node.js");
|
|
11
11
|
function parseReferenceExpressionOrList(ctx, arg) {
|
|
12
|
-
if (
|
|
12
|
+
if ((0, object_utils_js_1.isReadonlyArray)(arg)) {
|
|
13
13
|
return arg.map((it) => parseReferenceExpression(ctx, it));
|
|
14
14
|
}
|
|
15
15
|
else {
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { UnionNode } from '../operation-node/union-node.js';
|
|
2
|
+
import { QueryBuilder } from '../query-builder/query-builder.js';
|
|
3
|
+
import { RawBuilder } from '../raw-builder/raw-builder.js';
|
|
4
|
+
export declare type UnionExpression<DB, O> = QueryBuilder<DB, any, O> | RawBuilder<O>;
|
|
5
|
+
export declare function parseUnion(union: UnionExpression<any, any>, all: boolean): UnionNode;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseUnion = void 0;
|
|
4
|
+
const query_node_js_1 = require("../operation-node/query-node.js");
|
|
5
|
+
const union_node_js_1 = require("../operation-node/union-node.js");
|
|
6
|
+
function parseUnion(union, all) {
|
|
7
|
+
const node = union.toOperationNode();
|
|
8
|
+
if (query_node_js_1.QueryNode.isMutating(node)) {
|
|
9
|
+
throw new Error("can't combine insert, update or delete queries using union");
|
|
10
|
+
}
|
|
11
|
+
return union_node_js_1.UnionNode.create(node, all);
|
|
12
|
+
}
|
|
13
|
+
exports.parseUnion = parseUnion;
|
|
@@ -3,6 +3,6 @@ import { AnyQueryBuilder, AnyRawBuilder, QueryBuilderFactory, RawBuilderFactory
|
|
|
3
3
|
import { ExtractTypeFromReferenceExpression } from './reference-parser.js';
|
|
4
4
|
import { ParseContext } from './parse-context.js';
|
|
5
5
|
export declare type ValueExpression<DB, TB extends keyof DB, RE> = ExtractTypeFromReferenceExpression<DB, TB, RE> | AnyQueryBuilder | QueryBuilderFactory<DB, TB> | AnyRawBuilder | RawBuilderFactory<DB, TB>;
|
|
6
|
-
export declare type ValueExpressionOrList<DB, TB extends keyof DB, RE> = ValueExpression<DB, TB, RE> | ValueExpression<DB, TB, RE
|
|
6
|
+
export declare type ValueExpressionOrList<DB, TB extends keyof DB, RE> = ValueExpression<DB, TB, RE> | ReadonlyArray<ValueExpression<DB, TB, RE>>;
|
|
7
7
|
export declare function parseValueExpressionOrList(ctx: ParseContext, arg: ValueExpressionOrList<any, any, any>): ValueExpressionNode;
|
|
8
8
|
export declare function parseValueExpression(ctx: ParseContext, arg: ValueExpression<any, any, any>): ValueExpressionNode;
|