kysely 0.16.9 → 0.17.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/LICENSE +21 -0
- package/README.md +2 -2
- package/dist/cjs/dialect/mysql/mysql-adapter.js +3 -4
- package/dist/cjs/dialect/mysql/mysql-introspector.js +2 -1
- package/dist/cjs/dialect/postgres/postgres-adapter.js +3 -2
- package/dist/cjs/dialect/sqlite/sqlite-introspector.js +2 -1
- package/dist/cjs/driver/connection-provider.d.ts +1 -1
- package/dist/cjs/driver/default-connection-provider.d.ts +1 -1
- package/dist/cjs/driver/default-connection-provider.js +1 -1
- package/dist/cjs/driver/single-connection-provider.d.ts +1 -1
- package/dist/cjs/driver/single-connection-provider.js +1 -1
- package/dist/cjs/index-nodeless.d.ts +2 -0
- package/dist/cjs/index-nodeless.js +2 -0
- package/dist/cjs/kysely.d.ts +3 -6
- package/dist/cjs/kysely.js +30 -41
- package/dist/cjs/migration/migrator.js +4 -4
- package/dist/cjs/operation-node/delete-query-node.d.ts +7 -0
- package/dist/cjs/operation-node/delete-query-node.js +15 -0
- package/dist/cjs/operation-node/operation-node-transformer.js +1 -1
- package/dist/cjs/operation-node/raw-node.d.ts +4 -2
- package/dist/cjs/operation-node/raw-node.js +8 -2
- package/dist/cjs/parser/complex-expression-parser.d.ts +5 -5
- package/dist/cjs/parser/complex-expression-parser.js +5 -4
- package/dist/cjs/parser/filter-parser.d.ts +9 -9
- package/dist/cjs/parser/filter-parser.js +31 -30
- package/dist/cjs/parser/group-by-parser.d.ts +1 -2
- package/dist/cjs/parser/group-by-parser.js +2 -2
- package/dist/cjs/parser/insert-values-parser.d.ts +1 -2
- package/dist/cjs/parser/insert-values-parser.js +6 -6
- package/dist/cjs/parser/join-parser.d.ts +1 -2
- package/dist/cjs/parser/join-parser.js +8 -7
- package/dist/cjs/parser/order-by-parser.d.ts +1 -2
- package/dist/cjs/parser/order-by-parser.js +4 -4
- package/dist/cjs/parser/parse-utils.d.ts +10 -0
- package/dist/cjs/parser/parse-utils.js +38 -0
- package/dist/cjs/parser/reference-parser.d.ts +2 -3
- package/dist/cjs/parser/reference-parser.js +5 -5
- package/dist/cjs/parser/select-parser.d.ts +1 -2
- package/dist/cjs/parser/select-parser.js +5 -5
- package/dist/cjs/parser/table-parser.d.ts +2 -3
- package/dist/cjs/parser/table-parser.js +5 -5
- package/dist/cjs/parser/update-set-parser.d.ts +1 -2
- package/dist/cjs/parser/update-set-parser.js +2 -2
- package/dist/cjs/parser/value-parser.d.ts +3 -4
- package/dist/cjs/parser/value-parser.js +7 -7
- package/dist/cjs/parser/with-parser.d.ts +1 -2
- package/dist/cjs/parser/with-parser.js +3 -2
- package/dist/cjs/query-builder/delete-query-builder.d.ts +77 -20
- package/dist/cjs/query-builder/delete-query-builder.js +81 -14
- package/dist/cjs/query-builder/expression-builder.d.ts +4 -13
- package/dist/cjs/query-builder/expression-builder.js +12 -21
- package/dist/cjs/query-builder/function-builder.d.ts +2 -6
- package/dist/cjs/query-builder/function-builder.js +5 -8
- package/dist/cjs/query-builder/insert-query-builder.d.ts +11 -9
- package/dist/cjs/query-builder/insert-query-builder.js +8 -7
- package/dist/cjs/query-builder/join-builder.d.ts +0 -2
- package/dist/cjs/query-builder/join-builder.js +8 -8
- package/dist/cjs/query-builder/on-conflict-builder.d.ts +24 -20
- package/dist/cjs/query-builder/on-conflict-builder.js +17 -17
- package/dist/cjs/query-builder/returning-interface.d.ts +2 -2
- package/dist/cjs/query-builder/select-query-builder.d.ts +43 -32
- package/dist/cjs/query-builder/select-query-builder.js +28 -26
- package/dist/cjs/query-builder/update-query-builder.d.ts +29 -25
- package/dist/cjs/query-builder/update-query-builder.js +22 -20
- package/dist/cjs/query-builder/where-interface.d.ts +20 -16
- package/dist/cjs/query-compiler/default-query-compiler.js +16 -7
- package/dist/cjs/query-creator.d.ts +24 -138
- package/dist/cjs/query-creator.js +19 -145
- package/dist/cjs/query-executor/default-query-executor.d.ts +14 -3
- package/dist/cjs/query-executor/default-query-executor.js +15 -17
- package/dist/cjs/query-executor/noop-query-executor.d.ts +13 -2
- package/dist/cjs/query-executor/noop-query-executor.js +9 -2
- package/dist/cjs/query-executor/query-executor-provider.d.ts +8 -0
- package/dist/cjs/query-executor/query-executor-provider.js +2 -0
- package/dist/cjs/query-executor/query-executor.d.ts +14 -6
- package/dist/cjs/query-executor/query-executor.js +4 -2
- package/dist/cjs/raw-builder/raw-builder.d.ts +42 -11
- package/dist/cjs/raw-builder/raw-builder.js +55 -56
- package/dist/cjs/raw-builder/sql.d.ts +323 -0
- package/dist/cjs/raw-builder/sql.js +153 -0
- package/dist/cjs/schema/alter-table-builder.d.ts +20 -8
- package/dist/cjs/schema/alter-table-builder.js +3 -3
- package/dist/cjs/schema/column-definition-builder.d.ts +20 -8
- package/dist/cjs/schema/create-index-builder.d.ts +3 -1
- package/dist/cjs/schema/create-index-builder.js +3 -1
- package/dist/cjs/schema/create-table-builder.d.ts +6 -2
- package/dist/cjs/schema/create-table-builder.js +8 -4
- package/dist/cjs/schema/create-view-builder.d.ts +3 -3
- package/dist/cjs/schema/create-view-builder.js +3 -3
- package/dist/cjs/util/query-id.js +10 -4
- package/dist/cjs/util/random-string.js +65 -2
- package/dist/esm/dialect/mysql/mysql-adapter.js +3 -4
- package/dist/esm/dialect/mysql/mysql-introspector.js +2 -1
- package/dist/esm/dialect/postgres/postgres-adapter.js +3 -2
- package/dist/esm/dialect/sqlite/sqlite-introspector.js +2 -1
- package/dist/esm/driver/connection-provider.d.ts +1 -1
- package/dist/esm/driver/default-connection-provider.d.ts +1 -1
- package/dist/esm/driver/default-connection-provider.js +1 -1
- package/dist/esm/driver/single-connection-provider.d.ts +1 -1
- package/dist/esm/driver/single-connection-provider.js +1 -1
- package/dist/esm/index-nodeless.d.ts +2 -0
- package/dist/esm/index-nodeless.js +2 -0
- package/dist/esm/kysely.d.ts +3 -6
- package/dist/esm/kysely.js +30 -41
- package/dist/esm/migration/migrator.js +4 -4
- package/dist/esm/operation-node/delete-query-node.d.ts +7 -0
- package/dist/esm/operation-node/delete-query-node.js +15 -0
- package/dist/esm/operation-node/operation-node-transformer.js +1 -1
- package/dist/esm/operation-node/raw-node.d.ts +4 -2
- package/dist/esm/operation-node/raw-node.js +8 -2
- package/dist/esm/parser/complex-expression-parser.d.ts +5 -5
- package/dist/esm/parser/complex-expression-parser.js +5 -4
- package/dist/esm/parser/filter-parser.d.ts +9 -9
- package/dist/esm/parser/filter-parser.js +31 -30
- package/dist/esm/parser/group-by-parser.d.ts +1 -2
- package/dist/esm/parser/group-by-parser.js +2 -2
- package/dist/esm/parser/insert-values-parser.d.ts +1 -2
- package/dist/esm/parser/insert-values-parser.js +6 -6
- package/dist/esm/parser/join-parser.d.ts +1 -2
- package/dist/esm/parser/join-parser.js +8 -7
- package/dist/esm/parser/order-by-parser.d.ts +1 -2
- package/dist/esm/parser/order-by-parser.js +4 -4
- package/dist/esm/parser/parse-utils.d.ts +10 -0
- package/dist/esm/parser/parse-utils.js +32 -0
- package/dist/esm/parser/reference-parser.d.ts +2 -3
- package/dist/esm/parser/reference-parser.js +5 -5
- package/dist/esm/parser/select-parser.d.ts +1 -2
- package/dist/esm/parser/select-parser.js +5 -5
- package/dist/esm/parser/table-parser.d.ts +2 -3
- package/dist/esm/parser/table-parser.js +5 -5
- package/dist/esm/parser/update-set-parser.d.ts +1 -2
- package/dist/esm/parser/update-set-parser.js +2 -2
- package/dist/esm/parser/value-parser.d.ts +3 -4
- package/dist/esm/parser/value-parser.js +7 -7
- package/dist/esm/parser/with-parser.d.ts +1 -2
- package/dist/esm/parser/with-parser.js +3 -2
- package/dist/esm/query-builder/delete-query-builder.d.ts +77 -20
- package/dist/esm/query-builder/delete-query-builder.js +81 -14
- package/dist/esm/query-builder/expression-builder.d.ts +4 -13
- package/dist/esm/query-builder/expression-builder.js +12 -21
- package/dist/esm/query-builder/function-builder.d.ts +2 -6
- package/dist/esm/query-builder/function-builder.js +5 -8
- package/dist/esm/query-builder/insert-query-builder.d.ts +11 -9
- package/dist/esm/query-builder/insert-query-builder.js +8 -7
- package/dist/esm/query-builder/join-builder.d.ts +0 -2
- package/dist/esm/query-builder/join-builder.js +8 -8
- package/dist/esm/query-builder/on-conflict-builder.d.ts +24 -20
- package/dist/esm/query-builder/on-conflict-builder.js +17 -17
- package/dist/esm/query-builder/returning-interface.d.ts +2 -2
- package/dist/esm/query-builder/select-query-builder.d.ts +43 -32
- package/dist/esm/query-builder/select-query-builder.js +28 -26
- package/dist/esm/query-builder/update-query-builder.d.ts +29 -25
- package/dist/esm/query-builder/update-query-builder.js +22 -20
- package/dist/esm/query-builder/where-interface.d.ts +20 -16
- package/dist/esm/query-compiler/default-query-compiler.js +16 -7
- package/dist/esm/query-creator.d.ts +24 -138
- package/dist/esm/query-creator.js +19 -145
- package/dist/esm/query-executor/default-query-executor.d.ts +14 -3
- package/dist/esm/query-executor/default-query-executor.js +15 -17
- package/dist/esm/query-executor/noop-query-executor.d.ts +13 -2
- package/dist/esm/query-executor/noop-query-executor.js +8 -1
- package/dist/esm/query-executor/query-executor-provider.d.ts +8 -0
- package/dist/esm/query-executor/query-executor-provider.js +2 -0
- package/dist/esm/query-executor/query-executor.d.ts +14 -6
- package/dist/esm/query-executor/query-executor.js +4 -2
- package/dist/esm/raw-builder/raw-builder.d.ts +42 -11
- package/dist/esm/raw-builder/raw-builder.js +56 -57
- package/dist/esm/raw-builder/sql.d.ts +323 -0
- package/dist/esm/raw-builder/sql.js +151 -0
- package/dist/esm/schema/alter-table-builder.d.ts +20 -8
- package/dist/esm/schema/alter-table-builder.js +3 -3
- package/dist/esm/schema/column-definition-builder.d.ts +20 -8
- package/dist/esm/schema/create-index-builder.d.ts +3 -1
- package/dist/esm/schema/create-index-builder.js +3 -1
- package/dist/esm/schema/create-table-builder.d.ts +6 -2
- package/dist/esm/schema/create-table-builder.js +8 -4
- package/dist/esm/schema/create-view-builder.d.ts +3 -3
- package/dist/esm/schema/create-view-builder.js +3 -3
- package/dist/esm/util/query-id.js +10 -4
- package/dist/esm/util/random-string.js +65 -2
- package/package.json +13 -13
- package/dist/cjs/parser/parse-context.d.ts +0 -55
- package/dist/cjs/parser/parse-context.js +0 -50
- package/dist/cjs/util/private-symbols.d.ts +0 -5
- package/dist/cjs/util/private-symbols.js +0 -8
- package/dist/esm/parser/parse-context.d.ts +0 -55
- package/dist/esm/parser/parse-context.js +0 -47
- package/dist/esm/util/private-symbols.d.ts +0 -5
- package/dist/esm/util/private-symbols.js +0 -6
|
@@ -21,7 +21,7 @@ class InsertQueryBuilder {
|
|
|
21
21
|
this.#props = (0, object_utils_js_1.freeze)(props);
|
|
22
22
|
}
|
|
23
23
|
values(args) {
|
|
24
|
-
const [columns, values] = (0, insert_values_parser_js_1.parseInsertObjectOrList)(
|
|
24
|
+
const [columns, values] = (0, insert_values_parser_js_1.parseInsertObjectOrList)(args);
|
|
25
25
|
return new InsertQueryBuilder({
|
|
26
26
|
...this.#props,
|
|
27
27
|
queryNode: insert_query_node_js_1.InsertQueryNode.cloneWith(this.#props.queryNode, {
|
|
@@ -82,7 +82,7 @@ class InsertQueryBuilder {
|
|
|
82
82
|
return new InsertQueryBuilder({
|
|
83
83
|
...this.#props,
|
|
84
84
|
queryNode: insert_query_node_js_1.InsertQueryNode.cloneWith(this.#props.queryNode, {
|
|
85
|
-
values: (0, complex_expression_parser_js_1.parseComplexExpression)(
|
|
85
|
+
values: (0, complex_expression_parser_js_1.parseComplexExpression)(expression),
|
|
86
86
|
}),
|
|
87
87
|
});
|
|
88
88
|
}
|
|
@@ -176,6 +176,8 @@ class InsertQueryBuilder {
|
|
|
176
176
|
* the unique index is an expression index:
|
|
177
177
|
*
|
|
178
178
|
* ```ts
|
|
179
|
+
* import { sql } from 'kysely'
|
|
180
|
+
*
|
|
179
181
|
* await db
|
|
180
182
|
* .insertInto('pet')
|
|
181
183
|
* .values({
|
|
@@ -183,7 +185,7 @@ class InsertQueryBuilder {
|
|
|
183
185
|
* species: 'cat',
|
|
184
186
|
* })
|
|
185
187
|
* .onConflict((oc) => oc
|
|
186
|
-
* .expression(
|
|
188
|
+
* .expression(sql`lower(name)`)
|
|
187
189
|
* .doUpdateSet({ species: 'hamster' })
|
|
188
190
|
* )
|
|
189
191
|
* .execute()
|
|
@@ -271,7 +273,6 @@ class InsertQueryBuilder {
|
|
|
271
273
|
queryNode: insert_query_node_js_1.InsertQueryNode.cloneWith(this.#props.queryNode, {
|
|
272
274
|
onConflict: callback(new on_conflict_builder_js_1.OnConflictBuilder({
|
|
273
275
|
onConflictNode: on_conflict_node_js_1.OnConflictNode.create(),
|
|
274
|
-
parseContext: this.#props.parseContext,
|
|
275
276
|
})).toOperationNode(),
|
|
276
277
|
}),
|
|
277
278
|
});
|
|
@@ -298,14 +299,14 @@ class InsertQueryBuilder {
|
|
|
298
299
|
return new InsertQueryBuilder({
|
|
299
300
|
...this.#props,
|
|
300
301
|
queryNode: insert_query_node_js_1.InsertQueryNode.cloneWith(this.#props.queryNode, {
|
|
301
|
-
onDuplicateKey: on_duplicate_key_node_js_1.OnDuplicateKeyNode.create((0, update_set_parser_js_1.parseUpdateObject)(
|
|
302
|
+
onDuplicateKey: on_duplicate_key_node_js_1.OnDuplicateKeyNode.create((0, update_set_parser_js_1.parseUpdateObject)(updates)),
|
|
302
303
|
}),
|
|
303
304
|
});
|
|
304
305
|
}
|
|
305
306
|
returning(selection) {
|
|
306
307
|
return new InsertQueryBuilder({
|
|
307
308
|
...this.#props,
|
|
308
|
-
queryNode: query_node_js_1.QueryNode.cloneWithReturning(this.#props.queryNode, (0, select_parser_js_1.parseSelectExpressionOrList)(
|
|
309
|
+
queryNode: query_node_js_1.QueryNode.cloneWithReturning(this.#props.queryNode, (0, select_parser_js_1.parseSelectExpressionOrList)(selection)),
|
|
309
310
|
});
|
|
310
311
|
}
|
|
311
312
|
returningAll() {
|
|
@@ -415,7 +416,7 @@ class InsertQueryBuilder {
|
|
|
415
416
|
const compildQuery = this.compile();
|
|
416
417
|
const query = compildQuery.query;
|
|
417
418
|
const result = await this.#props.executor.executeQuery(compildQuery, this.#props.queryId);
|
|
418
|
-
if (this.#props.
|
|
419
|
+
if (this.#props.executor.adapter.supportsReturning && query.returning) {
|
|
419
420
|
return result.rows;
|
|
420
421
|
}
|
|
421
422
|
else {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { JoinNode } from '../operation-node/join-node.js';
|
|
2
2
|
import { OperationNodeSource } from '../operation-node/operation-node-source.js';
|
|
3
3
|
import { ExistsExpression, FilterOperator, FilterValueExpressionOrList } from '../parser/filter-parser.js';
|
|
4
|
-
import { ParseContext } from '../parser/parse-context.js';
|
|
5
4
|
import { ReferenceExpression } from '../parser/reference-parser.js';
|
|
6
5
|
import { AnyRawBuilder } from '../util/type-utils.js';
|
|
7
6
|
export declare class JoinBuilder<DB, TB extends keyof DB> implements OperationNodeSource {
|
|
@@ -71,5 +70,4 @@ export declare class JoinBuilder<DB, TB extends keyof DB> implements OperationNo
|
|
|
71
70
|
}
|
|
72
71
|
export interface JoinBuilderProps {
|
|
73
72
|
readonly joinNode: JoinNode;
|
|
74
|
-
readonly parseContext: ParseContext;
|
|
75
73
|
}
|
|
@@ -13,13 +13,13 @@ class JoinBuilder {
|
|
|
13
13
|
on(...args) {
|
|
14
14
|
return new JoinBuilder({
|
|
15
15
|
...this.#props,
|
|
16
|
-
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, (0, filter_parser_js_1.parseOnFilter)(
|
|
16
|
+
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, (0, filter_parser_js_1.parseOnFilter)(args)),
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
19
|
orOn(...args) {
|
|
20
20
|
return new JoinBuilder({
|
|
21
21
|
...this.#props,
|
|
22
|
-
joinNode: join_node_js_1.JoinNode.cloneWithOrOn(this.#props.joinNode, (0, filter_parser_js_1.parseOnFilter)(
|
|
22
|
+
joinNode: join_node_js_1.JoinNode.cloneWithOrOn(this.#props.joinNode, (0, filter_parser_js_1.parseOnFilter)(args)),
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
@@ -31,7 +31,7 @@ class JoinBuilder {
|
|
|
31
31
|
onRef(lhs, op, rhs) {
|
|
32
32
|
return new JoinBuilder({
|
|
33
33
|
...this.#props,
|
|
34
|
-
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, (0, filter_parser_js_1.parseReferenceFilter)(
|
|
34
|
+
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, (0, filter_parser_js_1.parseReferenceFilter)(lhs, op, rhs)),
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
/**
|
|
@@ -43,7 +43,7 @@ class JoinBuilder {
|
|
|
43
43
|
orOnRef(lhs, op, rhs) {
|
|
44
44
|
return new JoinBuilder({
|
|
45
45
|
...this.#props,
|
|
46
|
-
joinNode: join_node_js_1.JoinNode.cloneWithOrOn(this.#props.joinNode, (0, filter_parser_js_1.parseReferenceFilter)(
|
|
46
|
+
joinNode: join_node_js_1.JoinNode.cloneWithOrOn(this.#props.joinNode, (0, filter_parser_js_1.parseReferenceFilter)(lhs, op, rhs)),
|
|
47
47
|
});
|
|
48
48
|
}
|
|
49
49
|
/**
|
|
@@ -55,7 +55,7 @@ class JoinBuilder {
|
|
|
55
55
|
onExists(arg) {
|
|
56
56
|
return new JoinBuilder({
|
|
57
57
|
...this.#props,
|
|
58
|
-
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, (0, filter_parser_js_1.parseExistFilter)(
|
|
58
|
+
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, (0, filter_parser_js_1.parseExistFilter)(arg)),
|
|
59
59
|
});
|
|
60
60
|
}
|
|
61
61
|
/**
|
|
@@ -67,7 +67,7 @@ class JoinBuilder {
|
|
|
67
67
|
onNotExists(arg) {
|
|
68
68
|
return new JoinBuilder({
|
|
69
69
|
...this.#props,
|
|
70
|
-
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, (0, filter_parser_js_1.parseNotExistFilter)(
|
|
70
|
+
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, (0, filter_parser_js_1.parseNotExistFilter)(arg)),
|
|
71
71
|
});
|
|
72
72
|
}
|
|
73
73
|
/**
|
|
@@ -79,7 +79,7 @@ class JoinBuilder {
|
|
|
79
79
|
orOnExists(arg) {
|
|
80
80
|
return new JoinBuilder({
|
|
81
81
|
...this.#props,
|
|
82
|
-
joinNode: join_node_js_1.JoinNode.cloneWithOrOn(this.#props.joinNode, (0, filter_parser_js_1.parseExistFilter)(
|
|
82
|
+
joinNode: join_node_js_1.JoinNode.cloneWithOrOn(this.#props.joinNode, (0, filter_parser_js_1.parseExistFilter)(arg)),
|
|
83
83
|
});
|
|
84
84
|
}
|
|
85
85
|
/**
|
|
@@ -91,7 +91,7 @@ class JoinBuilder {
|
|
|
91
91
|
orOnNotExists(arg) {
|
|
92
92
|
return new JoinBuilder({
|
|
93
93
|
...this.#props,
|
|
94
|
-
joinNode: join_node_js_1.JoinNode.cloneWithOrOn(this.#props.joinNode, (0, filter_parser_js_1.parseNotExistFilter)(
|
|
94
|
+
joinNode: join_node_js_1.JoinNode.cloneWithOrOn(this.#props.joinNode, (0, filter_parser_js_1.parseNotExistFilter)(arg)),
|
|
95
95
|
});
|
|
96
96
|
}
|
|
97
97
|
toOperationNode() {
|
|
@@ -2,7 +2,6 @@ import { OnConflictNode } from '../operation-node/on-conflict-node.js';
|
|
|
2
2
|
import { OperationNodeSource } from '../operation-node/operation-node-source.js';
|
|
3
3
|
import { ComplexExpression } from '../parser/complex-expression-parser.js';
|
|
4
4
|
import { WhereGrouper, FilterOperator, FilterValueExpressionOrList } from '../parser/filter-parser.js';
|
|
5
|
-
import { ParseContext } from '../parser/parse-context.js';
|
|
6
5
|
import { ReferenceExpression } from '../parser/reference-parser.js';
|
|
7
6
|
import { MutationObject } from '../parser/update-set-parser.js';
|
|
8
7
|
import { AnyColumn, AnyRawBuilder } from '../util/type-utils.js';
|
|
@@ -70,7 +69,7 @@ export declare class OnConflictBuilder<DB, TB extends keyof DB> implements Where
|
|
|
70
69
|
* ```
|
|
71
70
|
*
|
|
72
71
|
* Operator can be any supported operator or if the typings don't support it
|
|
73
|
-
* you can always use `
|
|
72
|
+
* you can always use `sql\`your operator\``.
|
|
74
73
|
*
|
|
75
74
|
* ```ts
|
|
76
75
|
* const persons = await db
|
|
@@ -140,7 +139,7 @@ export declare class OnConflictBuilder<DB, TB extends keyof DB> implements Where
|
|
|
140
139
|
*
|
|
141
140
|
* A `where in` query can be built by using the `in` operator and an array
|
|
142
141
|
* of values. The values in the array can also be subqueries or raw
|
|
143
|
-
*
|
|
142
|
+
* {@link sql} expressions.
|
|
144
143
|
*
|
|
145
144
|
* ```ts
|
|
146
145
|
* const persons = await db
|
|
@@ -156,15 +155,17 @@ export declare class OnConflictBuilder<DB, TB extends keyof DB> implements Where
|
|
|
156
155
|
* select * from "person" where "id" in ($1, $2, $3)
|
|
157
156
|
* ```
|
|
158
157
|
*
|
|
159
|
-
* If everything else fails, you can always
|
|
158
|
+
* If everything else fails, you can always use the {@link sql} tag
|
|
160
159
|
* as any of the arguments, including the operator:
|
|
161
160
|
*
|
|
162
161
|
* ```ts
|
|
162
|
+
* import { sql } from 'kysely'
|
|
163
|
+
*
|
|
163
164
|
* const persons = await db
|
|
164
165
|
* .selectFrom('person')
|
|
165
166
|
* .selectAll()
|
|
166
167
|
* .where(
|
|
167
|
-
*
|
|
168
|
+
* sql`coalesce(first_name, last_name)`,
|
|
168
169
|
* 'like',
|
|
169
170
|
* '%' + name + '%',
|
|
170
171
|
* )
|
|
@@ -199,24 +200,25 @@ export declare class OnConflictBuilder<DB, TB extends keyof DB> implements Where
|
|
|
199
200
|
* ```
|
|
200
201
|
*
|
|
201
202
|
* In all examples above the columns were known at compile time
|
|
202
|
-
* (except for the
|
|
203
|
-
* you to refer to columns that exist in the database **and**
|
|
204
|
-
* referred to in the current query and context.
|
|
203
|
+
* (except for the raw {@link sql} expressions). By default kysely only
|
|
204
|
+
* allows you to refer to columns that exist in the database **and**
|
|
205
|
+
* can be referred to in the current query and context.
|
|
205
206
|
*
|
|
206
207
|
* Sometimes you may want to refer to columns that come from the user
|
|
207
208
|
* input and thus are not available at compile time.
|
|
208
209
|
*
|
|
209
|
-
* You have two options,
|
|
210
|
+
* You have two options, the {@link sql} tag or `db.dynamic`. The example below
|
|
210
211
|
* uses both:
|
|
211
212
|
*
|
|
212
213
|
* ```ts
|
|
214
|
+
* import { sql } from 'kysely'
|
|
213
215
|
* const { ref } = db.dynamic
|
|
214
216
|
*
|
|
215
217
|
* const persons = await db
|
|
216
218
|
* .selectFrom('person')
|
|
217
219
|
* .selectAll()
|
|
218
220
|
* .where(ref(columnFromUserInput), '=', 1)
|
|
219
|
-
* .orWhere(
|
|
221
|
+
* .orWhere(sql.id(columnFromUserInput), '=', 2)
|
|
220
222
|
* .execute()
|
|
221
223
|
* ```
|
|
222
224
|
*/
|
|
@@ -381,7 +383,6 @@ export declare class OnConflictBuilder<DB, TB extends keyof DB> implements Where
|
|
|
381
383
|
}
|
|
382
384
|
export interface OnConflictBuilderProps {
|
|
383
385
|
readonly onConflictNode: OnConflictNode;
|
|
384
|
-
readonly parseContext: ParseContext;
|
|
385
386
|
}
|
|
386
387
|
export declare type OnConflictDatabase<DB, TB extends keyof DB> = {
|
|
387
388
|
[K in keyof DB | 'excluded']: K extends keyof DB ? DB[K] : DB[TB];
|
|
@@ -425,7 +426,7 @@ export declare class OnConflictUpdateBuilder<DB, TB extends keyof DB> implements
|
|
|
425
426
|
* ```
|
|
426
427
|
*
|
|
427
428
|
* Operator can be any supported operator or if the typings don't support it
|
|
428
|
-
* you can always use `
|
|
429
|
+
* you can always use `sql\`your operator\``.
|
|
429
430
|
*
|
|
430
431
|
* ```ts
|
|
431
432
|
* const persons = await db
|
|
@@ -495,7 +496,7 @@ export declare class OnConflictUpdateBuilder<DB, TB extends keyof DB> implements
|
|
|
495
496
|
*
|
|
496
497
|
* A `where in` query can be built by using the `in` operator and an array
|
|
497
498
|
* of values. The values in the array can also be subqueries or raw
|
|
498
|
-
*
|
|
499
|
+
* {@link sql} expressions.
|
|
499
500
|
*
|
|
500
501
|
* ```ts
|
|
501
502
|
* const persons = await db
|
|
@@ -511,15 +512,17 @@ export declare class OnConflictUpdateBuilder<DB, TB extends keyof DB> implements
|
|
|
511
512
|
* select * from "person" where "id" in ($1, $2, $3)
|
|
512
513
|
* ```
|
|
513
514
|
*
|
|
514
|
-
* If everything else fails, you can always
|
|
515
|
+
* If everything else fails, you can always use the {@link sql} tag
|
|
515
516
|
* as any of the arguments, including the operator:
|
|
516
517
|
*
|
|
517
518
|
* ```ts
|
|
519
|
+
* import { sql } from 'kysely'
|
|
520
|
+
*
|
|
518
521
|
* const persons = await db
|
|
519
522
|
* .selectFrom('person')
|
|
520
523
|
* .selectAll()
|
|
521
524
|
* .where(
|
|
522
|
-
*
|
|
525
|
+
* sql`coalesce(first_name, last_name)`,
|
|
523
526
|
* 'like',
|
|
524
527
|
* '%' + name + '%',
|
|
525
528
|
* )
|
|
@@ -554,24 +557,25 @@ export declare class OnConflictUpdateBuilder<DB, TB extends keyof DB> implements
|
|
|
554
557
|
* ```
|
|
555
558
|
*
|
|
556
559
|
* In all examples above the columns were known at compile time
|
|
557
|
-
* (except for the
|
|
558
|
-
* you to refer to columns that exist in the database **and**
|
|
559
|
-
* referred to in the current query and context.
|
|
560
|
+
* (except for the raw {@link sql} expressions). By default kysely only
|
|
561
|
+
* allows you to refer to columns that exist in the database **and**
|
|
562
|
+
* can be referred to in the current query and context.
|
|
560
563
|
*
|
|
561
564
|
* Sometimes you may want to refer to columns that come from the user
|
|
562
565
|
* input and thus are not available at compile time.
|
|
563
566
|
*
|
|
564
|
-
* You have two options,
|
|
567
|
+
* You have two options, the {@link sql} tag or `db.dynamic`. The example below
|
|
565
568
|
* uses both:
|
|
566
569
|
*
|
|
567
570
|
* ```ts
|
|
571
|
+
* import { sql } from 'kysely'
|
|
568
572
|
* const { ref } = db.dynamic
|
|
569
573
|
*
|
|
570
574
|
* const persons = await db
|
|
571
575
|
* .selectFrom('person')
|
|
572
576
|
* .selectAll()
|
|
573
577
|
* .where(ref(columnFromUserInput), '=', 1)
|
|
574
|
-
* .orWhere(
|
|
578
|
+
* .orWhere(sql.id(columnFromUserInput), '=', 2)
|
|
575
579
|
* .execute()
|
|
576
580
|
* ```
|
|
577
581
|
*/
|
|
@@ -80,7 +80,7 @@ class OnConflictBuilder {
|
|
|
80
80
|
where(...args) {
|
|
81
81
|
return new OnConflictBuilder({
|
|
82
82
|
...this.#props,
|
|
83
|
-
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseWhereFilter)(
|
|
83
|
+
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseWhereFilter)(args)),
|
|
84
84
|
});
|
|
85
85
|
}
|
|
86
86
|
/**
|
|
@@ -91,13 +91,13 @@ class OnConflictBuilder {
|
|
|
91
91
|
whereRef(lhs, op, rhs) {
|
|
92
92
|
return new OnConflictBuilder({
|
|
93
93
|
...this.#props,
|
|
94
|
-
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseReferenceFilter)(
|
|
94
|
+
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseReferenceFilter)(lhs, op, rhs)),
|
|
95
95
|
});
|
|
96
96
|
}
|
|
97
97
|
orWhere(...args) {
|
|
98
98
|
return new OnConflictBuilder({
|
|
99
99
|
...this.#props,
|
|
100
|
-
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexOrWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseWhereFilter)(
|
|
100
|
+
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexOrWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseWhereFilter)(args)),
|
|
101
101
|
});
|
|
102
102
|
}
|
|
103
103
|
/**
|
|
@@ -108,7 +108,7 @@ class OnConflictBuilder {
|
|
|
108
108
|
orWhereRef(lhs, op, rhs) {
|
|
109
109
|
return new OnConflictBuilder({
|
|
110
110
|
...this.#props,
|
|
111
|
-
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexOrWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseReferenceFilter)(
|
|
111
|
+
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexOrWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseReferenceFilter)(lhs, op, rhs)),
|
|
112
112
|
});
|
|
113
113
|
}
|
|
114
114
|
/**
|
|
@@ -119,7 +119,7 @@ class OnConflictBuilder {
|
|
|
119
119
|
whereExists(arg) {
|
|
120
120
|
return new OnConflictBuilder({
|
|
121
121
|
...this.#props,
|
|
122
|
-
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseExistFilter)(
|
|
122
|
+
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseExistFilter)(arg)),
|
|
123
123
|
});
|
|
124
124
|
}
|
|
125
125
|
/**
|
|
@@ -130,7 +130,7 @@ class OnConflictBuilder {
|
|
|
130
130
|
whereNotExists(arg) {
|
|
131
131
|
return new OnConflictBuilder({
|
|
132
132
|
...this.#props,
|
|
133
|
-
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseNotExistFilter)(
|
|
133
|
+
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseNotExistFilter)(arg)),
|
|
134
134
|
});
|
|
135
135
|
}
|
|
136
136
|
/**
|
|
@@ -141,7 +141,7 @@ class OnConflictBuilder {
|
|
|
141
141
|
orWhereExists(arg) {
|
|
142
142
|
return new OnConflictBuilder({
|
|
143
143
|
...this.#props,
|
|
144
|
-
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexOrWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseExistFilter)(
|
|
144
|
+
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexOrWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseExistFilter)(arg)),
|
|
145
145
|
});
|
|
146
146
|
}
|
|
147
147
|
/**
|
|
@@ -152,7 +152,7 @@ class OnConflictBuilder {
|
|
|
152
152
|
orWhereNotExists(arg) {
|
|
153
153
|
return new OnConflictBuilder({
|
|
154
154
|
...this.#props,
|
|
155
|
-
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexOrWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseNotExistFilter)(
|
|
155
|
+
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithIndexOrWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseNotExistFilter)(arg)),
|
|
156
156
|
});
|
|
157
157
|
}
|
|
158
158
|
/**
|
|
@@ -214,7 +214,7 @@ class OnConflictBuilder {
|
|
|
214
214
|
return new OnConflictUpdateBuilder({
|
|
215
215
|
...this.#props,
|
|
216
216
|
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWith(this.#props.onConflictNode, {
|
|
217
|
-
updates: (0, update_set_parser_js_1.parseUpdateObject)(
|
|
217
|
+
updates: (0, update_set_parser_js_1.parseUpdateObject)(updates),
|
|
218
218
|
}),
|
|
219
219
|
});
|
|
220
220
|
}
|
|
@@ -240,7 +240,7 @@ class OnConflictUpdateBuilder {
|
|
|
240
240
|
where(...args) {
|
|
241
241
|
return new OnConflictUpdateBuilder({
|
|
242
242
|
...this.#props,
|
|
243
|
-
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseWhereFilter)(
|
|
243
|
+
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseWhereFilter)(args)),
|
|
244
244
|
});
|
|
245
245
|
}
|
|
246
246
|
/**
|
|
@@ -251,13 +251,13 @@ class OnConflictUpdateBuilder {
|
|
|
251
251
|
whereRef(lhs, op, rhs) {
|
|
252
252
|
return new OnConflictUpdateBuilder({
|
|
253
253
|
...this.#props,
|
|
254
|
-
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseReferenceFilter)(
|
|
254
|
+
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseReferenceFilter)(lhs, op, rhs)),
|
|
255
255
|
});
|
|
256
256
|
}
|
|
257
257
|
orWhere(...args) {
|
|
258
258
|
return new OnConflictUpdateBuilder({
|
|
259
259
|
...this.#props,
|
|
260
|
-
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateOrWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseWhereFilter)(
|
|
260
|
+
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateOrWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseWhereFilter)(args)),
|
|
261
261
|
});
|
|
262
262
|
}
|
|
263
263
|
/**
|
|
@@ -268,7 +268,7 @@ class OnConflictUpdateBuilder {
|
|
|
268
268
|
orWhereRef(lhs, op, rhs) {
|
|
269
269
|
return new OnConflictUpdateBuilder({
|
|
270
270
|
...this.#props,
|
|
271
|
-
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateOrWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseReferenceFilter)(
|
|
271
|
+
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateOrWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseReferenceFilter)(lhs, op, rhs)),
|
|
272
272
|
});
|
|
273
273
|
}
|
|
274
274
|
/**
|
|
@@ -279,7 +279,7 @@ class OnConflictUpdateBuilder {
|
|
|
279
279
|
whereExists(arg) {
|
|
280
280
|
return new OnConflictUpdateBuilder({
|
|
281
281
|
...this.#props,
|
|
282
|
-
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseExistFilter)(
|
|
282
|
+
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseExistFilter)(arg)),
|
|
283
283
|
});
|
|
284
284
|
}
|
|
285
285
|
/**
|
|
@@ -290,7 +290,7 @@ class OnConflictUpdateBuilder {
|
|
|
290
290
|
whereNotExists(arg) {
|
|
291
291
|
return new OnConflictUpdateBuilder({
|
|
292
292
|
...this.#props,
|
|
293
|
-
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseNotExistFilter)(
|
|
293
|
+
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseNotExistFilter)(arg)),
|
|
294
294
|
});
|
|
295
295
|
}
|
|
296
296
|
/**
|
|
@@ -301,7 +301,7 @@ class OnConflictUpdateBuilder {
|
|
|
301
301
|
orWhereExists(arg) {
|
|
302
302
|
return new OnConflictUpdateBuilder({
|
|
303
303
|
...this.#props,
|
|
304
|
-
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateOrWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseExistFilter)(
|
|
304
|
+
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateOrWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseExistFilter)(arg)),
|
|
305
305
|
});
|
|
306
306
|
}
|
|
307
307
|
/**
|
|
@@ -312,7 +312,7 @@ class OnConflictUpdateBuilder {
|
|
|
312
312
|
orWhereNotExists(arg) {
|
|
313
313
|
return new OnConflictUpdateBuilder({
|
|
314
314
|
...this.#props,
|
|
315
|
-
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateOrWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseNotExistFilter)(
|
|
315
|
+
onConflictNode: on_conflict_node_js_1.OnConflictNode.cloneWithUpdateOrWhere(this.#props.onConflictNode, (0, filter_parser_js_1.parseNotExistFilter)(arg)),
|
|
316
316
|
});
|
|
317
317
|
}
|
|
318
318
|
toOperationNode() {
|
|
@@ -45,7 +45,7 @@ export interface ReturningInterface<DB, TB extends keyof DB, O> {
|
|
|
45
45
|
* Return arbitrary expressions:
|
|
46
46
|
*
|
|
47
47
|
* ```ts
|
|
48
|
-
*
|
|
48
|
+
* import { sql } from 'kysely'
|
|
49
49
|
*
|
|
50
50
|
* const { id, full_name, first_pet_id } = await db
|
|
51
51
|
* .insertInto('person')
|
|
@@ -55,7 +55,7 @@ export interface ReturningInterface<DB, TB extends keyof DB, O> {
|
|
|
55
55
|
* })
|
|
56
56
|
* .returning([
|
|
57
57
|
* 'id as id',
|
|
58
|
-
*
|
|
58
|
+
* sql<string>`concat(first_name, ' ', last_name)`.as('full_name'),
|
|
59
59
|
* (qb) => qb.selectFrom('pets').select('pet.id').limit(1).as('first_pet_id')
|
|
60
60
|
* ])
|
|
61
61
|
* .executeTakeFirst()
|