kysely 0.21.5 → 0.22.0
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/README.md +3 -2
- package/dist/cjs/dialect/sqlite/sqlite-query-compiler.d.ts +2 -0
- package/dist/cjs/dialect/sqlite/sqlite-query-compiler.js +4 -0
- package/dist/cjs/index.d.ts +10 -4
- package/dist/cjs/index.js +8 -2
- package/dist/cjs/kysely.d.ts +3 -3
- package/dist/cjs/kysely.js +3 -3
- package/dist/cjs/migration/file-migration-provider.js +7 -2
- package/dist/cjs/operation-node/aggregate-function-node.d.ts +22 -0
- package/dist/cjs/operation-node/aggregate-function-node.js +31 -0
- package/dist/cjs/operation-node/alias-node.d.ts +2 -1
- package/dist/cjs/operation-node/default-insert-value-node.d.ts +11 -0
- package/dist/cjs/operation-node/{union-node.js → default-insert-value-node.js} +5 -7
- package/dist/cjs/operation-node/group-by-node.d.ts +1 -1
- package/dist/cjs/operation-node/group-by-node.js +3 -3
- package/dist/cjs/operation-node/insert-query-node.d.ts +2 -1
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +12 -2
- package/dist/cjs/operation-node/operation-node-transformer.js +43 -5
- package/dist/cjs/operation-node/operation-node-utils.d.ts +2 -1
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +12 -2
- package/dist/cjs/operation-node/operation-node-visitor.js +6 -1
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/over-node.d.ts +19 -0
- package/dist/cjs/operation-node/over-node.js +35 -0
- package/dist/cjs/operation-node/partition-by-item-node.d.ts +14 -0
- package/dist/cjs/operation-node/partition-by-item-node.js +18 -0
- package/dist/cjs/operation-node/partition-by-node.d.ts +14 -0
- package/dist/cjs/operation-node/partition-by-node.js +24 -0
- package/dist/cjs/operation-node/select-query-node.d.ts +3 -3
- package/dist/cjs/operation-node/select-query-node.js +4 -4
- package/dist/cjs/operation-node/set-operation-node.d.ts +18 -0
- package/dist/cjs/operation-node/set-operation-node.js +20 -0
- package/dist/cjs/operation-node/value-list-node.d.ts +3 -1
- package/dist/cjs/parser/complex-expression-parser.d.ts +6 -4
- package/dist/cjs/parser/group-by-parser.d.ts +1 -1
- package/dist/cjs/parser/group-by-parser.js +2 -2
- package/dist/cjs/parser/insert-values-parser.js +13 -4
- package/dist/cjs/parser/parse-utils.d.ts +2 -0
- package/dist/cjs/parser/parse-utils.js +9 -1
- package/dist/cjs/parser/partition-by-parser.d.ts +6 -0
- package/dist/cjs/parser/partition-by-parser.js +9 -0
- package/dist/cjs/parser/reference-parser.d.ts +2 -1
- package/dist/cjs/parser/select-parser.d.ts +4 -3
- package/dist/cjs/parser/set-operation-parser.d.ts +5 -0
- package/dist/cjs/parser/set-operation-parser.js +8 -0
- package/dist/cjs/parser/value-parser.d.ts +2 -1
- package/dist/cjs/query-builder/aggregate-function-builder.d.ts +117 -0
- package/dist/cjs/query-builder/aggregate-function-builder.js +146 -0
- package/dist/cjs/query-builder/expression-builder.d.ts +3 -3
- package/dist/cjs/query-builder/expression-builder.js +3 -3
- package/dist/cjs/query-builder/{function-builder.d.ts → function-module.d.ts} +49 -42
- package/dist/cjs/query-builder/{function-builder.js → function-module.js} +70 -59
- package/dist/cjs/query-builder/over-builder.d.ts +59 -0
- package/dist/cjs/query-builder/over-builder.js +50 -0
- package/dist/cjs/query-builder/select-query-builder.d.ts +63 -3
- package/dist/cjs/query-builder/select-query-builder.js +83 -3
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +12 -2
- package/dist/cjs/query-compiler/default-query-compiler.js +44 -14
- package/dist/cjs/raw-builder/sql.d.ts +13 -5
- package/dist/cjs/raw-builder/sql.js +6 -0
- package/dist/cjs/util/object-utils.d.ts +1 -0
- package/dist/cjs/util/object-utils.js +5 -1
- package/dist/cjs/util/type-utils.d.ts +5 -1
- package/dist/esm/dialect/sqlite/sqlite-query-compiler.d.ts +2 -0
- package/dist/esm/dialect/sqlite/sqlite-query-compiler.js +4 -0
- package/dist/esm/index.d.ts +10 -4
- package/dist/esm/index.js +8 -2
- package/dist/esm/kysely.d.ts +3 -3
- package/dist/esm/kysely.js +3 -3
- package/dist/esm/migration/file-migration-provider.js +7 -2
- package/dist/esm/operation-node/aggregate-function-node.d.ts +22 -0
- package/dist/esm/operation-node/aggregate-function-node.js +29 -0
- package/dist/esm/operation-node/alias-node.d.ts +2 -1
- package/dist/esm/operation-node/default-insert-value-node.d.ts +11 -0
- package/dist/esm/operation-node/default-insert-value-node.js +15 -0
- package/dist/esm/operation-node/group-by-node.d.ts +1 -1
- package/dist/esm/operation-node/group-by-node.js +3 -3
- package/dist/esm/operation-node/insert-query-node.d.ts +2 -1
- package/dist/esm/operation-node/operation-node-transformer.d.ts +12 -2
- package/dist/esm/operation-node/operation-node-transformer.js +43 -5
- package/dist/esm/operation-node/operation-node-utils.d.ts +2 -1
- package/dist/esm/operation-node/operation-node-visitor.d.ts +12 -2
- package/dist/esm/operation-node/operation-node-visitor.js +6 -1
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/over-node.d.ts +19 -0
- package/dist/esm/operation-node/over-node.js +33 -0
- package/dist/esm/operation-node/partition-by-item-node.d.ts +14 -0
- package/dist/esm/operation-node/partition-by-item-node.js +16 -0
- package/dist/esm/operation-node/partition-by-node.d.ts +14 -0
- package/dist/esm/operation-node/partition-by-node.js +22 -0
- package/dist/esm/operation-node/select-query-node.d.ts +3 -3
- package/dist/esm/operation-node/select-query-node.js +4 -4
- package/dist/esm/operation-node/set-operation-node.d.ts +18 -0
- package/dist/esm/operation-node/set-operation-node.js +18 -0
- package/dist/esm/operation-node/value-list-node.d.ts +3 -1
- package/dist/esm/parser/complex-expression-parser.d.ts +6 -4
- package/dist/esm/parser/group-by-parser.d.ts +1 -1
- package/dist/esm/parser/group-by-parser.js +2 -2
- package/dist/esm/parser/insert-values-parser.js +14 -5
- package/dist/esm/parser/parse-utils.d.ts +2 -0
- package/dist/esm/parser/parse-utils.js +7 -0
- package/dist/esm/parser/partition-by-parser.d.ts +6 -0
- package/dist/esm/parser/partition-by-parser.js +6 -0
- package/dist/esm/parser/reference-parser.d.ts +2 -1
- package/dist/esm/parser/select-parser.d.ts +4 -3
- package/dist/esm/parser/set-operation-parser.d.ts +5 -0
- package/dist/esm/parser/set-operation-parser.js +5 -0
- package/dist/esm/parser/value-parser.d.ts +2 -1
- package/dist/esm/query-builder/aggregate-function-builder.d.ts +117 -0
- package/dist/esm/query-builder/aggregate-function-builder.js +142 -0
- package/dist/esm/query-builder/expression-builder.d.ts +3 -3
- package/dist/esm/query-builder/expression-builder.js +3 -3
- package/dist/esm/query-builder/{function-builder.d.ts → function-module.d.ts} +49 -42
- package/dist/esm/query-builder/{function-builder.js → function-module.js} +69 -58
- package/dist/esm/query-builder/over-builder.d.ts +59 -0
- package/dist/esm/query-builder/over-builder.js +47 -0
- package/dist/esm/query-builder/select-query-builder.d.ts +63 -3
- package/dist/esm/query-builder/select-query-builder.js +83 -3
- package/dist/esm/query-compiler/default-query-compiler.d.ts +12 -2
- package/dist/esm/query-compiler/default-query-compiler.js +44 -14
- package/dist/esm/raw-builder/sql.d.ts +13 -5
- package/dist/esm/raw-builder/sql.js +6 -0
- package/dist/esm/util/object-utils.d.ts +1 -0
- package/dist/esm/util/object-utils.js +3 -0
- package/dist/esm/util/type-utils.d.ts +5 -1
- package/package.json +4 -1
- package/dist/cjs/operation-node/union-node.d.ts +0 -16
- package/dist/cjs/parser/union-parser.d.ts +0 -5
- package/dist/cjs/parser/union-parser.js +0 -8
- package/dist/esm/operation-node/union-node.d.ts +0 -16
- package/dist/esm/operation-node/union-node.js +0 -17
- package/dist/esm/parser/union-parser.d.ts +0 -5
- package/dist/esm/parser/union-parser.js +0 -5
|
@@ -13,13 +13,13 @@ import { Compilable } from '../util/compilable.js';
|
|
|
13
13
|
import { QueryExecutor } from '../query-executor/query-executor.js';
|
|
14
14
|
import { QueryId } from '../util/query-id.js';
|
|
15
15
|
import { GroupByExpression } from '../parser/group-by-parser.js';
|
|
16
|
-
import { UnionExpression } from '../parser/union-parser.js';
|
|
17
16
|
import { KyselyPlugin } from '../plugin/kysely-plugin.js';
|
|
18
17
|
import { WhereInterface } from './where-interface.js';
|
|
19
18
|
import { NoResultErrorConstructor } from './no-result-error.js';
|
|
20
19
|
import { HavingInterface } from './having-interface.js';
|
|
21
20
|
import { AliasedRawBuilder } from '../raw-builder/raw-builder.js';
|
|
22
21
|
import { Explainable, ExplainFormat } from '../util/explainable.js';
|
|
22
|
+
import { SetOperationExpression } from '../parser/set-operation-parser.js';
|
|
23
23
|
export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements WhereInterface<DB, TB>, HavingInterface<DB, TB>, OperationNodeSource, Compilable, Explainable {
|
|
24
24
|
#private;
|
|
25
25
|
constructor(props: SelectQueryBuilderProps);
|
|
@@ -1202,7 +1202,7 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
1202
1202
|
* .orderBy('name')
|
|
1203
1203
|
* ```
|
|
1204
1204
|
*/
|
|
1205
|
-
union(expression:
|
|
1205
|
+
union(expression: SetOperationExpression<DB, O>): SelectQueryBuilder<DB, TB, O>;
|
|
1206
1206
|
/**
|
|
1207
1207
|
* Combines another select query or raw expression to this query using `union all`.
|
|
1208
1208
|
*
|
|
@@ -1217,7 +1217,67 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
1217
1217
|
* .orderBy('name')
|
|
1218
1218
|
* ```
|
|
1219
1219
|
*/
|
|
1220
|
-
unionAll(expression:
|
|
1220
|
+
unionAll(expression: SetOperationExpression<DB, O>): SelectQueryBuilder<DB, TB, O>;
|
|
1221
|
+
/**
|
|
1222
|
+
* Combines another select query or raw expression to this query using `intersect`.
|
|
1223
|
+
*
|
|
1224
|
+
* The output row type of the combined query must match `this` query.
|
|
1225
|
+
*
|
|
1226
|
+
* ### Examples
|
|
1227
|
+
*
|
|
1228
|
+
* ```ts
|
|
1229
|
+
* db.selectFrom('person')
|
|
1230
|
+
* .select(['id', 'first_name as name'])
|
|
1231
|
+
* .intersect(db.selectFrom('pet').select(['id', 'name']))
|
|
1232
|
+
* .orderBy('name')
|
|
1233
|
+
* ```
|
|
1234
|
+
*/
|
|
1235
|
+
intersect(expression: SetOperationExpression<DB, O>): SelectQueryBuilder<DB, TB, O>;
|
|
1236
|
+
/**
|
|
1237
|
+
* Combines another select query or raw expression to this query using `intersect all`.
|
|
1238
|
+
*
|
|
1239
|
+
* The output row type of the combined query must match `this` query.
|
|
1240
|
+
*
|
|
1241
|
+
* ### Examples
|
|
1242
|
+
*
|
|
1243
|
+
* ```ts
|
|
1244
|
+
* db.selectFrom('person')
|
|
1245
|
+
* .select(['id', 'first_name as name'])
|
|
1246
|
+
* .intersectAll(db.selectFrom('pet').select(['id', 'name']))
|
|
1247
|
+
* .orderBy('name')
|
|
1248
|
+
* ```
|
|
1249
|
+
*/
|
|
1250
|
+
intersectAll(expression: SetOperationExpression<DB, O>): SelectQueryBuilder<DB, TB, O>;
|
|
1251
|
+
/**
|
|
1252
|
+
* Combines another select query or raw expression to this query using `except`.
|
|
1253
|
+
*
|
|
1254
|
+
* The output row type of the combined query must match `this` query.
|
|
1255
|
+
*
|
|
1256
|
+
* ### Examples
|
|
1257
|
+
*
|
|
1258
|
+
* ```ts
|
|
1259
|
+
* db.selectFrom('person')
|
|
1260
|
+
* .select(['id', 'first_name as name'])
|
|
1261
|
+
* .except(db.selectFrom('pet').select(['id', 'name']))
|
|
1262
|
+
* .orderBy('name')
|
|
1263
|
+
* ```
|
|
1264
|
+
*/
|
|
1265
|
+
except(expression: SetOperationExpression<DB, O>): SelectQueryBuilder<DB, TB, O>;
|
|
1266
|
+
/**
|
|
1267
|
+
* Combines another select query or raw expression to this query using `except all`.
|
|
1268
|
+
*
|
|
1269
|
+
* The output row type of the combined query must match `this` query.
|
|
1270
|
+
*
|
|
1271
|
+
* ### Examples
|
|
1272
|
+
*
|
|
1273
|
+
* ```ts
|
|
1274
|
+
* db.selectFrom('person')
|
|
1275
|
+
* .select(['id', 'first_name as name'])
|
|
1276
|
+
* .exceptAll(db.selectFrom('pet').select(['id', 'name']))
|
|
1277
|
+
* .orderBy('name')
|
|
1278
|
+
* ```
|
|
1279
|
+
*/
|
|
1280
|
+
exceptAll(expression: SetOperationExpression<DB, O>): SelectQueryBuilder<DB, TB, O>;
|
|
1221
1281
|
/**
|
|
1222
1282
|
* Simply calls the given function passing `this` as the only argument.
|
|
1223
1283
|
*
|
|
@@ -14,10 +14,10 @@ const limit_node_js_1 = require("../operation-node/limit-node.js");
|
|
|
14
14
|
const offset_node_js_1 = require("../operation-node/offset-node.js");
|
|
15
15
|
const object_utils_js_1 = require("../util/object-utils.js");
|
|
16
16
|
const group_by_parser_js_1 = require("../parser/group-by-parser.js");
|
|
17
|
-
const union_parser_js_1 = require("../parser/union-parser.js");
|
|
18
17
|
const no_result_error_js_1 = require("./no-result-error.js");
|
|
19
18
|
const identifier_node_js_1 = require("../operation-node/identifier-node.js");
|
|
20
19
|
const explain_node_js_1 = require("../operation-node/explain-node.js");
|
|
20
|
+
const set_operation_parser_js_1 = require("../parser/set-operation-parser.js");
|
|
21
21
|
class SelectQueryBuilder {
|
|
22
22
|
#props;
|
|
23
23
|
constructor(props) {
|
|
@@ -472,7 +472,7 @@ class SelectQueryBuilder {
|
|
|
472
472
|
union(expression) {
|
|
473
473
|
return new SelectQueryBuilder({
|
|
474
474
|
...this.#props,
|
|
475
|
-
queryNode: select_query_node_js_1.SelectQueryNode.
|
|
475
|
+
queryNode: select_query_node_js_1.SelectQueryNode.cloneWithSetOperation(this.#props.queryNode, (0, set_operation_parser_js_1.parseSetOperation)('union', expression, false)),
|
|
476
476
|
});
|
|
477
477
|
}
|
|
478
478
|
/**
|
|
@@ -492,7 +492,87 @@ class SelectQueryBuilder {
|
|
|
492
492
|
unionAll(expression) {
|
|
493
493
|
return new SelectQueryBuilder({
|
|
494
494
|
...this.#props,
|
|
495
|
-
queryNode: select_query_node_js_1.SelectQueryNode.
|
|
495
|
+
queryNode: select_query_node_js_1.SelectQueryNode.cloneWithSetOperation(this.#props.queryNode, (0, set_operation_parser_js_1.parseSetOperation)('union', expression, true)),
|
|
496
|
+
});
|
|
497
|
+
}
|
|
498
|
+
/**
|
|
499
|
+
* Combines another select query or raw expression to this query using `intersect`.
|
|
500
|
+
*
|
|
501
|
+
* The output row type of the combined query must match `this` query.
|
|
502
|
+
*
|
|
503
|
+
* ### Examples
|
|
504
|
+
*
|
|
505
|
+
* ```ts
|
|
506
|
+
* db.selectFrom('person')
|
|
507
|
+
* .select(['id', 'first_name as name'])
|
|
508
|
+
* .intersect(db.selectFrom('pet').select(['id', 'name']))
|
|
509
|
+
* .orderBy('name')
|
|
510
|
+
* ```
|
|
511
|
+
*/
|
|
512
|
+
intersect(expression) {
|
|
513
|
+
return new SelectQueryBuilder({
|
|
514
|
+
...this.#props,
|
|
515
|
+
queryNode: select_query_node_js_1.SelectQueryNode.cloneWithSetOperation(this.#props.queryNode, (0, set_operation_parser_js_1.parseSetOperation)('intersect', expression, false)),
|
|
516
|
+
});
|
|
517
|
+
}
|
|
518
|
+
/**
|
|
519
|
+
* Combines another select query or raw expression to this query using `intersect all`.
|
|
520
|
+
*
|
|
521
|
+
* The output row type of the combined query must match `this` query.
|
|
522
|
+
*
|
|
523
|
+
* ### Examples
|
|
524
|
+
*
|
|
525
|
+
* ```ts
|
|
526
|
+
* db.selectFrom('person')
|
|
527
|
+
* .select(['id', 'first_name as name'])
|
|
528
|
+
* .intersectAll(db.selectFrom('pet').select(['id', 'name']))
|
|
529
|
+
* .orderBy('name')
|
|
530
|
+
* ```
|
|
531
|
+
*/
|
|
532
|
+
intersectAll(expression) {
|
|
533
|
+
return new SelectQueryBuilder({
|
|
534
|
+
...this.#props,
|
|
535
|
+
queryNode: select_query_node_js_1.SelectQueryNode.cloneWithSetOperation(this.#props.queryNode, (0, set_operation_parser_js_1.parseSetOperation)('intersect', expression, true)),
|
|
536
|
+
});
|
|
537
|
+
}
|
|
538
|
+
/**
|
|
539
|
+
* Combines another select query or raw expression to this query using `except`.
|
|
540
|
+
*
|
|
541
|
+
* The output row type of the combined query must match `this` query.
|
|
542
|
+
*
|
|
543
|
+
* ### Examples
|
|
544
|
+
*
|
|
545
|
+
* ```ts
|
|
546
|
+
* db.selectFrom('person')
|
|
547
|
+
* .select(['id', 'first_name as name'])
|
|
548
|
+
* .except(db.selectFrom('pet').select(['id', 'name']))
|
|
549
|
+
* .orderBy('name')
|
|
550
|
+
* ```
|
|
551
|
+
*/
|
|
552
|
+
except(expression) {
|
|
553
|
+
return new SelectQueryBuilder({
|
|
554
|
+
...this.#props,
|
|
555
|
+
queryNode: select_query_node_js_1.SelectQueryNode.cloneWithSetOperation(this.#props.queryNode, (0, set_operation_parser_js_1.parseSetOperation)('except', expression, false)),
|
|
556
|
+
});
|
|
557
|
+
}
|
|
558
|
+
/**
|
|
559
|
+
* Combines another select query or raw expression to this query using `except all`.
|
|
560
|
+
*
|
|
561
|
+
* The output row type of the combined query must match `this` query.
|
|
562
|
+
*
|
|
563
|
+
* ### Examples
|
|
564
|
+
*
|
|
565
|
+
* ```ts
|
|
566
|
+
* db.selectFrom('person')
|
|
567
|
+
* .select(['id', 'first_name as name'])
|
|
568
|
+
* .exceptAll(db.selectFrom('pet').select(['id', 'name']))
|
|
569
|
+
* .orderBy('name')
|
|
570
|
+
* ```
|
|
571
|
+
*/
|
|
572
|
+
exceptAll(expression) {
|
|
573
|
+
return new SelectQueryBuilder({
|
|
574
|
+
...this.#props,
|
|
575
|
+
queryNode: select_query_node_js_1.SelectQueryNode.cloneWithSetOperation(this.#props.queryNode, (0, set_operation_parser_js_1.parseSetOperation)('except', expression, true)),
|
|
496
576
|
});
|
|
497
577
|
}
|
|
498
578
|
/**
|
|
@@ -60,7 +60,6 @@ import { ColumnDefinitionNode } from '../operation-node/column-definition-node.j
|
|
|
60
60
|
import { ModifyColumnNode } from '../operation-node/modify-column-node.js';
|
|
61
61
|
import { OnDuplicateKeyNode } from '../operation-node/on-duplicate-key-node.js';
|
|
62
62
|
import { ColumnNode } from '../operation-node/column-node.js';
|
|
63
|
-
import { UnionNode } from '../operation-node/union-node.js';
|
|
64
63
|
import { CreateViewNode } from '../operation-node/create-view-node.js';
|
|
65
64
|
import { DropViewNode } from '../operation-node/drop-view-node.js';
|
|
66
65
|
import { GeneratedNode } from '../operation-node/generated-node.js';
|
|
@@ -73,6 +72,12 @@ import { CreateTypeNode } from '../operation-node/create-type-node.js';
|
|
|
73
72
|
import { DropTypeNode } from '../operation-node/drop-type-node.js';
|
|
74
73
|
import { ExplainNode } from '../operation-node/explain-node.js';
|
|
75
74
|
import { SchemableIdentifierNode } from '../operation-node/schemable-identifier-node.js';
|
|
75
|
+
import { DefaultInsertValueNode } from '../operation-node/default-insert-value-node.js';
|
|
76
|
+
import { AggregateFunctionNode } from '../operation-node/aggregate-function-node.js';
|
|
77
|
+
import { OverNode } from '../operation-node/over-node.js';
|
|
78
|
+
import { PartitionByNode } from '../operation-node/partition-by-node.js';
|
|
79
|
+
import { PartitionByItemNode } from '../operation-node/partition-by-item-node.js';
|
|
80
|
+
import { SetOperationNode } from '../operation-node/set-operation-node.js';
|
|
76
81
|
export declare class DefaultQueryCompiler extends OperationNodeVisitor implements QueryCompiler {
|
|
77
82
|
#private;
|
|
78
83
|
protected get numParameters(): number;
|
|
@@ -144,7 +149,7 @@ export declare class DefaultQueryCompiler extends OperationNodeVisitor implement
|
|
|
144
149
|
protected visitModifyColumn(node: ModifyColumnNode): void;
|
|
145
150
|
protected visitAddConstraint(node: AddConstraintNode): void;
|
|
146
151
|
protected visitDropConstraint(node: DropConstraintNode): void;
|
|
147
|
-
protected
|
|
152
|
+
protected visitSetOperation(node: SetOperationNode): void;
|
|
148
153
|
protected visitCreateView(node: CreateViewNode): void;
|
|
149
154
|
protected visitDropView(node: DropViewNode): void;
|
|
150
155
|
protected visitGenerated(node: GeneratedNode): void;
|
|
@@ -153,6 +158,11 @@ export declare class DefaultQueryCompiler extends OperationNodeVisitor implement
|
|
|
153
158
|
protected visitCreateType(node: CreateTypeNode): void;
|
|
154
159
|
protected visitDropType(node: DropTypeNode): void;
|
|
155
160
|
protected visitExplain(node: ExplainNode): void;
|
|
161
|
+
protected visitDefaultInsertValue(_: DefaultInsertValueNode): void;
|
|
162
|
+
protected visitAggregateFunction(node: AggregateFunctionNode): void;
|
|
163
|
+
protected visitOver(node: OverNode): void;
|
|
164
|
+
protected visitPartitionBy(node: PartitionByNode): void;
|
|
165
|
+
protected visitPartitionByItem(node: PartitionByItemNode): void;
|
|
156
166
|
protected append(str: string): void;
|
|
157
167
|
protected appendValue(parameter: unknown): void;
|
|
158
168
|
protected getLeftIdentifierWrapper(): string;
|
|
@@ -4,10 +4,9 @@ exports.DefaultQueryCompiler = void 0;
|
|
|
4
4
|
const insert_query_node_js_1 = require("../operation-node/insert-query-node.js");
|
|
5
5
|
const operation_node_visitor_js_1 = require("../operation-node/operation-node-visitor.js");
|
|
6
6
|
const query_node_js_1 = require("../operation-node/query-node.js");
|
|
7
|
-
const raw_node_js_1 = require("../operation-node/raw-node.js");
|
|
8
7
|
const object_utils_js_1 = require("../util/object-utils.js");
|
|
9
|
-
const union_node_js_1 = require("../operation-node/union-node.js");
|
|
10
8
|
const create_view_node_js_1 = require("../operation-node/create-view-node.js");
|
|
9
|
+
const set_operation_node_js_1 = require("../operation-node/set-operation-node.js");
|
|
11
10
|
class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisitor {
|
|
12
11
|
#sql = '';
|
|
13
12
|
#parameters = [];
|
|
@@ -31,7 +30,7 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
31
30
|
const wrapInParens = this.parentNode !== undefined &&
|
|
32
31
|
!insert_query_node_js_1.InsertQueryNode.is(this.parentNode) &&
|
|
33
32
|
!create_view_node_js_1.CreateViewNode.is(this.parentNode) &&
|
|
34
|
-
!
|
|
33
|
+
!set_operation_node_js_1.SetOperationNode.is(this.parentNode);
|
|
35
34
|
if (this.parentNode === undefined && node.explain) {
|
|
36
35
|
this.visitNode(node.explain);
|
|
37
36
|
this.append(' ');
|
|
@@ -73,9 +72,9 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
73
72
|
this.append(' ');
|
|
74
73
|
this.visitNode(node.having);
|
|
75
74
|
}
|
|
76
|
-
if (node.
|
|
75
|
+
if (node.setOperations) {
|
|
77
76
|
this.append(' ');
|
|
78
|
-
this.compileList(node.
|
|
77
|
+
this.compileList(node.setOperations, ' ');
|
|
79
78
|
}
|
|
80
79
|
if (node.orderBy) {
|
|
81
80
|
this.append(' ');
|
|
@@ -544,13 +543,7 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
544
543
|
}
|
|
545
544
|
if (node.expression) {
|
|
546
545
|
this.append(' (');
|
|
547
|
-
if (raw_node_js_1.RawNode.is(node.expression)) {
|
|
548
|
-
this.append('(');
|
|
549
|
-
}
|
|
550
546
|
this.visitNode(node.expression);
|
|
551
|
-
if (raw_node_js_1.RawNode.is(node.expression)) {
|
|
552
|
-
this.append(')');
|
|
553
|
-
}
|
|
554
547
|
this.append(')');
|
|
555
548
|
}
|
|
556
549
|
}
|
|
@@ -752,12 +745,13 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
752
745
|
this.append(' restrict');
|
|
753
746
|
}
|
|
754
747
|
}
|
|
755
|
-
|
|
756
|
-
this.append(
|
|
748
|
+
visitSetOperation(node) {
|
|
749
|
+
this.append(node.operator);
|
|
750
|
+
this.append(' ');
|
|
757
751
|
if (node.all) {
|
|
758
752
|
this.append('all ');
|
|
759
753
|
}
|
|
760
|
-
this.visitNode(node.
|
|
754
|
+
this.visitNode(node.expression);
|
|
761
755
|
}
|
|
762
756
|
visitCreateView(node) {
|
|
763
757
|
this.append('create ');
|
|
@@ -867,6 +861,42 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
867
861
|
this.append(this.getRightExplainOptionsWrapper());
|
|
868
862
|
}
|
|
869
863
|
}
|
|
864
|
+
visitDefaultInsertValue(_) {
|
|
865
|
+
this.append('default');
|
|
866
|
+
}
|
|
867
|
+
visitAggregateFunction(node) {
|
|
868
|
+
this.append(node.func);
|
|
869
|
+
this.append('(');
|
|
870
|
+
if (node.distinct) {
|
|
871
|
+
this.append('distinct ');
|
|
872
|
+
}
|
|
873
|
+
this.visitNode(node.column);
|
|
874
|
+
this.append(')');
|
|
875
|
+
if (node.over) {
|
|
876
|
+
this.append(' ');
|
|
877
|
+
this.visitNode(node.over);
|
|
878
|
+
}
|
|
879
|
+
}
|
|
880
|
+
visitOver(node) {
|
|
881
|
+
this.append('over(');
|
|
882
|
+
if (node.partitionBy) {
|
|
883
|
+
this.visitNode(node.partitionBy);
|
|
884
|
+
if (node.orderBy) {
|
|
885
|
+
this.append(' ');
|
|
886
|
+
}
|
|
887
|
+
}
|
|
888
|
+
if (node.orderBy) {
|
|
889
|
+
this.visitNode(node.orderBy);
|
|
890
|
+
}
|
|
891
|
+
this.append(')');
|
|
892
|
+
}
|
|
893
|
+
visitPartitionBy(node) {
|
|
894
|
+
this.append('partition by ');
|
|
895
|
+
this.compileList(node.items);
|
|
896
|
+
}
|
|
897
|
+
visitPartitionByItem(node) {
|
|
898
|
+
this.visitNode(node.partitionBy);
|
|
899
|
+
}
|
|
870
900
|
append(str) {
|
|
871
901
|
this.#sql += str;
|
|
872
902
|
}
|
|
@@ -7,13 +7,14 @@ export interface Sql {
|
|
|
7
7
|
* import { sql } from 'kysely'
|
|
8
8
|
*
|
|
9
9
|
* const id = 123
|
|
10
|
-
*
|
|
11
10
|
* const snippet = sql<Person[]>`select * from person where id = ${id}`
|
|
12
11
|
* ```
|
|
13
12
|
*
|
|
14
13
|
* Substitutions (the things inside `${}`) are automatically passed to the database
|
|
15
|
-
* as parameters and are
|
|
16
|
-
* about SQL injection vulnerabilities.
|
|
14
|
+
* as parameters and are never interpolated to the SQL string. There's no need to worry
|
|
15
|
+
* about SQL injection vulnerabilities. Substitutions can be values, other `sql`
|
|
16
|
+
* expressions, queries and almost anything else Kysely can produce and they get
|
|
17
|
+
* handled correctly. See the examples below.
|
|
17
18
|
*
|
|
18
19
|
* If you need your substitutions to be interpreted as identifiers, value literals or
|
|
19
20
|
* lists of things, see the {@link Sql.ref}, {@link Sql.table}, {@link Sql.id},
|
|
@@ -29,8 +30,7 @@ export interface Sql {
|
|
|
29
30
|
* .selectFrom('person')
|
|
30
31
|
* .select(
|
|
31
32
|
* // If you use `sql` in a select statement, remember to call the `as`
|
|
32
|
-
* // method to give it an alias.
|
|
33
|
-
* // the column to the result type.
|
|
33
|
+
* // method to give it an alias.
|
|
34
34
|
* sql<string>`concat(first_name, ' ', last_name)`.as('full_name')
|
|
35
35
|
* )
|
|
36
36
|
* .where(sql`birthdate between ${date1} and ${date2}`)
|
|
@@ -97,6 +97,14 @@ export interface Sql {
|
|
|
97
97
|
* type-safety though... But it's possible.
|
|
98
98
|
*/
|
|
99
99
|
<T = unknown>(sqlFragments: TemplateStringsArray, ...parameters: unknown[]): RawBuilder<T>;
|
|
100
|
+
/**
|
|
101
|
+
* `sql.value(value)` is a shortcut for:
|
|
102
|
+
*
|
|
103
|
+
* ```ts
|
|
104
|
+
* sql`${value}`
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
value(value: unknown): RawBuilder<unknown>;
|
|
100
108
|
/**
|
|
101
109
|
* This can be used to add runtime column references to SQL snippets.
|
|
102
110
|
*
|
|
@@ -21,6 +21,12 @@ exports.sql = Object.assign((sqlFragments, ...parameters) => {
|
|
|
21
21
|
rawNode: raw_node_js_1.RawNode.createWithChild((0, reference_parser_js_1.parseStringReference)(columnReference)),
|
|
22
22
|
});
|
|
23
23
|
},
|
|
24
|
+
value(value) {
|
|
25
|
+
return new raw_builder_js_1.RawBuilder({
|
|
26
|
+
queryId: (0, query_id_js_1.createQueryId)(),
|
|
27
|
+
rawNode: raw_node_js_1.RawNode.createWithChild((0, value_parser_js_1.parseValueExpression)(value)),
|
|
28
|
+
});
|
|
29
|
+
},
|
|
24
30
|
table(tableReference) {
|
|
25
31
|
return new raw_builder_js_1.RawBuilder({
|
|
26
32
|
queryId: (0, query_id_js_1.createQueryId)(),
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare function isEmpty(obj: ArrayLike<unknown> | string | object): boolean;
|
|
2
|
+
export declare function isUndefined(obj: unknown): obj is undefined;
|
|
2
3
|
export declare function isString(obj: unknown): obj is string;
|
|
3
4
|
export declare function isNumber(obj: unknown): obj is number;
|
|
4
5
|
export declare function isBoolean(obj: unknown): obj is boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.compare = exports.noop = exports.isReadonlyArray = exports.asReadonlyArray = exports.asArray = exports.freeze = exports.getLast = exports.isObject = exports.isFunction = exports.isBuffer = exports.isBigInt = exports.isDate = exports.isNull = exports.isBoolean = exports.isNumber = exports.isString = exports.isEmpty = void 0;
|
|
3
|
+
exports.compare = exports.noop = exports.isReadonlyArray = exports.asReadonlyArray = exports.asArray = exports.freeze = exports.getLast = exports.isObject = exports.isFunction = exports.isBuffer = exports.isBigInt = exports.isDate = exports.isNull = exports.isBoolean = exports.isNumber = exports.isString = exports.isUndefined = exports.isEmpty = void 0;
|
|
4
4
|
function isEmpty(obj) {
|
|
5
5
|
if (Array.isArray(obj) || isString(obj) || isBuffer(obj)) {
|
|
6
6
|
return obj.length === 0;
|
|
@@ -11,6 +11,10 @@ function isEmpty(obj) {
|
|
|
11
11
|
return false;
|
|
12
12
|
}
|
|
13
13
|
exports.isEmpty = isEmpty;
|
|
14
|
+
function isUndefined(obj) {
|
|
15
|
+
return obj === undefined;
|
|
16
|
+
}
|
|
17
|
+
exports.isUndefined = isUndefined;
|
|
14
18
|
function isString(obj) {
|
|
15
19
|
return typeof obj === 'string';
|
|
16
20
|
}
|
|
@@ -4,6 +4,7 @@ import { ExpressionBuilder } from '../query-builder/expression-builder.js';
|
|
|
4
4
|
import { InsertResult } from '../query-builder/insert-result.js';
|
|
5
5
|
import { DeleteResult } from '../query-builder/delete-result.js';
|
|
6
6
|
import { UpdateResult } from '../query-builder/update-result.js';
|
|
7
|
+
import { AggregateFunctionBuilder, AliasedAggregateFunctionBuilder } from '../query-builder/aggregate-function-builder.js';
|
|
7
8
|
/**
|
|
8
9
|
* Given an object type, extracts the union of all value types.
|
|
9
10
|
*/
|
|
@@ -102,10 +103,13 @@ export declare type AnySelectQueryBuilder = SelectQueryBuilder<any, any, any>;
|
|
|
102
103
|
export declare type AnyAliasedQueryBuilder = AliasedQueryBuilder<any, any, any, any>;
|
|
103
104
|
export declare type AnyRawBuilder = RawBuilder<any>;
|
|
104
105
|
export declare type AnyAliasedRawBuilder = AliasedRawBuilder<any, any>;
|
|
106
|
+
export declare type AnyAliasedAggregateFunctionBuilder = AliasedAggregateFunctionBuilder<any, any, any, any>;
|
|
105
107
|
export declare type SelectQueryBuilderFactory<DB, TB extends keyof DB> = (qb: ExpressionBuilder<DB, TB>) => AnySelectQueryBuilder;
|
|
106
108
|
export declare type AliasedQueryBuilderFactory<DB, TB extends keyof DB> = (qb: ExpressionBuilder<DB, TB>) => AnyAliasedQueryBuilder;
|
|
107
|
-
export declare type RawBuilderFactory<DB, TB extends keyof DB> = (qb: ExpressionBuilder<DB, TB>) =>
|
|
109
|
+
export declare type RawBuilderFactory<DB, TB extends keyof DB, O = any> = (qb: ExpressionBuilder<DB, TB>) => RawBuilder<O>;
|
|
108
110
|
export declare type AliasedRawBuilderFactory<DB, TB extends keyof DB> = (qb: ExpressionBuilder<DB, TB>) => AnyAliasedRawBuilder;
|
|
111
|
+
export declare type AggregateFunctionBuilderFactory<DB, TB extends keyof DB, O = unknown> = (qb: ExpressionBuilder<DB, TB>) => AggregateFunctionBuilder<DB, TB, O>;
|
|
112
|
+
export declare type AliasedAggregateFunctionBuilderFactory<DB, TB extends keyof DB> = (qb: ExpressionBuilder<DB, TB>) => AnyAliasedAggregateFunctionBuilder;
|
|
109
113
|
export declare type SingleResultType<O> = O extends InsertResult ? O : O extends DeleteResult ? O : O extends UpdateResult ? O : O | undefined;
|
|
110
114
|
export declare type UnknownRow = Record<string, unknown>;
|
|
111
115
|
export declare type Nullable<T> = {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DefaultInsertValueNode } from '../../operation-node/default-insert-value-node.js';
|
|
1
2
|
import { DefaultQueryCompiler } from '../../query-compiler/default-query-compiler.js';
|
|
2
3
|
export declare class SqliteQueryCompiler extends DefaultQueryCompiler {
|
|
3
4
|
protected getCurrentParameterPlaceholder(): string;
|
|
@@ -7,4 +8,5 @@ export declare class SqliteQueryCompiler extends DefaultQueryCompiler {
|
|
|
7
8
|
protected getRightIdentifierWrapper(): string;
|
|
8
9
|
protected getAutoIncrement(): string;
|
|
9
10
|
protected sanitizeIdentifier(identifier: string): string;
|
|
11
|
+
protected visitDefaultInsertValue(_: DefaultInsertValueNode): void;
|
|
10
12
|
}
|
|
@@ -23,4 +23,8 @@ export class SqliteQueryCompiler extends DefaultQueryCompiler {
|
|
|
23
23
|
sanitizeIdentifier(identifier) {
|
|
24
24
|
return identifier.replace(ID_WRAP_REGEX, '""');
|
|
25
25
|
}
|
|
26
|
+
visitDefaultInsertValue(_) {
|
|
27
|
+
// sqlite doesn't support the `default` keyword in inserts.
|
|
28
|
+
this.append('null');
|
|
29
|
+
}
|
|
26
30
|
}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -10,11 +10,12 @@ export * from './query-builder/delete-query-builder.js';
|
|
|
10
10
|
export * from './query-builder/no-result-error.js';
|
|
11
11
|
export * from './query-builder/join-builder.js';
|
|
12
12
|
export * from './query-builder/expression-builder.js';
|
|
13
|
-
export * from './query-builder/function-
|
|
13
|
+
export * from './query-builder/function-module.js';
|
|
14
14
|
export * from './query-builder/insert-result.js';
|
|
15
15
|
export * from './query-builder/delete-result.js';
|
|
16
16
|
export * from './query-builder/update-result.js';
|
|
17
17
|
export * from './query-builder/on-conflict-builder.js';
|
|
18
|
+
export * from './query-builder/aggregate-function-builder.js';
|
|
18
19
|
export * from './raw-builder/raw-builder.js';
|
|
19
20
|
export * from './raw-builder/sql.js';
|
|
20
21
|
export * from './query-executor/query-executor.js';
|
|
@@ -142,7 +143,6 @@ export * from './operation-node/select-query-node.js';
|
|
|
142
143
|
export * from './operation-node/select-query-node.js';
|
|
143
144
|
export * from './operation-node/selection-node.js';
|
|
144
145
|
export * from './operation-node/table-node.js';
|
|
145
|
-
export * from './operation-node/union-node.js';
|
|
146
146
|
export * from './operation-node/unique-constraint-node.js';
|
|
147
147
|
export * from './operation-node/update-query-node.js';
|
|
148
148
|
export * from './operation-node/value-list-node.js';
|
|
@@ -151,13 +151,19 @@ export * from './operation-node/values-node.js';
|
|
|
151
151
|
export * from './operation-node/where-node.js';
|
|
152
152
|
export * from './operation-node/with-node.js';
|
|
153
153
|
export * from './operation-node/explain-node.js';
|
|
154
|
+
export * from './operation-node/default-insert-value-node.js';
|
|
155
|
+
export * from './operation-node/aggregate-function-node.js';
|
|
156
|
+
export * from './operation-node/over-node.js';
|
|
157
|
+
export * from './operation-node/partition-by-node.js';
|
|
158
|
+
export * from './operation-node/partition-by-item-node.js';
|
|
159
|
+
export * from './operation-node/set-operation-node.js';
|
|
154
160
|
export * from './util/column-type.js';
|
|
155
161
|
export * from './util/compilable.js';
|
|
156
162
|
export * from './util/explainable.js';
|
|
157
163
|
export * from './util/log.js';
|
|
158
164
|
export { AnyColumn, UnknownRow, AnySelectQueryBuilder, } from './util/type-utils.js';
|
|
159
165
|
export { SelectExpression, SelectExpressionOrList, Selection, } from './parser/select-parser.js';
|
|
160
|
-
export { ReferenceExpression, ReferenceExpressionOrList, } from './parser/reference-parser.js';
|
|
166
|
+
export { ReferenceExpression, ReferenceExpressionOrList, StringReference, } from './parser/reference-parser.js';
|
|
161
167
|
export { ValueExpression, ValueExpressionOrList, } from './parser/value-parser.js';
|
|
162
168
|
export { FilterValueExpression, FilterValueExpressionOrList, ExistsExpression, FilterOperator, } from './parser/filter-parser.js';
|
|
163
169
|
export { TableExpression, TableExpressionOrList, } from './parser/table-parser.js';
|
|
@@ -165,4 +171,4 @@ export { JoinReferenceExpression, JoinCallbackExpression, } from './parser/join-
|
|
|
165
171
|
export { InsertObject } from './parser/insert-values-parser.js';
|
|
166
172
|
export { MutationObject } from './parser/update-set-parser.js';
|
|
167
173
|
export { OrderByExpression, OrderByDirectionExpression, } from './parser/order-by-parser.js';
|
|
168
|
-
export {
|
|
174
|
+
export { SetOperationExpression } from './parser/set-operation-parser.js';
|
package/dist/esm/index.js
CHANGED
|
@@ -11,11 +11,12 @@ export * from './query-builder/delete-query-builder.js';
|
|
|
11
11
|
export * from './query-builder/no-result-error.js';
|
|
12
12
|
export * from './query-builder/join-builder.js';
|
|
13
13
|
export * from './query-builder/expression-builder.js';
|
|
14
|
-
export * from './query-builder/function-
|
|
14
|
+
export * from './query-builder/function-module.js';
|
|
15
15
|
export * from './query-builder/insert-result.js';
|
|
16
16
|
export * from './query-builder/delete-result.js';
|
|
17
17
|
export * from './query-builder/update-result.js';
|
|
18
18
|
export * from './query-builder/on-conflict-builder.js';
|
|
19
|
+
export * from './query-builder/aggregate-function-builder.js';
|
|
19
20
|
export * from './raw-builder/raw-builder.js';
|
|
20
21
|
export * from './raw-builder/sql.js';
|
|
21
22
|
export * from './query-executor/query-executor.js';
|
|
@@ -143,7 +144,6 @@ export * from './operation-node/select-query-node.js';
|
|
|
143
144
|
export * from './operation-node/select-query-node.js';
|
|
144
145
|
export * from './operation-node/selection-node.js';
|
|
145
146
|
export * from './operation-node/table-node.js';
|
|
146
|
-
export * from './operation-node/union-node.js';
|
|
147
147
|
export * from './operation-node/unique-constraint-node.js';
|
|
148
148
|
export * from './operation-node/update-query-node.js';
|
|
149
149
|
export * from './operation-node/value-list-node.js';
|
|
@@ -152,6 +152,12 @@ export * from './operation-node/values-node.js';
|
|
|
152
152
|
export * from './operation-node/where-node.js';
|
|
153
153
|
export * from './operation-node/with-node.js';
|
|
154
154
|
export * from './operation-node/explain-node.js';
|
|
155
|
+
export * from './operation-node/default-insert-value-node.js';
|
|
156
|
+
export * from './operation-node/aggregate-function-node.js';
|
|
157
|
+
export * from './operation-node/over-node.js';
|
|
158
|
+
export * from './operation-node/partition-by-node.js';
|
|
159
|
+
export * from './operation-node/partition-by-item-node.js';
|
|
160
|
+
export * from './operation-node/set-operation-node.js';
|
|
155
161
|
export * from './util/column-type.js';
|
|
156
162
|
export * from './util/compilable.js';
|
|
157
163
|
export * from './util/explainable.js';
|
package/dist/esm/kysely.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { QueryCreator } from './query-creator.js';
|
|
|
6
6
|
import { KyselyPlugin } from './plugin/kysely-plugin.js';
|
|
7
7
|
import { DatabaseIntrospector } from './dialect/database-introspector.js';
|
|
8
8
|
import { Driver, IsolationLevel } from './driver/driver.js';
|
|
9
|
-
import {
|
|
9
|
+
import { FunctionModule } from './query-builder/function-module.js';
|
|
10
10
|
import { LogConfig } from './util/log.js';
|
|
11
11
|
import { QueryExecutorProvider } from './query-executor/query-executor-provider.js';
|
|
12
12
|
/**
|
|
@@ -72,7 +72,7 @@ export declare class Kysely<DB> extends QueryCreator<DB> implements QueryExecuto
|
|
|
72
72
|
*/
|
|
73
73
|
get introspection(): DatabaseIntrospector;
|
|
74
74
|
/**
|
|
75
|
-
* Returns a {@link
|
|
75
|
+
* Returns a {@link FunctionModule} that can be used to write type safe function
|
|
76
76
|
* calls.
|
|
77
77
|
*
|
|
78
78
|
* ```ts
|
|
@@ -99,7 +99,7 @@ export declare class Kysely<DB> extends QueryCreator<DB> implements QueryExecuto
|
|
|
99
99
|
* having count("pet"."id") > $1
|
|
100
100
|
* ```
|
|
101
101
|
*/
|
|
102
|
-
get fn():
|
|
102
|
+
get fn(): FunctionModule<DB, keyof DB>;
|
|
103
103
|
/**
|
|
104
104
|
* Creates a {@link TransactionBuilder} that can be used to run queries inside a transaction.
|
|
105
105
|
*
|
package/dist/esm/kysely.js
CHANGED
|
@@ -9,7 +9,7 @@ import { RuntimeDriver } from './driver/runtime-driver.js';
|
|
|
9
9
|
import { SingleConnectionProvider } from './driver/single-connection-provider.js';
|
|
10
10
|
import { TRANSACTION_ISOLATION_LEVELS, } from './driver/driver.js';
|
|
11
11
|
import { preventAwait } from './util/prevent-await.js';
|
|
12
|
-
import {
|
|
12
|
+
import { FunctionModule } from './query-builder/function-module.js';
|
|
13
13
|
import { Log } from './util/log.js';
|
|
14
14
|
/**
|
|
15
15
|
* The main Kysely class.
|
|
@@ -105,7 +105,7 @@ export class Kysely extends QueryCreator {
|
|
|
105
105
|
return this.#props.dialect.createIntrospector(this.withoutPlugins());
|
|
106
106
|
}
|
|
107
107
|
/**
|
|
108
|
-
* Returns a {@link
|
|
108
|
+
* Returns a {@link FunctionModule} that can be used to write type safe function
|
|
109
109
|
* calls.
|
|
110
110
|
*
|
|
111
111
|
* ```ts
|
|
@@ -133,7 +133,7 @@ export class Kysely extends QueryCreator {
|
|
|
133
133
|
* ```
|
|
134
134
|
*/
|
|
135
135
|
get fn() {
|
|
136
|
-
return new
|
|
136
|
+
return new FunctionModule();
|
|
137
137
|
}
|
|
138
138
|
/**
|
|
139
139
|
* Creates a {@link TransactionBuilder} that can be used to run queries inside a transaction.
|
|
@@ -29,8 +29,13 @@ export class FileMigrationProvider {
|
|
|
29
29
|
!fileName.endsWith('.d.ts')) {
|
|
30
30
|
const migration = await import(
|
|
31
31
|
/* webpackIgnore: true */ this.#props.path.join(this.#props.migrationFolder, fileName));
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
const migrationKey = fileName.substring(0, fileName.length - 3);
|
|
33
|
+
// Handle esModuleInterop export's `default` prop...
|
|
34
|
+
if (isMigration(migration?.default)) {
|
|
35
|
+
migrations[migrationKey] = migration.default;
|
|
36
|
+
}
|
|
37
|
+
else if (isMigration(migration)) {
|
|
38
|
+
migrations[migrationKey] = migration;
|
|
34
39
|
}
|
|
35
40
|
}
|
|
36
41
|
}
|