kysely 0.23.5 → 0.24.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 +46 -24
- package/dist/cjs/dialect/mysql/mysql-adapter.js +2 -2
- package/dist/cjs/dialect/mysql/mysql-driver.d.ts +1 -1
- package/dist/cjs/dialect/mysql/mysql-driver.js +1 -1
- package/dist/cjs/dialect/postgres/postgres-adapter.js +1 -1
- package/dist/cjs/dialect/sqlite/sqlite-dialect.d.ts +1 -0
- package/dist/cjs/dialect/sqlite/sqlite-dialect.js +1 -0
- package/dist/cjs/driver/runtime-driver.js +4 -2
- package/dist/cjs/expression/expression-builder.d.ts +386 -0
- package/dist/cjs/expression/expression-builder.js +92 -0
- package/dist/cjs/expression/expression-wrapper.d.ts +92 -0
- package/dist/cjs/expression/expression-wrapper.js +54 -0
- package/dist/cjs/expression/expression.d.ts +1 -1
- package/dist/cjs/helpers/postgres.d.ts +133 -0
- package/dist/cjs/helpers/postgres.js +141 -0
- package/dist/cjs/index.d.ts +4 -3
- package/dist/cjs/index.js +4 -2
- package/dist/cjs/kysely.d.ts +10 -0
- package/dist/cjs/kysely.js +12 -1
- package/dist/cjs/migration/file-migration-provider.d.ts +5 -2
- package/dist/cjs/migration/migrator.d.ts +5 -2
- package/dist/cjs/operation-node/aggregate-function-node.d.ts +3 -3
- package/dist/cjs/operation-node/create-index-node.d.ts +2 -0
- package/dist/cjs/operation-node/delete-query-node.d.ts +0 -1
- package/dist/cjs/operation-node/delete-query-node.js +0 -6
- package/dist/cjs/operation-node/function-node.d.ts +13 -0
- package/dist/cjs/operation-node/function-node.js +19 -0
- 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 +2 -0
- package/dist/cjs/operation-node/operation-node-visitor.js +1 -0
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/operator-node.d.ts +13 -2
- package/dist/cjs/operation-node/operator-node.js +38 -3
- package/dist/cjs/operation-node/query-node.d.ts +25 -8
- package/dist/cjs/operation-node/query-node.js +9 -2
- package/dist/cjs/operation-node/select-query-node.d.ts +0 -1
- package/dist/cjs/operation-node/select-query-node.js +0 -6
- package/dist/cjs/operation-node/update-query-node.d.ts +0 -1
- package/dist/cjs/operation-node/update-query-node.js +0 -6
- package/dist/cjs/parser/binary-operation-parser.d.ts +9 -10
- package/dist/cjs/parser/binary-operation-parser.js +89 -39
- package/dist/cjs/parser/coalesce-parser.d.ts +0 -2
- package/dist/cjs/parser/coalesce-parser.js +0 -9
- package/dist/cjs/parser/expression-parser.d.ts +7 -3
- package/dist/cjs/parser/expression-parser.js +3 -3
- package/dist/cjs/parser/group-by-parser.d.ts +3 -2
- package/dist/cjs/parser/group-by-parser.js +3 -0
- package/dist/cjs/parser/insert-values-parser.d.ts +4 -1
- package/dist/cjs/parser/insert-values-parser.js +19 -13
- package/dist/cjs/parser/join-parser.js +1 -1
- package/dist/cjs/parser/parse-utils.d.ts +0 -2
- package/dist/cjs/parser/parse-utils.js +1 -8
- package/dist/cjs/parser/returning-parser.d.ts +2 -1
- package/dist/cjs/parser/select-parser.d.ts +5 -13
- package/dist/cjs/parser/select-parser.js +8 -4
- package/dist/cjs/parser/table-parser.d.ts +5 -3
- package/dist/cjs/parser/unary-operation-parser.d.ts +5 -2
- package/dist/cjs/parser/unary-operation-parser.js +9 -8
- package/dist/cjs/parser/update-set-parser.d.ts +4 -1
- package/dist/cjs/parser/update-set-parser.js +9 -4
- package/dist/cjs/parser/value-parser.d.ts +5 -0
- package/dist/cjs/parser/value-parser.js +1 -3
- package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +1 -1
- package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
- package/dist/cjs/query-builder/aggregate-function-builder.d.ts +40 -113
- package/dist/cjs/query-builder/aggregate-function-builder.js +23 -63
- package/dist/cjs/query-builder/delete-query-builder.d.ts +220 -201
- package/dist/cjs/query-builder/delete-query-builder.js +21 -27
- package/dist/cjs/query-builder/delete-result.js +3 -0
- package/dist/cjs/query-builder/deprecated-having-expression-builder.d.ts +62 -0
- package/dist/cjs/query-builder/deprecated-having-expression-builder.js +2 -0
- package/dist/cjs/query-builder/deprecated-on-expression-builder.d.ts +62 -0
- package/dist/cjs/query-builder/deprecated-on-expression-builder.js +2 -0
- package/dist/cjs/query-builder/deprecated-where-expression-builder.d.ts +62 -0
- package/dist/cjs/query-builder/deprecated-where-expression-builder.js +2 -0
- package/dist/cjs/query-builder/function-module.d.ts +40 -12
- package/dist/cjs/query-builder/function-module.js +43 -329
- package/dist/cjs/query-builder/having-interface.d.ts +19 -16
- package/dist/cjs/query-builder/insert-query-builder.d.ts +75 -26
- package/dist/cjs/query-builder/insert-query-builder.js +21 -29
- package/dist/cjs/query-builder/insert-result.js +3 -0
- package/dist/cjs/query-builder/join-builder.d.ts +23 -26
- package/dist/cjs/query-builder/join-builder.js +17 -22
- package/dist/cjs/query-builder/no-result-error.d.ts +1 -0
- package/dist/cjs/query-builder/no-result-error.js +5 -1
- package/dist/cjs/query-builder/on-conflict-builder.d.ts +158 -276
- package/dist/cjs/query-builder/on-conflict-builder.js +52 -36
- package/dist/cjs/query-builder/over-builder.d.ts +5 -0
- package/dist/cjs/query-builder/over-builder.js +7 -0
- package/dist/cjs/query-builder/returning-interface.d.ts +2 -2
- package/dist/cjs/query-builder/select-query-builder.d.ts +148 -237
- package/dist/cjs/query-builder/select-query-builder.js +333 -78
- package/dist/cjs/query-builder/update-query-builder.d.ts +145 -213
- package/dist/cjs/query-builder/update-query-builder.js +21 -115
- package/dist/cjs/query-builder/update-result.js +3 -0
- package/dist/cjs/query-builder/where-interface.d.ts +71 -184
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +3 -0
- package/dist/cjs/query-compiler/default-query-compiler.js +17 -1
- package/dist/cjs/query-creator.d.ts +9 -2
- package/dist/cjs/query-creator.js +1 -24
- package/dist/cjs/query-executor/query-executor.d.ts +3 -3
- package/dist/cjs/raw-builder/raw-builder.d.ts +5 -3
- package/dist/cjs/raw-builder/raw-builder.js +13 -7
- package/dist/cjs/raw-builder/sql.d.ts +17 -9
- package/dist/cjs/raw-builder/sql.js +8 -2
- package/dist/cjs/schema/alter-column-builder.d.ts +5 -0
- package/dist/cjs/schema/alter-column-builder.js +7 -0
- package/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.d.ts +5 -0
- package/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.js +7 -0
- package/dist/cjs/schema/alter-table-drop-constraint-builder.d.ts +5 -0
- package/dist/cjs/schema/alter-table-drop-constraint-builder.js +7 -0
- package/dist/cjs/schema/column-definition-builder.d.ts +6 -1
- package/dist/cjs/schema/column-definition-builder.js +8 -1
- package/dist/cjs/schema/create-index-builder.d.ts +51 -9
- package/dist/cjs/schema/create-index-builder.js +17 -0
- package/dist/cjs/schema/create-schema-builder.d.ts +5 -0
- package/dist/cjs/schema/create-schema-builder.js +7 -0
- package/dist/cjs/schema/create-table-builder.d.ts +3 -1
- package/dist/cjs/schema/create-table-builder.js +3 -1
- package/dist/cjs/schema/create-type-builder.d.ts +5 -0
- package/dist/cjs/schema/create-type-builder.js +7 -0
- package/dist/cjs/schema/create-view-builder.d.ts +5 -0
- package/dist/cjs/schema/create-view-builder.js +7 -0
- package/dist/cjs/schema/drop-index-builder.d.ts +5 -0
- package/dist/cjs/schema/drop-index-builder.js +7 -0
- package/dist/cjs/schema/drop-schema-builder.d.ts +5 -0
- package/dist/cjs/schema/drop-schema-builder.js +7 -0
- package/dist/cjs/schema/drop-table-builder.d.ts +5 -0
- package/dist/cjs/schema/drop-table-builder.js +7 -0
- package/dist/cjs/schema/drop-type-builder.d.ts +5 -0
- package/dist/cjs/schema/drop-type-builder.js +7 -0
- package/dist/cjs/schema/drop-view-builder.d.ts +5 -0
- package/dist/cjs/schema/drop-view-builder.js +7 -0
- package/dist/cjs/schema/foreign-key-constraint-builder.d.ts +5 -0
- package/dist/cjs/schema/foreign-key-constraint-builder.js +7 -0
- package/dist/cjs/util/compilable.d.ts +1 -0
- package/dist/cjs/util/compilable.js +6 -0
- package/dist/cjs/util/explainable.d.ts +35 -0
- package/dist/cjs/util/log.d.ts +2 -0
- package/dist/cjs/util/object-utils.js +1 -1
- package/dist/cjs/util/streamable.d.ts +29 -0
- package/dist/cjs/util/streamable.js +2 -0
- package/dist/cjs/util/type-utils.d.ts +1 -0
- package/dist/esm/dialect/mysql/mysql-adapter.js +2 -2
- package/dist/esm/dialect/mysql/mysql-driver.d.ts +1 -1
- package/dist/esm/dialect/mysql/mysql-driver.js +1 -1
- package/dist/esm/dialect/postgres/postgres-adapter.js +1 -1
- package/dist/esm/dialect/sqlite/sqlite-dialect.d.ts +1 -0
- package/dist/esm/dialect/sqlite/sqlite-dialect.js +1 -0
- package/dist/esm/driver/runtime-driver.js +4 -2
- package/dist/esm/expression/expression-builder.d.ts +386 -0
- package/dist/esm/expression/expression-builder.js +88 -0
- package/dist/esm/expression/expression-wrapper.d.ts +92 -0
- package/dist/esm/expression/expression-wrapper.js +50 -0
- package/dist/esm/expression/expression.d.ts +1 -1
- package/dist/esm/helpers/postgres.d.ts +133 -0
- package/dist/esm/helpers/postgres.js +136 -0
- package/dist/esm/index.d.ts +4 -3
- package/dist/esm/index.js +2 -1
- package/dist/esm/kysely.d.ts +10 -0
- package/dist/esm/kysely.js +13 -2
- package/dist/esm/migration/file-migration-provider.d.ts +5 -2
- package/dist/esm/migration/migrator.d.ts +5 -2
- package/dist/esm/operation-node/aggregate-function-node.d.ts +3 -3
- package/dist/esm/operation-node/create-index-node.d.ts +2 -0
- package/dist/esm/operation-node/delete-query-node.d.ts +0 -1
- package/dist/esm/operation-node/delete-query-node.js +0 -6
- package/dist/esm/operation-node/function-node.d.ts +13 -0
- package/dist/esm/operation-node/function-node.js +17 -0
- 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 +2 -0
- package/dist/esm/operation-node/operation-node-visitor.js +1 -0
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/operator-node.d.ts +13 -2
- package/dist/esm/operation-node/operator-node.js +34 -3
- package/dist/esm/operation-node/query-node.d.ts +25 -8
- package/dist/esm/operation-node/query-node.js +9 -2
- package/dist/esm/operation-node/select-query-node.d.ts +0 -1
- package/dist/esm/operation-node/select-query-node.js +0 -6
- package/dist/esm/operation-node/update-query-node.d.ts +0 -1
- package/dist/esm/operation-node/update-query-node.js +0 -6
- package/dist/esm/parser/binary-operation-parser.d.ts +9 -10
- package/dist/esm/parser/binary-operation-parser.js +85 -37
- package/dist/esm/parser/coalesce-parser.d.ts +0 -2
- package/dist/esm/parser/coalesce-parser.js +1 -7
- package/dist/esm/parser/expression-parser.d.ts +7 -3
- package/dist/esm/parser/expression-parser.js +3 -3
- package/dist/esm/parser/group-by-parser.d.ts +3 -2
- package/dist/esm/parser/group-by-parser.js +3 -0
- package/dist/esm/parser/insert-values-parser.d.ts +4 -1
- package/dist/esm/parser/insert-values-parser.js +18 -12
- package/dist/esm/parser/join-parser.js +2 -2
- package/dist/esm/parser/parse-utils.d.ts +0 -2
- package/dist/esm/parser/parse-utils.js +0 -6
- package/dist/esm/parser/returning-parser.d.ts +2 -1
- package/dist/esm/parser/select-parser.d.ts +5 -13
- package/dist/esm/parser/select-parser.js +7 -3
- package/dist/esm/parser/table-parser.d.ts +5 -3
- package/dist/esm/parser/unary-operation-parser.d.ts +5 -2
- package/dist/esm/parser/unary-operation-parser.js +8 -8
- package/dist/esm/parser/update-set-parser.d.ts +4 -1
- package/dist/esm/parser/update-set-parser.js +7 -2
- package/dist/esm/parser/value-parser.d.ts +5 -0
- package/dist/esm/parser/value-parser.js +1 -3
- package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +1 -1
- package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
- package/dist/esm/query-builder/aggregate-function-builder.d.ts +40 -113
- package/dist/esm/query-builder/aggregate-function-builder.js +24 -64
- package/dist/esm/query-builder/delete-query-builder.d.ts +220 -201
- package/dist/esm/query-builder/delete-query-builder.js +24 -30
- package/dist/esm/query-builder/delete-result.js +3 -0
- package/dist/esm/query-builder/deprecated-having-expression-builder.d.ts +62 -0
- package/dist/esm/query-builder/deprecated-having-expression-builder.js +2 -0
- package/dist/esm/query-builder/deprecated-on-expression-builder.d.ts +62 -0
- package/dist/esm/query-builder/deprecated-on-expression-builder.js +2 -0
- package/dist/esm/query-builder/deprecated-where-expression-builder.d.ts +62 -0
- package/dist/esm/query-builder/deprecated-where-expression-builder.js +2 -0
- package/dist/esm/query-builder/function-module.d.ts +40 -12
- package/dist/esm/query-builder/function-module.js +42 -328
- package/dist/esm/query-builder/having-interface.d.ts +19 -16
- package/dist/esm/query-builder/insert-query-builder.d.ts +75 -26
- package/dist/esm/query-builder/insert-query-builder.js +25 -33
- package/dist/esm/query-builder/insert-result.js +3 -0
- package/dist/esm/query-builder/join-builder.d.ts +23 -26
- package/dist/esm/query-builder/join-builder.js +18 -23
- package/dist/esm/query-builder/no-result-error.d.ts +1 -0
- package/dist/esm/query-builder/no-result-error.js +3 -0
- package/dist/esm/query-builder/on-conflict-builder.d.ts +158 -276
- package/dist/esm/query-builder/on-conflict-builder.js +54 -38
- package/dist/esm/query-builder/over-builder.d.ts +5 -0
- package/dist/esm/query-builder/over-builder.js +7 -0
- package/dist/esm/query-builder/returning-interface.d.ts +2 -2
- package/dist/esm/query-builder/select-query-builder.d.ts +148 -237
- package/dist/esm/query-builder/select-query-builder.js +337 -82
- package/dist/esm/query-builder/update-query-builder.d.ts +145 -213
- package/dist/esm/query-builder/update-query-builder.js +25 -119
- package/dist/esm/query-builder/update-result.js +3 -0
- package/dist/esm/query-builder/where-interface.d.ts +71 -184
- package/dist/esm/query-compiler/default-query-compiler.d.ts +3 -0
- package/dist/esm/query-compiler/default-query-compiler.js +17 -1
- package/dist/esm/query-creator.d.ts +9 -2
- package/dist/esm/query-creator.js +1 -24
- package/dist/esm/query-executor/query-executor.d.ts +3 -3
- package/dist/esm/raw-builder/raw-builder.d.ts +5 -3
- package/dist/esm/raw-builder/raw-builder.js +13 -7
- package/dist/esm/raw-builder/sql.d.ts +17 -9
- package/dist/esm/raw-builder/sql.js +8 -2
- package/dist/esm/schema/alter-column-builder.d.ts +5 -0
- package/dist/esm/schema/alter-column-builder.js +7 -0
- package/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.d.ts +5 -0
- package/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.js +7 -0
- package/dist/esm/schema/alter-table-drop-constraint-builder.d.ts +5 -0
- package/dist/esm/schema/alter-table-drop-constraint-builder.js +7 -0
- package/dist/esm/schema/column-definition-builder.d.ts +6 -1
- package/dist/esm/schema/column-definition-builder.js +8 -1
- package/dist/esm/schema/create-index-builder.d.ts +51 -9
- package/dist/esm/schema/create-index-builder.js +17 -0
- package/dist/esm/schema/create-schema-builder.d.ts +5 -0
- package/dist/esm/schema/create-schema-builder.js +7 -0
- package/dist/esm/schema/create-table-builder.d.ts +3 -1
- package/dist/esm/schema/create-table-builder.js +3 -1
- package/dist/esm/schema/create-type-builder.d.ts +5 -0
- package/dist/esm/schema/create-type-builder.js +7 -0
- package/dist/esm/schema/create-view-builder.d.ts +5 -0
- package/dist/esm/schema/create-view-builder.js +7 -0
- package/dist/esm/schema/drop-index-builder.d.ts +5 -0
- package/dist/esm/schema/drop-index-builder.js +7 -0
- package/dist/esm/schema/drop-schema-builder.d.ts +5 -0
- package/dist/esm/schema/drop-schema-builder.js +7 -0
- package/dist/esm/schema/drop-table-builder.d.ts +5 -0
- package/dist/esm/schema/drop-table-builder.js +7 -0
- package/dist/esm/schema/drop-type-builder.d.ts +5 -0
- package/dist/esm/schema/drop-type-builder.js +7 -0
- package/dist/esm/schema/drop-view-builder.d.ts +5 -0
- package/dist/esm/schema/drop-view-builder.js +7 -0
- package/dist/esm/schema/foreign-key-constraint-builder.d.ts +5 -0
- package/dist/esm/schema/foreign-key-constraint-builder.js +7 -0
- package/dist/esm/util/compilable.d.ts +1 -0
- package/dist/esm/util/compilable.js +4 -1
- package/dist/esm/util/explainable.d.ts +35 -0
- package/dist/esm/util/log.d.ts +2 -0
- package/dist/esm/util/object-utils.js +1 -1
- package/dist/esm/util/streamable.d.ts +29 -0
- package/dist/esm/util/streamable.js +2 -0
- package/dist/esm/util/type-utils.d.ts +1 -0
- package/helpers/postgres.d.ts +1 -0
- package/helpers/postgres.js +1 -0
- package/package.json +20 -9
- package/dist/cjs/query-builder/expression-builder.d.ts +0 -126
- package/dist/cjs/query-builder/expression-builder.js +0 -107
- package/dist/esm/query-builder/expression-builder.d.ts +0 -126
- package/dist/esm/query-builder/expression-builder.js +0 -104
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
/// <reference types="./insert-query-builder.d.ts" />
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { parseSelectArg, parseSelectAll, } from '../parser/select-parser.js';
|
|
3
|
+
import { parseInsertExpression, } from '../parser/insert-values-parser.js';
|
|
4
4
|
import { InsertQueryNode } from '../operation-node/insert-query-node.js';
|
|
5
5
|
import { QueryNode } from '../operation-node/query-node.js';
|
|
6
|
-
import {
|
|
6
|
+
import { parseUpdateExpression, } from '../parser/update-set-parser.js';
|
|
7
7
|
import { preventAwait } from '../util/prevent-await.js';
|
|
8
8
|
import { freeze } from '../util/object-utils.js';
|
|
9
9
|
import { OnDuplicateKeyNode } from '../operation-node/on-duplicate-key-node.js';
|
|
10
10
|
import { InsertResult } from './insert-result.js';
|
|
11
|
-
import { NoResultError } from './no-result-error.js';
|
|
11
|
+
import { isNoResultErrorConstructor, NoResultError, } from './no-result-error.js';
|
|
12
12
|
import { parseExpression, } from '../parser/expression-parser.js';
|
|
13
13
|
import { ColumnNode } from '../operation-node/column-node.js';
|
|
14
14
|
import { OnConflictBuilder, } from './on-conflict-builder.js';
|
|
15
15
|
import { OnConflictNode } from '../operation-node/on-conflict-node.js';
|
|
16
|
-
import { ExplainNode } from '../operation-node/explain-node.js';
|
|
17
16
|
export class InsertQueryBuilder {
|
|
18
17
|
#props;
|
|
19
18
|
constructor(props) {
|
|
20
19
|
this.#props = freeze(props);
|
|
21
20
|
}
|
|
22
|
-
values(
|
|
23
|
-
const [columns, values] =
|
|
21
|
+
values(insert) {
|
|
22
|
+
const [columns, values] = parseInsertExpression(insert);
|
|
24
23
|
return new InsertQueryBuilder({
|
|
25
24
|
...this.#props,
|
|
26
25
|
queryNode: InsertQueryNode.cloneWith(this.#props.queryNode, {
|
|
@@ -293,18 +292,18 @@ export class InsertQueryBuilder {
|
|
|
293
292
|
* .onDuplicateKeyUpdate({ species: 'hamster' })
|
|
294
293
|
* ```
|
|
295
294
|
*/
|
|
296
|
-
onDuplicateKeyUpdate(
|
|
295
|
+
onDuplicateKeyUpdate(update) {
|
|
297
296
|
return new InsertQueryBuilder({
|
|
298
297
|
...this.#props,
|
|
299
298
|
queryNode: InsertQueryNode.cloneWith(this.#props.queryNode, {
|
|
300
|
-
onDuplicateKey: OnDuplicateKeyNode.create(
|
|
299
|
+
onDuplicateKey: OnDuplicateKeyNode.create(parseUpdateExpression(update)),
|
|
301
300
|
}),
|
|
302
301
|
});
|
|
303
302
|
}
|
|
304
303
|
returning(selection) {
|
|
305
304
|
return new InsertQueryBuilder({
|
|
306
305
|
...this.#props,
|
|
307
|
-
queryNode: QueryNode.cloneWithReturning(this.#props.queryNode,
|
|
306
|
+
queryNode: QueryNode.cloneWithReturning(this.#props.queryNode, parseSelectArg(selection)),
|
|
308
307
|
});
|
|
309
308
|
}
|
|
310
309
|
returningAll() {
|
|
@@ -314,7 +313,8 @@ export class InsertQueryBuilder {
|
|
|
314
313
|
});
|
|
315
314
|
}
|
|
316
315
|
/**
|
|
317
|
-
* Simply calls the
|
|
316
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
317
|
+
* what the provided function returns.
|
|
318
318
|
*
|
|
319
319
|
* If you want to conditionally call a method on `this`, see
|
|
320
320
|
* the {@link $if} method.
|
|
@@ -440,7 +440,7 @@ export class InsertQueryBuilder {
|
|
|
440
440
|
* )
|
|
441
441
|
* .with('new_pet', (qb) => qb
|
|
442
442
|
* .insertInto('pet')
|
|
443
|
-
* .values(
|
|
443
|
+
* .values((eb) => ({ owner_id: eb.selectFrom('new_person').select('id'), ...pet }))
|
|
444
444
|
* .returning(['name as pet_name', 'species'])
|
|
445
445
|
* .$assertType<{ pet_name: string, species: Species }>()
|
|
446
446
|
* )
|
|
@@ -504,38 +504,30 @@ export class InsertQueryBuilder {
|
|
|
504
504
|
* the query returned no result.
|
|
505
505
|
*
|
|
506
506
|
* By default an instance of {@link NoResultError} is thrown, but you can
|
|
507
|
-
* provide a custom error class as the only argument to throw a different
|
|
507
|
+
* provide a custom error class, or callback as the only argument to throw a different
|
|
508
508
|
* error.
|
|
509
509
|
*/
|
|
510
510
|
async executeTakeFirstOrThrow(errorConstructor = NoResultError) {
|
|
511
511
|
const result = await this.executeTakeFirst();
|
|
512
512
|
if (result === undefined) {
|
|
513
|
-
|
|
513
|
+
const error = isNoResultErrorConstructor(errorConstructor)
|
|
514
|
+
? new errorConstructor(this.toOperationNode())
|
|
515
|
+
: errorConstructor(this.toOperationNode());
|
|
516
|
+
throw error;
|
|
514
517
|
}
|
|
515
518
|
return result;
|
|
516
519
|
}
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
* .explain('json')
|
|
525
|
-
* ```
|
|
526
|
-
*
|
|
527
|
-
* The generated SQL (MySQL):
|
|
528
|
-
*
|
|
529
|
-
* ```sql
|
|
530
|
-
* explain format=json insert into `person` (`id`, `first_name`, `last_name`) values (?, ?, ?) (?, ?, ?)
|
|
531
|
-
* ```
|
|
532
|
-
*/
|
|
520
|
+
async *stream(chunkSize = 100) {
|
|
521
|
+
const compiledQuery = this.compile();
|
|
522
|
+
const stream = this.#props.executor.stream(compiledQuery, chunkSize, this.#props.queryId);
|
|
523
|
+
for await (const item of stream) {
|
|
524
|
+
yield* item.rows;
|
|
525
|
+
}
|
|
526
|
+
}
|
|
533
527
|
async explain(format, options) {
|
|
534
528
|
const builder = new InsertQueryBuilder({
|
|
535
529
|
...this.#props,
|
|
536
|
-
queryNode:
|
|
537
|
-
explain: ExplainNode.create(format, options?.toOperationNode()),
|
|
538
|
-
}),
|
|
530
|
+
queryNode: QueryNode.cloneWithExplain(this.#props.queryNode, format, options),
|
|
539
531
|
});
|
|
540
532
|
return await builder.execute();
|
|
541
533
|
}
|
|
@@ -4,6 +4,8 @@ import { OperationNodeSource } from '../operation-node/operation-node-source.js'
|
|
|
4
4
|
import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js';
|
|
5
5
|
import { ReferenceExpression } from '../parser/reference-parser.js';
|
|
6
6
|
import { ExistsExpression } from '../parser/unary-operation-parser.js';
|
|
7
|
+
import { SqlBool } from '../util/type-utils.js';
|
|
8
|
+
import { OnExpressionBuilder } from './deprecated-on-expression-builder.js';
|
|
7
9
|
export declare class JoinBuilder<DB, TB extends keyof DB> implements OperationNodeSource {
|
|
8
10
|
#private;
|
|
9
11
|
constructor(props: JoinBuilderProps);
|
|
@@ -14,16 +16,19 @@ export declare class JoinBuilder<DB, TB extends keyof DB> implements OperationNo
|
|
|
14
16
|
* See {@link WhereInterface.where} for documentation and examples.
|
|
15
17
|
*/
|
|
16
18
|
on<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): JoinBuilder<DB, TB>;
|
|
17
|
-
on(
|
|
19
|
+
on(factory: OnExpressionFactory<DB, TB>): JoinBuilder<DB, TB>;
|
|
18
20
|
on(expression: Expression<any>): JoinBuilder<DB, TB>;
|
|
19
21
|
/**
|
|
20
|
-
*
|
|
21
|
-
* `on` clause instead.
|
|
22
|
-
*
|
|
23
|
-
* See {@link WhereInterface.orWhere} for documentation and examples.
|
|
22
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
24
23
|
*/
|
|
25
24
|
orOn<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: ComparisonOperatorExpression, rhs: OperandValueExpressionOrList<DB, TB, RE>): JoinBuilder<DB, TB>;
|
|
26
|
-
|
|
25
|
+
/**
|
|
26
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
27
|
+
*/
|
|
28
|
+
orOn(factory: OnExpressionFactory<DB, TB>): JoinBuilder<DB, TB>;
|
|
29
|
+
/**
|
|
30
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
31
|
+
*/
|
|
27
32
|
orOn(expression: Expression<any>): JoinBuilder<DB, TB>;
|
|
28
33
|
/**
|
|
29
34
|
* Just like {@link WhereInterface.whereRef} but adds an item to the join's
|
|
@@ -33,46 +38,38 @@ export declare class JoinBuilder<DB, TB extends keyof DB> implements OperationNo
|
|
|
33
38
|
*/
|
|
34
39
|
onRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): JoinBuilder<DB, TB>;
|
|
35
40
|
/**
|
|
36
|
-
*
|
|
37
|
-
* `on` clause instead.
|
|
38
|
-
*
|
|
39
|
-
* See {@link WhereInterface.orWhereRef} for documentation and examples.
|
|
41
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
40
42
|
*/
|
|
41
43
|
orOnRef(lhs: ReferenceExpression<DB, TB>, op: ComparisonOperatorExpression, rhs: ReferenceExpression<DB, TB>): JoinBuilder<DB, TB>;
|
|
42
44
|
/**
|
|
43
|
-
*
|
|
44
|
-
* `on` clause instead.
|
|
45
|
-
*
|
|
46
|
-
* See {@link WhereInterface.whereExists} for documentation and examples.
|
|
45
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
47
46
|
*/
|
|
48
47
|
onExists(arg: ExistsExpression<DB, TB>): JoinBuilder<DB, TB>;
|
|
49
48
|
/**
|
|
50
|
-
*
|
|
51
|
-
* `on` clause instead.
|
|
52
|
-
*
|
|
53
|
-
* See {@link WhereInterface.whereNotExists} for documentation and examples.
|
|
49
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
54
50
|
*/
|
|
55
51
|
onNotExists(arg: ExistsExpression<DB, TB>): JoinBuilder<DB, TB>;
|
|
56
52
|
/**
|
|
57
|
-
*
|
|
58
|
-
* `on` clause instead.
|
|
59
|
-
*
|
|
60
|
-
* See {@link WhereInterface.orWhereExists} for documentation and examples.
|
|
53
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
61
54
|
*/
|
|
62
55
|
orOnExists(arg: ExistsExpression<DB, TB>): JoinBuilder<DB, TB>;
|
|
63
56
|
/**
|
|
64
|
-
*
|
|
65
|
-
* `on` clause instead.
|
|
66
|
-
*
|
|
67
|
-
* See {@link WhereInterface.orWhereNotExists} for documentation and examples.
|
|
57
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
68
58
|
*/
|
|
69
59
|
orOnNotExists(arg: ExistsExpression<DB, TB>): JoinBuilder<DB, TB>;
|
|
70
60
|
/**
|
|
71
61
|
* Adds `on true`.
|
|
72
62
|
*/
|
|
73
63
|
onTrue(): JoinBuilder<DB, TB>;
|
|
64
|
+
/**
|
|
65
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
66
|
+
* what the provided function returns.
|
|
67
|
+
*/
|
|
68
|
+
$call<T>(func: (qb: this) => T): T;
|
|
74
69
|
toOperationNode(): JoinNode;
|
|
75
70
|
}
|
|
76
71
|
export interface JoinBuilderProps {
|
|
77
72
|
readonly joinNode: JoinNode;
|
|
78
73
|
}
|
|
74
|
+
declare type OnExpressionFactory<DB, TB extends keyof DB> = (eb: OnExpressionBuilder<DB, TB>) => Expression<SqlBool> | OnExpressionBuilder<DB, TB>;
|
|
75
|
+
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="./join-builder.d.ts" />
|
|
2
2
|
import { JoinNode } from '../operation-node/join-node.js';
|
|
3
3
|
import { RawNode } from '../operation-node/raw-node.js';
|
|
4
|
-
import { parseOn,
|
|
4
|
+
import { parseOn, parseReferentialComparison, } from '../parser/binary-operation-parser.js';
|
|
5
5
|
import { parseExists, parseNotExists, } from '../parser/unary-operation-parser.js';
|
|
6
6
|
import { freeze } from '../util/object-utils.js';
|
|
7
7
|
import { preventAwait } from '../util/prevent-await.js';
|
|
@@ -16,6 +16,9 @@ export class JoinBuilder {
|
|
|
16
16
|
joinNode: JoinNode.cloneWithOn(this.#props.joinNode, parseOn(args)),
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
21
|
+
*/
|
|
19
22
|
orOn(...args) {
|
|
20
23
|
return new JoinBuilder({
|
|
21
24
|
...this.#props,
|
|
@@ -31,26 +34,20 @@ export class JoinBuilder {
|
|
|
31
34
|
onRef(lhs, op, rhs) {
|
|
32
35
|
return new JoinBuilder({
|
|
33
36
|
...this.#props,
|
|
34
|
-
joinNode: JoinNode.cloneWithOn(this.#props.joinNode,
|
|
37
|
+
joinNode: JoinNode.cloneWithOn(this.#props.joinNode, parseReferentialComparison(lhs, op, rhs)),
|
|
35
38
|
});
|
|
36
39
|
}
|
|
37
40
|
/**
|
|
38
|
-
*
|
|
39
|
-
* `on` clause instead.
|
|
40
|
-
*
|
|
41
|
-
* See {@link WhereInterface.orWhereRef} for documentation and examples.
|
|
41
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
42
42
|
*/
|
|
43
43
|
orOnRef(lhs, op, rhs) {
|
|
44
44
|
return new JoinBuilder({
|
|
45
45
|
...this.#props,
|
|
46
|
-
joinNode: JoinNode.cloneWithOrOn(this.#props.joinNode,
|
|
46
|
+
joinNode: JoinNode.cloneWithOrOn(this.#props.joinNode, parseReferentialComparison(lhs, op, rhs)),
|
|
47
47
|
});
|
|
48
48
|
}
|
|
49
49
|
/**
|
|
50
|
-
*
|
|
51
|
-
* `on` clause instead.
|
|
52
|
-
*
|
|
53
|
-
* See {@link WhereInterface.whereExists} for documentation and examples.
|
|
50
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
54
51
|
*/
|
|
55
52
|
onExists(arg) {
|
|
56
53
|
return new JoinBuilder({
|
|
@@ -59,10 +56,7 @@ export class JoinBuilder {
|
|
|
59
56
|
});
|
|
60
57
|
}
|
|
61
58
|
/**
|
|
62
|
-
*
|
|
63
|
-
* `on` clause instead.
|
|
64
|
-
*
|
|
65
|
-
* See {@link WhereInterface.whereNotExists} for documentation and examples.
|
|
59
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
66
60
|
*/
|
|
67
61
|
onNotExists(arg) {
|
|
68
62
|
return new JoinBuilder({
|
|
@@ -71,10 +65,7 @@ export class JoinBuilder {
|
|
|
71
65
|
});
|
|
72
66
|
}
|
|
73
67
|
/**
|
|
74
|
-
*
|
|
75
|
-
* `on` clause instead.
|
|
76
|
-
*
|
|
77
|
-
* See {@link WhereInterface.orWhereExists} for documentation and examples.
|
|
68
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
78
69
|
*/
|
|
79
70
|
orOnExists(arg) {
|
|
80
71
|
return new JoinBuilder({
|
|
@@ -83,10 +74,7 @@ export class JoinBuilder {
|
|
|
83
74
|
});
|
|
84
75
|
}
|
|
85
76
|
/**
|
|
86
|
-
*
|
|
87
|
-
* `on` clause instead.
|
|
88
|
-
*
|
|
89
|
-
* See {@link WhereInterface.orWhereNotExists} for documentation and examples.
|
|
77
|
+
* @deprecated Follow [these](https://github.com/koskimas/kysely/releases/tag/0.24.0) instructions to migrate
|
|
90
78
|
*/
|
|
91
79
|
orOnNotExists(arg) {
|
|
92
80
|
return new JoinBuilder({
|
|
@@ -103,6 +91,13 @@ export class JoinBuilder {
|
|
|
103
91
|
joinNode: JoinNode.cloneWithOn(this.#props.joinNode, RawNode.createWithSql('true')),
|
|
104
92
|
});
|
|
105
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Simply calls the provided function passing `this` as the only argument. `$call` returns
|
|
96
|
+
* what the provided function returns.
|
|
97
|
+
*/
|
|
98
|
+
$call(func) {
|
|
99
|
+
return func(this);
|
|
100
|
+
}
|
|
106
101
|
toOperationNode() {
|
|
107
102
|
return this.#props.joinNode;
|
|
108
103
|
}
|