kysely 0.24.2 → 0.26.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 +31 -567
- package/dist/cjs/dialect/database-introspector.d.ts +1 -1
- package/dist/cjs/dialect/mysql/mysql-dialect-config.d.ts +2 -1
- package/dist/cjs/dialect/mysql/mysql-driver.js +5 -1
- package/dist/cjs/dialect/postgres/postgres-dialect-config.d.ts +1 -1
- package/dist/cjs/dialect/postgres/postgres-introspector.js +1 -1
- package/dist/cjs/dialect/sqlite/sqlite-introspector.js +1 -1
- package/dist/cjs/driver/database-connection.d.ts +6 -0
- package/dist/cjs/driver/driver.d.ts +1 -1
- package/dist/cjs/driver/runtime-driver.js +6 -6
- package/dist/cjs/dynamic/dynamic.d.ts +1 -1
- package/dist/cjs/dynamic/dynamic.js +1 -1
- package/dist/cjs/expression/expression-builder.d.ts +263 -109
- package/dist/cjs/expression/expression-builder.js +38 -7
- package/dist/cjs/expression/expression-wrapper.d.ts +296 -5
- package/dist/cjs/expression/expression-wrapper.js +70 -2
- package/dist/cjs/helpers/mysql.d.ts +3 -3
- package/dist/cjs/helpers/mysql.js +2 -2
- package/dist/cjs/helpers/postgres.d.ts +31 -19
- package/dist/cjs/helpers/postgres.js +30 -18
- package/dist/cjs/index.d.ts +10 -0
- package/dist/cjs/index.js +10 -0
- package/dist/cjs/kysely.d.ts +42 -15
- package/dist/cjs/kysely.js +41 -10
- package/dist/cjs/migration/file-migration-provider.js +2 -2
- package/dist/cjs/operation-node/aggregate-function-node.d.ts +3 -7
- package/dist/cjs/operation-node/aggregate-function-node.js +1 -1
- package/dist/cjs/operation-node/alter-column-node.d.ts +3 -5
- package/dist/cjs/operation-node/alter-column-node.js +2 -7
- package/dist/cjs/operation-node/alter-table-node.d.ts +3 -3
- package/dist/cjs/operation-node/alter-table-node.js +1 -2
- package/dist/cjs/operation-node/case-node.d.ts +19 -0
- package/dist/cjs/operation-node/case-node.js +42 -0
- package/dist/cjs/operation-node/column-definition-node.d.ts +1 -1
- package/dist/cjs/operation-node/constraint-node.d.ts +1 -1
- package/dist/cjs/operation-node/create-index-node.d.ts +4 -3
- package/dist/cjs/operation-node/create-index-node.js +6 -0
- package/dist/cjs/operation-node/create-schema-node.d.ts +1 -1
- package/dist/cjs/operation-node/create-table-node.d.ts +2 -2
- package/dist/cjs/operation-node/create-type-node.d.ts +1 -1
- package/dist/cjs/operation-node/create-view-node.d.ts +1 -1
- package/dist/cjs/operation-node/data-type-node.d.ts +2 -2
- package/dist/cjs/operation-node/drop-constraint-node.d.ts +1 -1
- package/dist/cjs/operation-node/drop-index-node.d.ts +1 -1
- package/dist/cjs/operation-node/drop-schema-node.d.ts +1 -1
- package/dist/cjs/operation-node/drop-table-node.d.ts +1 -1
- package/dist/cjs/operation-node/drop-type-node.d.ts +1 -1
- package/dist/cjs/operation-node/drop-view-node.d.ts +1 -1
- package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +1 -1
- package/dist/cjs/operation-node/generated-node.d.ts +1 -1
- package/dist/cjs/operation-node/insert-query-node.d.ts +1 -1
- package/dist/cjs/operation-node/join-node.d.ts +1 -2
- package/dist/cjs/operation-node/join-node.js +0 -8
- package/dist/cjs/operation-node/json-operator-chain-node.d.ts +16 -0
- package/dist/cjs/operation-node/json-operator-chain-node.js +25 -0
- package/dist/cjs/operation-node/json-path-leg-node.d.ts +14 -0
- package/dist/cjs/operation-node/json-path-leg-node.js +19 -0
- package/dist/cjs/operation-node/json-path-node.d.ts +16 -0
- package/dist/cjs/operation-node/json-path-node.js +25 -0
- package/dist/cjs/operation-node/json-reference-node.d.ts +17 -0
- package/dist/cjs/operation-node/json-reference-node.js +25 -0
- package/dist/cjs/operation-node/on-conflict-node.d.ts +1 -1
- package/dist/cjs/operation-node/on-duplicate-key-node.d.ts +1 -1
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +12 -0
- package/dist/cjs/operation-node/operation-node-transformer.js +53 -3
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +12 -0
- package/dist/cjs/operation-node/operation-node-visitor.js +6 -0
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/operator-node.d.ts +13 -9
- package/dist/cjs/operation-node/operator-node.js +12 -2
- package/dist/cjs/operation-node/query-node.d.ts +9 -10
- package/dist/cjs/operation-node/query-node.js +0 -8
- package/dist/cjs/operation-node/reference-node.d.ts +2 -2
- package/dist/cjs/operation-node/reference-node.js +1 -1
- package/dist/cjs/operation-node/references-node.d.ts +1 -1
- package/dist/cjs/operation-node/select-modifier-node.d.ts +1 -1
- package/dist/cjs/operation-node/select-query-node.d.ts +0 -1
- package/dist/cjs/operation-node/select-query-node.js +0 -8
- package/dist/cjs/operation-node/selection-node.d.ts +1 -1
- package/dist/cjs/operation-node/set-operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/simple-reference-expression-node.d.ts +1 -1
- package/dist/cjs/operation-node/update-query-node.d.ts +1 -1
- package/dist/cjs/operation-node/values-node.d.ts +1 -1
- package/dist/cjs/operation-node/when-node.d.ts +14 -0
- package/dist/cjs/operation-node/when-node.js +24 -0
- package/dist/cjs/operation-node/with-node.d.ts +1 -1
- package/dist/cjs/parser/binary-operation-parser.d.ts +9 -11
- package/dist/cjs/parser/binary-operation-parser.js +40 -103
- package/dist/cjs/parser/coalesce-parser.d.ts +1 -1
- package/dist/cjs/parser/data-type-parser.d.ts +1 -1
- package/dist/cjs/parser/default-value-parser.d.ts +1 -1
- package/dist/cjs/parser/expression-parser.d.ts +6 -5
- package/dist/cjs/parser/group-by-parser.d.ts +2 -2
- package/dist/cjs/parser/insert-values-parser.d.ts +4 -4
- package/dist/cjs/parser/join-parser.d.ts +4 -4
- package/dist/cjs/parser/order-by-parser.d.ts +4 -3
- package/dist/cjs/parser/order-by-parser.js +5 -1
- package/dist/cjs/parser/partition-by-parser.d.ts +2 -2
- package/dist/cjs/parser/reference-parser.d.ts +16 -8
- package/dist/cjs/parser/reference-parser.js +43 -16
- package/dist/cjs/parser/returning-parser.d.ts +2 -2
- package/dist/cjs/parser/select-parser.d.ts +9 -9
- package/dist/cjs/parser/table-parser.d.ts +14 -13
- package/dist/cjs/parser/unary-operation-parser.d.ts +1 -1
- package/dist/cjs/parser/update-set-parser.d.ts +3 -3
- package/dist/cjs/parser/update-set-parser.js +1 -3
- package/dist/cjs/parser/value-parser.d.ts +4 -4
- package/dist/cjs/parser/with-parser.d.ts +14 -9
- package/dist/cjs/plugin/camel-case/camel-case.d.ts +1 -1
- package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.d.ts +42 -0
- package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.js +32 -0
- package/dist/cjs/plugin/with-schema/with-schema-transformer.js +22 -6
- package/dist/cjs/query-builder/aggregate-function-builder.d.ts +5 -38
- package/dist/cjs/query-builder/aggregate-function-builder.js +4 -59
- package/dist/cjs/query-builder/case-builder.d.ts +111 -0
- package/dist/cjs/query-builder/case-builder.js +75 -0
- package/dist/cjs/query-builder/delete-query-builder.d.ts +130 -63
- package/dist/cjs/query-builder/delete-query-builder.js +42 -59
- package/dist/cjs/query-builder/delete-result.d.ts +1 -2
- package/dist/cjs/query-builder/delete-result.js +2 -8
- package/dist/cjs/query-builder/function-module.d.ts +78 -69
- package/dist/cjs/query-builder/function-module.js +12 -16
- package/dist/cjs/query-builder/having-interface.d.ts +2 -35
- package/dist/cjs/query-builder/insert-query-builder.d.ts +99 -47
- package/dist/cjs/query-builder/insert-query-builder.js +57 -26
- package/dist/cjs/query-builder/insert-result.d.ts +3 -4
- package/dist/cjs/query-builder/insert-result.js +5 -14
- package/dist/cjs/query-builder/join-builder.d.ts +2 -35
- package/dist/cjs/query-builder/join-builder.js +1 -56
- package/dist/cjs/query-builder/json-path-builder.d.ts +212 -0
- package/dist/cjs/query-builder/json-path-builder.js +191 -0
- package/dist/cjs/query-builder/no-result-error.d.ts +1 -1
- package/dist/cjs/query-builder/on-conflict-builder.d.ts +144 -73
- package/dist/cjs/query-builder/on-conflict-builder.js +2 -111
- package/dist/cjs/query-builder/over-builder.d.ts +2 -2
- package/dist/cjs/query-builder/over-builder.js +1 -1
- package/dist/cjs/query-builder/returning-interface.d.ts +1 -1
- package/dist/cjs/query-builder/select-query-builder.d.ts +184 -138
- package/dist/cjs/query-builder/select-query-builder.js +64 -130
- package/dist/cjs/query-builder/update-query-builder.d.ts +143 -71
- package/dist/cjs/query-builder/update-query-builder.js +47 -60
- package/dist/cjs/query-builder/update-result.d.ts +3 -3
- package/dist/cjs/query-builder/update-result.js +5 -9
- package/dist/cjs/query-builder/where-interface.d.ts +73 -38
- package/dist/cjs/query-compiler/compiled-query.d.ts +1 -1
- package/dist/cjs/query-compiler/compiled-query.js +2 -2
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +12 -0
- package/dist/cjs/query-compiler/default-query-compiler.js +67 -5
- package/dist/cjs/query-compiler/query-compiler.d.ts +1 -1
- package/dist/cjs/query-creator.d.ts +4 -2
- package/dist/cjs/schema/alter-column-builder.d.ts +13 -7
- package/dist/cjs/schema/alter-column-builder.js +20 -22
- package/dist/cjs/schema/alter-table-builder.d.ts +0 -4
- package/dist/cjs/schema/alter-table-builder.js +2 -9
- package/dist/cjs/schema/column-definition-builder.d.ts +1 -1
- package/dist/cjs/schema/column-definition-builder.js +1 -2
- package/dist/cjs/schema/create-index-builder.d.ts +49 -7
- package/dist/cjs/schema/create-index-builder.js +52 -14
- package/dist/cjs/schema/create-table-builder.d.ts +2 -6
- package/dist/cjs/schema/create-table-builder.js +0 -6
- package/dist/cjs/schema/schema.d.ts +1 -2
- package/dist/cjs/schema/schema.js +2 -3
- package/dist/cjs/util/column-type.d.ts +21 -16
- package/dist/cjs/util/explainable.d.ts +1 -1
- package/dist/cjs/util/infer-result.d.ts +2 -2
- package/dist/cjs/util/log.d.ts +6 -6
- package/dist/cjs/util/log.js +4 -4
- package/dist/cjs/util/object-utils.d.ts +2 -1
- package/dist/cjs/util/require-all-props.d.ts +1 -1
- package/dist/cjs/util/type-utils.d.ts +54 -40
- package/dist/esm/dialect/database-introspector.d.ts +1 -1
- package/dist/esm/dialect/mysql/mysql-dialect-config.d.ts +2 -1
- package/dist/esm/dialect/mysql/mysql-driver.js +5 -1
- package/dist/esm/dialect/postgres/postgres-dialect-config.d.ts +1 -1
- package/dist/esm/dialect/postgres/postgres-introspector.js +1 -1
- package/dist/esm/dialect/sqlite/sqlite-introspector.js +1 -1
- package/dist/esm/driver/database-connection.d.ts +6 -0
- package/dist/esm/driver/driver.d.ts +1 -1
- package/dist/esm/driver/runtime-driver.js +6 -6
- package/dist/esm/dynamic/dynamic.d.ts +1 -1
- package/dist/esm/dynamic/dynamic.js +1 -1
- package/dist/esm/expression/expression-builder.d.ts +263 -109
- package/dist/esm/expression/expression-builder.js +40 -9
- package/dist/esm/expression/expression-wrapper.d.ts +296 -5
- package/dist/esm/expression/expression-wrapper.js +67 -1
- package/dist/esm/helpers/mysql.d.ts +3 -3
- package/dist/esm/helpers/mysql.js +2 -2
- package/dist/esm/helpers/postgres.d.ts +31 -19
- package/dist/esm/helpers/postgres.js +30 -18
- package/dist/esm/index.d.ts +10 -0
- package/dist/esm/index.js +10 -0
- package/dist/esm/kysely.d.ts +42 -15
- package/dist/esm/kysely.js +42 -11
- package/dist/esm/operation-node/aggregate-function-node.d.ts +3 -7
- package/dist/esm/operation-node/aggregate-function-node.js +1 -1
- package/dist/esm/operation-node/alter-column-node.d.ts +3 -5
- package/dist/esm/operation-node/alter-column-node.js +2 -7
- package/dist/esm/operation-node/alter-table-node.d.ts +3 -3
- package/dist/esm/operation-node/alter-table-node.js +1 -2
- package/dist/esm/operation-node/case-node.d.ts +19 -0
- package/dist/esm/operation-node/case-node.js +40 -0
- package/dist/esm/operation-node/column-definition-node.d.ts +1 -1
- package/dist/esm/operation-node/constraint-node.d.ts +1 -1
- package/dist/esm/operation-node/create-index-node.d.ts +4 -3
- package/dist/esm/operation-node/create-index-node.js +6 -0
- package/dist/esm/operation-node/create-schema-node.d.ts +1 -1
- package/dist/esm/operation-node/create-table-node.d.ts +2 -2
- package/dist/esm/operation-node/create-type-node.d.ts +1 -1
- package/dist/esm/operation-node/create-view-node.d.ts +1 -1
- package/dist/esm/operation-node/data-type-node.d.ts +2 -2
- package/dist/esm/operation-node/drop-constraint-node.d.ts +1 -1
- package/dist/esm/operation-node/drop-index-node.d.ts +1 -1
- package/dist/esm/operation-node/drop-schema-node.d.ts +1 -1
- package/dist/esm/operation-node/drop-table-node.d.ts +1 -1
- package/dist/esm/operation-node/drop-type-node.d.ts +1 -1
- package/dist/esm/operation-node/drop-view-node.d.ts +1 -1
- package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +1 -1
- package/dist/esm/operation-node/generated-node.d.ts +1 -1
- package/dist/esm/operation-node/insert-query-node.d.ts +1 -1
- package/dist/esm/operation-node/join-node.d.ts +1 -2
- package/dist/esm/operation-node/join-node.js +0 -8
- package/dist/esm/operation-node/json-operator-chain-node.d.ts +16 -0
- package/dist/esm/operation-node/json-operator-chain-node.js +23 -0
- package/dist/esm/operation-node/json-path-leg-node.d.ts +14 -0
- package/dist/esm/operation-node/json-path-leg-node.js +17 -0
- package/dist/esm/operation-node/json-path-node.d.ts +16 -0
- package/dist/esm/operation-node/json-path-node.js +23 -0
- package/dist/esm/operation-node/json-reference-node.d.ts +17 -0
- package/dist/esm/operation-node/json-reference-node.js +23 -0
- package/dist/esm/operation-node/on-conflict-node.d.ts +1 -1
- package/dist/esm/operation-node/on-duplicate-key-node.d.ts +1 -1
- package/dist/esm/operation-node/operation-node-transformer.d.ts +12 -0
- package/dist/esm/operation-node/operation-node-transformer.js +53 -3
- package/dist/esm/operation-node/operation-node-visitor.d.ts +12 -0
- package/dist/esm/operation-node/operation-node-visitor.js +6 -0
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/operator-node.d.ts +13 -9
- package/dist/esm/operation-node/operator-node.js +10 -1
- package/dist/esm/operation-node/query-node.d.ts +9 -10
- package/dist/esm/operation-node/query-node.js +0 -8
- package/dist/esm/operation-node/reference-node.d.ts +2 -2
- package/dist/esm/operation-node/reference-node.js +1 -1
- package/dist/esm/operation-node/references-node.d.ts +1 -1
- package/dist/esm/operation-node/select-modifier-node.d.ts +1 -1
- package/dist/esm/operation-node/select-query-node.d.ts +0 -1
- package/dist/esm/operation-node/select-query-node.js +0 -8
- package/dist/esm/operation-node/selection-node.d.ts +1 -1
- package/dist/esm/operation-node/set-operation-node.d.ts +1 -1
- package/dist/esm/operation-node/simple-reference-expression-node.d.ts +1 -1
- package/dist/esm/operation-node/update-query-node.d.ts +1 -1
- package/dist/esm/operation-node/values-node.d.ts +1 -1
- package/dist/esm/operation-node/when-node.d.ts +14 -0
- package/dist/esm/operation-node/when-node.js +22 -0
- package/dist/esm/operation-node/with-node.d.ts +1 -1
- package/dist/esm/parser/binary-operation-parser.d.ts +9 -11
- package/dist/esm/parser/binary-operation-parser.js +38 -99
- package/dist/esm/parser/coalesce-parser.d.ts +1 -1
- package/dist/esm/parser/data-type-parser.d.ts +1 -1
- package/dist/esm/parser/default-value-parser.d.ts +1 -1
- package/dist/esm/parser/expression-parser.d.ts +6 -5
- package/dist/esm/parser/group-by-parser.d.ts +2 -2
- package/dist/esm/parser/insert-values-parser.d.ts +4 -4
- package/dist/esm/parser/join-parser.d.ts +4 -4
- package/dist/esm/parser/order-by-parser.d.ts +4 -3
- package/dist/esm/parser/order-by-parser.js +3 -0
- package/dist/esm/parser/partition-by-parser.d.ts +2 -2
- package/dist/esm/parser/reference-parser.d.ts +16 -8
- package/dist/esm/parser/reference-parser.js +40 -15
- package/dist/esm/parser/returning-parser.d.ts +2 -2
- package/dist/esm/parser/select-parser.d.ts +9 -9
- package/dist/esm/parser/table-parser.d.ts +14 -13
- package/dist/esm/parser/unary-operation-parser.d.ts +1 -1
- package/dist/esm/parser/update-set-parser.d.ts +3 -3
- package/dist/esm/parser/update-set-parser.js +2 -4
- package/dist/esm/parser/value-parser.d.ts +4 -4
- package/dist/esm/parser/with-parser.d.ts +14 -9
- package/dist/esm/plugin/camel-case/camel-case.d.ts +1 -1
- package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.d.ts +42 -0
- package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.js +29 -0
- package/dist/esm/plugin/with-schema/with-schema-transformer.js +22 -6
- package/dist/esm/query-builder/aggregate-function-builder.d.ts +5 -38
- package/dist/esm/query-builder/aggregate-function-builder.js +5 -60
- package/dist/esm/query-builder/case-builder.d.ts +111 -0
- package/dist/esm/query-builder/case-builder.js +69 -0
- package/dist/esm/query-builder/delete-query-builder.d.ts +130 -63
- package/dist/esm/query-builder/delete-query-builder.js +43 -60
- package/dist/esm/query-builder/delete-result.d.ts +1 -2
- package/dist/esm/query-builder/delete-result.js +2 -8
- package/dist/esm/query-builder/function-module.d.ts +78 -69
- package/dist/esm/query-builder/function-module.js +13 -17
- package/dist/esm/query-builder/having-interface.d.ts +2 -35
- package/dist/esm/query-builder/insert-query-builder.d.ts +99 -47
- package/dist/esm/query-builder/insert-query-builder.js +57 -26
- package/dist/esm/query-builder/insert-result.d.ts +3 -4
- package/dist/esm/query-builder/insert-result.js +5 -14
- package/dist/esm/query-builder/join-builder.d.ts +2 -35
- package/dist/esm/query-builder/join-builder.js +2 -57
- package/dist/esm/query-builder/json-path-builder.d.ts +212 -0
- package/dist/esm/query-builder/json-path-builder.js +186 -0
- package/dist/esm/query-builder/no-result-error.d.ts +1 -1
- package/dist/esm/query-builder/on-conflict-builder.d.ts +144 -73
- package/dist/esm/query-builder/on-conflict-builder.js +3 -112
- package/dist/esm/query-builder/over-builder.d.ts +2 -2
- package/dist/esm/query-builder/over-builder.js +1 -1
- package/dist/esm/query-builder/returning-interface.d.ts +1 -1
- package/dist/esm/query-builder/select-query-builder.d.ts +184 -138
- package/dist/esm/query-builder/select-query-builder.js +65 -131
- package/dist/esm/query-builder/update-query-builder.d.ts +143 -71
- package/dist/esm/query-builder/update-query-builder.js +48 -61
- package/dist/esm/query-builder/update-result.d.ts +3 -3
- package/dist/esm/query-builder/update-result.js +5 -9
- package/dist/esm/query-builder/where-interface.d.ts +73 -38
- package/dist/esm/query-compiler/compiled-query.d.ts +1 -1
- package/dist/esm/query-compiler/compiled-query.js +2 -2
- package/dist/esm/query-compiler/default-query-compiler.d.ts +12 -0
- package/dist/esm/query-compiler/default-query-compiler.js +67 -5
- package/dist/esm/query-compiler/query-compiler.d.ts +1 -1
- package/dist/esm/query-creator.d.ts +4 -2
- package/dist/esm/schema/alter-column-builder.d.ts +13 -7
- package/dist/esm/schema/alter-column-builder.js +20 -22
- package/dist/esm/schema/alter-table-builder.d.ts +0 -4
- package/dist/esm/schema/alter-table-builder.js +2 -9
- package/dist/esm/schema/column-definition-builder.d.ts +1 -1
- package/dist/esm/schema/column-definition-builder.js +1 -2
- package/dist/esm/schema/create-index-builder.d.ts +49 -7
- package/dist/esm/schema/create-index-builder.js +54 -16
- package/dist/esm/schema/create-table-builder.d.ts +2 -6
- package/dist/esm/schema/create-table-builder.js +0 -6
- package/dist/esm/schema/schema.d.ts +1 -2
- package/dist/esm/schema/schema.js +2 -3
- package/dist/esm/util/column-type.d.ts +21 -16
- package/dist/esm/util/explainable.d.ts +1 -1
- package/dist/esm/util/infer-result.d.ts +2 -2
- package/dist/esm/util/log.d.ts +6 -6
- package/dist/esm/util/log.js +4 -4
- package/dist/esm/util/object-utils.d.ts +2 -1
- package/dist/esm/util/require-all-props.d.ts +1 -1
- package/dist/esm/util/type-utils.d.ts +54 -40
- package/package.json +25 -23
- package/dist/cjs/query-builder/deprecated-having-expression-builder.d.ts +0 -62
- package/dist/cjs/query-builder/deprecated-having-expression-builder.js +0 -2
- package/dist/cjs/query-builder/deprecated-on-expression-builder.d.ts +0 -62
- package/dist/cjs/query-builder/deprecated-on-expression-builder.js +0 -2
- package/dist/cjs/query-builder/deprecated-where-expression-builder.d.ts +0 -62
- package/dist/cjs/query-builder/deprecated-where-expression-builder.js +0 -2
- package/dist/esm/query-builder/deprecated-having-expression-builder.d.ts +0 -62
- package/dist/esm/query-builder/deprecated-having-expression-builder.js +0 -2
- package/dist/esm/query-builder/deprecated-on-expression-builder.d.ts +0 -62
- package/dist/esm/query-builder/deprecated-on-expression-builder.js +0 -2
- package/dist/esm/query-builder/deprecated-where-expression-builder.d.ts +0 -62
- package/dist/esm/query-builder/deprecated-where-expression-builder.js +0 -2
|
@@ -5,13 +5,23 @@ const sql_js_1 = require("../raw-builder/sql.js");
|
|
|
5
5
|
/**
|
|
6
6
|
* A postgres helper for aggregating a subquery (or other expression) into a JSONB array.
|
|
7
7
|
*
|
|
8
|
-
* NOTE: This helper is only guaranteed to fully work with the built-in `PostgresDialect`.
|
|
9
|
-
* While the produced SQL is compatibe with all PostgreSQL databases, some 3rd party dialects
|
|
10
|
-
* may not parse the nested results into arrays.
|
|
11
|
-
*
|
|
12
8
|
* ### Examples
|
|
13
9
|
*
|
|
10
|
+
* <!-- siteExample("select", "Nested array", 110) -->
|
|
11
|
+
*
|
|
12
|
+
* While kysely is not an ORM and it doesn't have the concept of relations, we do provide
|
|
13
|
+
* helpers for fetching nested objects and arrays in a single query. In this example we
|
|
14
|
+
* use the `jsonArrayFrom` helper to fetch person's pets along with the person's id.
|
|
15
|
+
*
|
|
16
|
+
* Please keep in mind that the helpers under the `kysely/helpers` folder, including
|
|
17
|
+
* `jsonArrayFrom`, are not guaranteed to work with third party dialects. In order for
|
|
18
|
+
* them to work, the dialect must automatically parse the `json` data type into
|
|
19
|
+
* javascript JSON values like objects and arrays. Some dialects might simply return
|
|
20
|
+
* the data as a JSON string.
|
|
21
|
+
*
|
|
14
22
|
* ```ts
|
|
23
|
+
* import { jsonArrayFrom } from 'kysely/helpers/postgres'
|
|
24
|
+
*
|
|
15
25
|
* const result = await db
|
|
16
26
|
* .selectFrom('person')
|
|
17
27
|
* .select((eb) => [
|
|
@@ -19,15 +29,11 @@ const sql_js_1 = require("../raw-builder/sql.js");
|
|
|
19
29
|
* jsonArrayFrom(
|
|
20
30
|
* eb.selectFrom('pet')
|
|
21
31
|
* .select(['pet.id as pet_id', 'pet.name'])
|
|
22
|
-
* .
|
|
32
|
+
* .whereRef('pet.owner_id', '=', 'person.id')
|
|
23
33
|
* .orderBy('pet.name')
|
|
24
34
|
* ).as('pets')
|
|
25
35
|
* ])
|
|
26
36
|
* .execute()
|
|
27
|
-
*
|
|
28
|
-
* result[0].id
|
|
29
|
-
* result[0].pets[0].pet_id
|
|
30
|
-
* result[0].pets[0].name
|
|
31
37
|
* ```
|
|
32
38
|
*
|
|
33
39
|
* The generated SQL (PostgreSQL):
|
|
@@ -53,13 +59,23 @@ exports.jsonArrayFrom = jsonArrayFrom;
|
|
|
53
59
|
*
|
|
54
60
|
* The subquery must only return one row.
|
|
55
61
|
*
|
|
56
|
-
* NOTE: This helper is only guaranteed to fully work with the built-in `PostgresDialect`.
|
|
57
|
-
* While the produced SQL is compatibe with all PostgreSQL databases, some 3rd party dialects
|
|
58
|
-
* may not parse the nested results into objects.
|
|
59
|
-
*
|
|
60
62
|
* ### Examples
|
|
61
63
|
*
|
|
64
|
+
* <!-- siteExample("select", "Nested object", 120) -->
|
|
65
|
+
*
|
|
66
|
+
* While kysely is not an ORM and it doesn't have the concept of relations, we do provide
|
|
67
|
+
* helpers for fetching nested objects and arrays in a single query. In this example we
|
|
68
|
+
* use the `jsonObjectFrom` helper to fetch person's favorite pet along with the person's id.
|
|
69
|
+
*
|
|
70
|
+
* Please keep in mind that the helpers under the `kysely/helpers` folder, including
|
|
71
|
+
* `jsonObjectFrom`, are not guaranteed to work with third party dialects. In order for
|
|
72
|
+
* them to work, the dialect must automatically parse the `json` data type into
|
|
73
|
+
* javascript JSON values like objects and arrays. Some dialects might simply return
|
|
74
|
+
* the data as a JSON string.
|
|
75
|
+
*
|
|
62
76
|
* ```ts
|
|
77
|
+
* import { jsonObjectFrom } from 'kysely/helpers/postgres'
|
|
78
|
+
*
|
|
63
79
|
* const result = await db
|
|
64
80
|
* .selectFrom('person')
|
|
65
81
|
* .select((eb) => [
|
|
@@ -67,15 +83,11 @@ exports.jsonArrayFrom = jsonArrayFrom;
|
|
|
67
83
|
* jsonObjectFrom(
|
|
68
84
|
* eb.selectFrom('pet')
|
|
69
85
|
* .select(['pet.id as pet_id', 'pet.name'])
|
|
70
|
-
* .
|
|
86
|
+
* .whereRef('pet.owner_id', '=', 'person.id')
|
|
71
87
|
* .where('pet.is_favorite', '=', true)
|
|
72
88
|
* ).as('favorite_pet')
|
|
73
89
|
* ])
|
|
74
90
|
* .execute()
|
|
75
|
-
*
|
|
76
|
-
* result[0].id
|
|
77
|
-
* result[0].favorite_pet.pet_id
|
|
78
|
-
* result[0].favorite_pet.name
|
|
79
91
|
* ```
|
|
80
92
|
*
|
|
81
93
|
* The generated SQL (PostgreSQL):
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from './kysely.js';
|
|
|
2
2
|
export * from './query-creator.js';
|
|
3
3
|
export * from './expression/expression.js';
|
|
4
4
|
export { ExpressionBuilder, expressionBuilder, } from './expression/expression-builder.js';
|
|
5
|
+
export * from './expression/expression-wrapper.js';
|
|
5
6
|
export * from './query-builder/where-interface.js';
|
|
6
7
|
export * from './query-builder/returning-interface.js';
|
|
7
8
|
export * from './query-builder/having-interface.js';
|
|
@@ -17,6 +18,8 @@ export * from './query-builder/delete-result.js';
|
|
|
17
18
|
export * from './query-builder/update-result.js';
|
|
18
19
|
export * from './query-builder/on-conflict-builder.js';
|
|
19
20
|
export * from './query-builder/aggregate-function-builder.js';
|
|
21
|
+
export * from './query-builder/case-builder.js';
|
|
22
|
+
export * from './query-builder/json-path-builder.js';
|
|
20
23
|
export * from './raw-builder/raw-builder.js';
|
|
21
24
|
export * from './raw-builder/sql.js';
|
|
22
25
|
export * from './query-executor/query-executor.js';
|
|
@@ -77,12 +80,14 @@ export * from './plugin/kysely-plugin.js';
|
|
|
77
80
|
export * from './plugin/camel-case/camel-case-plugin.js';
|
|
78
81
|
export * from './plugin/deduplicate-joins/deduplicate-joins-plugin.js';
|
|
79
82
|
export * from './plugin/with-schema/with-schema-plugin.js';
|
|
83
|
+
export * from './plugin/parse-json-results/parse-json-results-plugin.js';
|
|
80
84
|
export * from './operation-node/add-column-node.js';
|
|
81
85
|
export * from './operation-node/add-constraint-node.js';
|
|
82
86
|
export * from './operation-node/alias-node.js';
|
|
83
87
|
export * from './operation-node/alter-column-node.js';
|
|
84
88
|
export * from './operation-node/alter-table-node.js';
|
|
85
89
|
export * from './operation-node/and-node.js';
|
|
90
|
+
export * from './operation-node/case-node.js';
|
|
86
91
|
export * from './operation-node/check-constraint-node.js';
|
|
87
92
|
export * from './operation-node/column-definition-node.js';
|
|
88
93
|
export * from './operation-node/column-node.js';
|
|
@@ -148,6 +153,7 @@ export * from './operation-node/update-query-node.js';
|
|
|
148
153
|
export * from './operation-node/value-list-node.js';
|
|
149
154
|
export * from './operation-node/value-node.js';
|
|
150
155
|
export * from './operation-node/values-node.js';
|
|
156
|
+
export * from './operation-node/when-node.js';
|
|
151
157
|
export * from './operation-node/where-node.js';
|
|
152
158
|
export * from './operation-node/with-node.js';
|
|
153
159
|
export * from './operation-node/explain-node.js';
|
|
@@ -160,6 +166,10 @@ export * from './operation-node/set-operation-node.js';
|
|
|
160
166
|
export * from './operation-node/binary-operation-node.js';
|
|
161
167
|
export * from './operation-node/unary-operation-node.js';
|
|
162
168
|
export * from './operation-node/using-node.js';
|
|
169
|
+
export * from './operation-node/json-reference-node.js';
|
|
170
|
+
export * from './operation-node/json-path-leg-node.js';
|
|
171
|
+
export * from './operation-node/json-path-node.js';
|
|
172
|
+
export * from './operation-node/json-operator-chain-node.js';
|
|
163
173
|
export * from './util/column-type.js';
|
|
164
174
|
export * from './util/compilable.js';
|
|
165
175
|
export * from './util/explainable.js';
|
package/dist/cjs/index.js
CHANGED
|
@@ -20,6 +20,7 @@ __exportStar(require("./query-creator.js"), exports);
|
|
|
20
20
|
__exportStar(require("./expression/expression.js"), exports);
|
|
21
21
|
var expression_builder_js_1 = require("./expression/expression-builder.js");
|
|
22
22
|
Object.defineProperty(exports, "expressionBuilder", { enumerable: true, get: function () { return expression_builder_js_1.expressionBuilder; } });
|
|
23
|
+
__exportStar(require("./expression/expression-wrapper.js"), exports);
|
|
23
24
|
__exportStar(require("./query-builder/where-interface.js"), exports);
|
|
24
25
|
__exportStar(require("./query-builder/returning-interface.js"), exports);
|
|
25
26
|
__exportStar(require("./query-builder/having-interface.js"), exports);
|
|
@@ -35,6 +36,8 @@ __exportStar(require("./query-builder/delete-result.js"), exports);
|
|
|
35
36
|
__exportStar(require("./query-builder/update-result.js"), exports);
|
|
36
37
|
__exportStar(require("./query-builder/on-conflict-builder.js"), exports);
|
|
37
38
|
__exportStar(require("./query-builder/aggregate-function-builder.js"), exports);
|
|
39
|
+
__exportStar(require("./query-builder/case-builder.js"), exports);
|
|
40
|
+
__exportStar(require("./query-builder/json-path-builder.js"), exports);
|
|
38
41
|
__exportStar(require("./raw-builder/raw-builder.js"), exports);
|
|
39
42
|
__exportStar(require("./raw-builder/sql.js"), exports);
|
|
40
43
|
__exportStar(require("./query-executor/query-executor.js"), exports);
|
|
@@ -95,12 +98,14 @@ __exportStar(require("./plugin/kysely-plugin.js"), exports);
|
|
|
95
98
|
__exportStar(require("./plugin/camel-case/camel-case-plugin.js"), exports);
|
|
96
99
|
__exportStar(require("./plugin/deduplicate-joins/deduplicate-joins-plugin.js"), exports);
|
|
97
100
|
__exportStar(require("./plugin/with-schema/with-schema-plugin.js"), exports);
|
|
101
|
+
__exportStar(require("./plugin/parse-json-results/parse-json-results-plugin.js"), exports);
|
|
98
102
|
__exportStar(require("./operation-node/add-column-node.js"), exports);
|
|
99
103
|
__exportStar(require("./operation-node/add-constraint-node.js"), exports);
|
|
100
104
|
__exportStar(require("./operation-node/alias-node.js"), exports);
|
|
101
105
|
__exportStar(require("./operation-node/alter-column-node.js"), exports);
|
|
102
106
|
__exportStar(require("./operation-node/alter-table-node.js"), exports);
|
|
103
107
|
__exportStar(require("./operation-node/and-node.js"), exports);
|
|
108
|
+
__exportStar(require("./operation-node/case-node.js"), exports);
|
|
104
109
|
__exportStar(require("./operation-node/check-constraint-node.js"), exports);
|
|
105
110
|
__exportStar(require("./operation-node/column-definition-node.js"), exports);
|
|
106
111
|
__exportStar(require("./operation-node/column-node.js"), exports);
|
|
@@ -166,6 +171,7 @@ __exportStar(require("./operation-node/update-query-node.js"), exports);
|
|
|
166
171
|
__exportStar(require("./operation-node/value-list-node.js"), exports);
|
|
167
172
|
__exportStar(require("./operation-node/value-node.js"), exports);
|
|
168
173
|
__exportStar(require("./operation-node/values-node.js"), exports);
|
|
174
|
+
__exportStar(require("./operation-node/when-node.js"), exports);
|
|
169
175
|
__exportStar(require("./operation-node/where-node.js"), exports);
|
|
170
176
|
__exportStar(require("./operation-node/with-node.js"), exports);
|
|
171
177
|
__exportStar(require("./operation-node/explain-node.js"), exports);
|
|
@@ -178,6 +184,10 @@ __exportStar(require("./operation-node/set-operation-node.js"), exports);
|
|
|
178
184
|
__exportStar(require("./operation-node/binary-operation-node.js"), exports);
|
|
179
185
|
__exportStar(require("./operation-node/unary-operation-node.js"), exports);
|
|
180
186
|
__exportStar(require("./operation-node/using-node.js"), exports);
|
|
187
|
+
__exportStar(require("./operation-node/json-reference-node.js"), exports);
|
|
188
|
+
__exportStar(require("./operation-node/json-path-leg-node.js"), exports);
|
|
189
|
+
__exportStar(require("./operation-node/json-path-node.js"), exports);
|
|
190
|
+
__exportStar(require("./operation-node/json-operator-chain-node.js"), exports);
|
|
181
191
|
__exportStar(require("./util/column-type.js"), exports);
|
|
182
192
|
__exportStar(require("./util/compilable.js"), exports);
|
|
183
193
|
__exportStar(require("./util/explainable.js"), exports);
|
package/dist/cjs/kysely.d.ts
CHANGED
|
@@ -13,6 +13,8 @@ import { QueryResult } from './driver/database-connection.js';
|
|
|
13
13
|
import { CompiledQuery } from './query-compiler/compiled-query.js';
|
|
14
14
|
import { QueryId } from './util/query-id.js';
|
|
15
15
|
import { Compilable } from './util/compilable.js';
|
|
16
|
+
import { CaseBuilder } from './query-builder/case-builder.js';
|
|
17
|
+
import { Expression } from './expression/expression.js';
|
|
16
18
|
/**
|
|
17
19
|
* The main Kysely class.
|
|
18
20
|
*
|
|
@@ -75,21 +77,26 @@ export declare class Kysely<DB> extends QueryCreator<DB> implements QueryExecuto
|
|
|
75
77
|
* Returns a {@link DatabaseIntrospector | database introspector}.
|
|
76
78
|
*/
|
|
77
79
|
get introspection(): DatabaseIntrospector;
|
|
80
|
+
/**
|
|
81
|
+
* Creates a `case` statement/operator.
|
|
82
|
+
*
|
|
83
|
+
* See {@link ExpressionBuilder.case} for more information.
|
|
84
|
+
*/
|
|
85
|
+
case(): CaseBuilder<DB, keyof DB>;
|
|
86
|
+
case<V>(value: Expression<V>): CaseBuilder<DB, keyof DB, V>;
|
|
78
87
|
/**
|
|
79
88
|
* Returns a {@link FunctionModule} that can be used to write type safe function
|
|
80
89
|
* calls.
|
|
81
90
|
*
|
|
82
91
|
* ```ts
|
|
83
|
-
* const { count } = db.fn
|
|
84
|
-
*
|
|
85
92
|
* await db.selectFrom('person')
|
|
86
93
|
* .innerJoin('pet', 'pet.owner_id', 'person.id')
|
|
87
|
-
* .select([
|
|
94
|
+
* .select((eb) => [
|
|
88
95
|
* 'person.id',
|
|
89
|
-
* count('pet.id').as('pet_count')
|
|
96
|
+
* eb.fn.count('pet.id').as('pet_count')
|
|
90
97
|
* ])
|
|
91
98
|
* .groupBy('person.id')
|
|
92
|
-
* .having(count('pet.id'), '>', 10)
|
|
99
|
+
* .having((eb) => eb.fn.count('pet.id'), '>', 10)
|
|
93
100
|
* .execute()
|
|
94
101
|
* ```
|
|
95
102
|
*
|
|
@@ -120,25 +127,31 @@ export declare class Kysely<DB> extends QueryCreator<DB> implements QueryExecuto
|
|
|
120
127
|
*
|
|
121
128
|
* ### Examples
|
|
122
129
|
*
|
|
130
|
+
* <!-- siteExample("transactions", "Simple transaction", 10) -->
|
|
131
|
+
*
|
|
132
|
+
* This example inserts two rows in a transaction. If an error is thrown inside
|
|
133
|
+
* the callback passed to the `execute` method, the transaction is rolled back.
|
|
134
|
+
* Otherwise it's committed.
|
|
135
|
+
*
|
|
123
136
|
* ```ts
|
|
124
137
|
* const catto = await db.transaction().execute(async (trx) => {
|
|
125
138
|
* const jennifer = await trx.insertInto('person')
|
|
126
139
|
* .values({
|
|
127
140
|
* first_name: 'Jennifer',
|
|
128
141
|
* last_name: 'Aniston',
|
|
142
|
+
* age: 40,
|
|
129
143
|
* })
|
|
130
144
|
* .returning('id')
|
|
131
145
|
* .executeTakeFirstOrThrow()
|
|
132
146
|
*
|
|
133
|
-
* await someFunction(trx, jennifer)
|
|
134
|
-
*
|
|
135
147
|
* return await trx.insertInto('pet')
|
|
136
148
|
* .values({
|
|
137
|
-
*
|
|
149
|
+
* owner_id: jennifer.id,
|
|
138
150
|
* name: 'Catto',
|
|
139
|
-
* species: 'cat'
|
|
151
|
+
* species: 'cat',
|
|
152
|
+
* is_favorite: false,
|
|
140
153
|
* })
|
|
141
|
-
* .
|
|
154
|
+
* .returningAll()
|
|
142
155
|
* .executeTakeFirst()
|
|
143
156
|
* })
|
|
144
157
|
* ```
|
|
@@ -180,6 +193,10 @@ export declare class Kysely<DB> extends QueryCreator<DB> implements QueryExecuto
|
|
|
180
193
|
* Returns a copy of this Kysely instance without any plugins.
|
|
181
194
|
*/
|
|
182
195
|
withoutPlugins(): Kysely<DB>;
|
|
196
|
+
/**
|
|
197
|
+
* @override
|
|
198
|
+
*/
|
|
199
|
+
withSchema(schema: string): Kysely<DB>;
|
|
183
200
|
/**
|
|
184
201
|
* Returns a copy of this Kysely instance with tables added to its
|
|
185
202
|
* database type.
|
|
@@ -261,25 +278,31 @@ export declare class Transaction<DB> extends Kysely<DB> {
|
|
|
261
278
|
*
|
|
262
279
|
* ### Examples
|
|
263
280
|
*
|
|
281
|
+
* <!-- siteExample("transactions", "Simple transaction", 10) -->
|
|
282
|
+
*
|
|
283
|
+
* This example inserts two rows in a transaction. If an error is thrown inside
|
|
284
|
+
* the callback passed to the `execute` method, the transaction is rolled back.
|
|
285
|
+
* Otherwise it's committed.
|
|
286
|
+
*
|
|
264
287
|
* ```ts
|
|
265
288
|
* const catto = await db.transaction().execute(async (trx) => {
|
|
266
289
|
* const jennifer = await trx.insertInto('person')
|
|
267
290
|
* .values({
|
|
268
291
|
* first_name: 'Jennifer',
|
|
269
292
|
* last_name: 'Aniston',
|
|
293
|
+
* age: 40,
|
|
270
294
|
* })
|
|
271
295
|
* .returning('id')
|
|
272
296
|
* .executeTakeFirstOrThrow()
|
|
273
297
|
*
|
|
274
|
-
* await someFunction(trx, jennifer)
|
|
275
|
-
*
|
|
276
298
|
* return await trx.insertInto('pet')
|
|
277
299
|
* .values({
|
|
278
|
-
*
|
|
300
|
+
* owner_id: jennifer.id,
|
|
279
301
|
* name: 'Catto',
|
|
280
|
-
* species: 'cat'
|
|
302
|
+
* species: 'cat',
|
|
303
|
+
* is_favorite: false,
|
|
281
304
|
* })
|
|
282
|
-
* .
|
|
305
|
+
* .returningAll()
|
|
283
306
|
* .executeTakeFirst()
|
|
284
307
|
* })
|
|
285
308
|
* ```
|
|
@@ -327,6 +350,10 @@ export declare class Transaction<DB> extends Kysely<DB> {
|
|
|
327
350
|
* Returns a copy of this Kysely instance without any plugins.
|
|
328
351
|
*/
|
|
329
352
|
withoutPlugins(): Transaction<DB>;
|
|
353
|
+
/**
|
|
354
|
+
* @override
|
|
355
|
+
*/
|
|
356
|
+
withSchema(schema: string): Transaction<DB>;
|
|
330
357
|
/**
|
|
331
358
|
* Returns a copy of this Kysely instance with tables added to its
|
|
332
359
|
* database type.
|
package/dist/cjs/kysely.js
CHANGED
|
@@ -15,6 +15,10 @@ const function_module_js_1 = require("./query-builder/function-module.js");
|
|
|
15
15
|
const log_js_1 = require("./util/log.js");
|
|
16
16
|
const query_id_js_1 = require("./util/query-id.js");
|
|
17
17
|
const compilable_js_1 = require("./util/compilable.js");
|
|
18
|
+
const case_builder_js_1 = require("./query-builder/case-builder.js");
|
|
19
|
+
const case_node_js_1 = require("./operation-node/case-node.js");
|
|
20
|
+
const expression_parser_js_1 = require("./parser/expression-parser.js");
|
|
21
|
+
const with_schema_plugin_js_1 = require("./plugin/with-schema/with-schema-plugin.js");
|
|
18
22
|
/**
|
|
19
23
|
* The main Kysely class.
|
|
20
24
|
*
|
|
@@ -108,21 +112,24 @@ class Kysely extends query_creator_js_1.QueryCreator {
|
|
|
108
112
|
get introspection() {
|
|
109
113
|
return this.#props.dialect.createIntrospector(this.withoutPlugins());
|
|
110
114
|
}
|
|
115
|
+
case(value) {
|
|
116
|
+
return new case_builder_js_1.CaseBuilder({
|
|
117
|
+
node: case_node_js_1.CaseNode.create((0, object_utils_js_1.isUndefined)(value) ? undefined : (0, expression_parser_js_1.parseExpression)(value)),
|
|
118
|
+
});
|
|
119
|
+
}
|
|
111
120
|
/**
|
|
112
121
|
* Returns a {@link FunctionModule} that can be used to write type safe function
|
|
113
122
|
* calls.
|
|
114
123
|
*
|
|
115
124
|
* ```ts
|
|
116
|
-
* const { count } = db.fn
|
|
117
|
-
*
|
|
118
125
|
* await db.selectFrom('person')
|
|
119
126
|
* .innerJoin('pet', 'pet.owner_id', 'person.id')
|
|
120
|
-
* .select([
|
|
127
|
+
* .select((eb) => [
|
|
121
128
|
* 'person.id',
|
|
122
|
-
* count('pet.id').as('pet_count')
|
|
129
|
+
* eb.fn.count('pet.id').as('pet_count')
|
|
123
130
|
* ])
|
|
124
131
|
* .groupBy('person.id')
|
|
125
|
-
* .having(count('pet.id'), '>', 10)
|
|
132
|
+
* .having((eb) => eb.fn.count('pet.id'), '>', 10)
|
|
126
133
|
* .execute()
|
|
127
134
|
* ```
|
|
128
135
|
*
|
|
@@ -155,25 +162,31 @@ class Kysely extends query_creator_js_1.QueryCreator {
|
|
|
155
162
|
*
|
|
156
163
|
* ### Examples
|
|
157
164
|
*
|
|
165
|
+
* <!-- siteExample("transactions", "Simple transaction", 10) -->
|
|
166
|
+
*
|
|
167
|
+
* This example inserts two rows in a transaction. If an error is thrown inside
|
|
168
|
+
* the callback passed to the `execute` method, the transaction is rolled back.
|
|
169
|
+
* Otherwise it's committed.
|
|
170
|
+
*
|
|
158
171
|
* ```ts
|
|
159
172
|
* const catto = await db.transaction().execute(async (trx) => {
|
|
160
173
|
* const jennifer = await trx.insertInto('person')
|
|
161
174
|
* .values({
|
|
162
175
|
* first_name: 'Jennifer',
|
|
163
176
|
* last_name: 'Aniston',
|
|
177
|
+
* age: 40,
|
|
164
178
|
* })
|
|
165
179
|
* .returning('id')
|
|
166
180
|
* .executeTakeFirstOrThrow()
|
|
167
181
|
*
|
|
168
|
-
* await someFunction(trx, jennifer)
|
|
169
|
-
*
|
|
170
182
|
* return await trx.insertInto('pet')
|
|
171
183
|
* .values({
|
|
172
|
-
*
|
|
184
|
+
* owner_id: jennifer.id,
|
|
173
185
|
* name: 'Catto',
|
|
174
|
-
* species: 'cat'
|
|
186
|
+
* species: 'cat',
|
|
187
|
+
* is_favorite: false,
|
|
175
188
|
* })
|
|
176
|
-
* .
|
|
189
|
+
* .returningAll()
|
|
177
190
|
* .executeTakeFirst()
|
|
178
191
|
* })
|
|
179
192
|
* ```
|
|
@@ -229,6 +242,15 @@ class Kysely extends query_creator_js_1.QueryCreator {
|
|
|
229
242
|
executor: this.#props.executor.withoutPlugins(),
|
|
230
243
|
});
|
|
231
244
|
}
|
|
245
|
+
/**
|
|
246
|
+
* @override
|
|
247
|
+
*/
|
|
248
|
+
withSchema(schema) {
|
|
249
|
+
return new Kysely({
|
|
250
|
+
...this.#props,
|
|
251
|
+
executor: this.#props.executor.withPluginAtFront(new with_schema_plugin_js_1.WithSchemaPlugin(schema)),
|
|
252
|
+
});
|
|
253
|
+
}
|
|
232
254
|
/**
|
|
233
255
|
* Returns a copy of this Kysely instance with tables added to its
|
|
234
256
|
* database type.
|
|
@@ -330,6 +352,15 @@ class Transaction extends Kysely {
|
|
|
330
352
|
executor: this.#props.executor.withoutPlugins(),
|
|
331
353
|
});
|
|
332
354
|
}
|
|
355
|
+
/**
|
|
356
|
+
* @override
|
|
357
|
+
*/
|
|
358
|
+
withSchema(schema) {
|
|
359
|
+
return new Transaction({
|
|
360
|
+
...this.#props,
|
|
361
|
+
executor: this.#props.executor.withPluginAtFront(new with_schema_plugin_js_1.WithSchemaPlugin(schema)),
|
|
362
|
+
});
|
|
363
|
+
}
|
|
333
364
|
withTables() {
|
|
334
365
|
return new Transaction({ ...this.#props });
|
|
335
366
|
}
|
|
@@ -31,8 +31,8 @@ class FileMigrationProvider {
|
|
|
31
31
|
(fileName.endsWith('.ts') && !fileName.endsWith('.d.ts')) ||
|
|
32
32
|
fileName.endsWith('.mjs') ||
|
|
33
33
|
(fileName.endsWith('.mts') && !fileName.endsWith('.d.mts'))) {
|
|
34
|
-
const migration = await Promise.resolve(
|
|
35
|
-
/* webpackIgnore: true */ this.#props.path.join(this.#props.migrationFolder, fileName)));
|
|
34
|
+
const migration = await Promise.resolve(`${
|
|
35
|
+
/* webpackIgnore: true */ this.#props.path.join(this.#props.migrationFolder, fileName)}`).then(s => require(s));
|
|
36
36
|
const migrationKey = fileName.substring(0, fileName.lastIndexOf('.'));
|
|
37
37
|
// Handle esModuleInterop export's `default` prop...
|
|
38
38
|
if (isMigration(migration?.default)) {
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
2
|
import { OverNode } from './over-node.js';
|
|
3
|
-
import { SelectionNode } from './selection-node.js';
|
|
4
|
-
import { SimpleReferenceExpressionNode } from './simple-reference-expression-node.js';
|
|
5
3
|
import { WhereNode } from './where-node.js';
|
|
6
|
-
declare type AggregateFunction = 'avg' | 'count' | 'max' | 'min' | 'sum';
|
|
7
4
|
export interface AggregateFunctionNode extends OperationNode {
|
|
8
5
|
readonly kind: 'AggregateFunctionNode';
|
|
9
|
-
readonly func:
|
|
10
|
-
readonly aggregated:
|
|
6
|
+
readonly func: string;
|
|
7
|
+
readonly aggregated: readonly OperationNode[];
|
|
11
8
|
readonly distinct?: boolean;
|
|
12
9
|
readonly filter?: WhereNode;
|
|
13
10
|
readonly over?: OverNode;
|
|
@@ -17,10 +14,9 @@ export interface AggregateFunctionNode extends OperationNode {
|
|
|
17
14
|
*/
|
|
18
15
|
export declare const AggregateFunctionNode: Readonly<{
|
|
19
16
|
is(node: OperationNode): node is AggregateFunctionNode;
|
|
20
|
-
create(aggregateFunction:
|
|
17
|
+
create(aggregateFunction: string, aggregated?: readonly OperationNode[]): AggregateFunctionNode;
|
|
21
18
|
cloneWithDistinct(aggregateFunctionNode: AggregateFunctionNode): AggregateFunctionNode;
|
|
22
19
|
cloneWithFilter(aggregateFunctionNode: AggregateFunctionNode, filter: OperationNode): AggregateFunctionNode;
|
|
23
20
|
cloneWithOrFilter(aggregateFunctionNode: AggregateFunctionNode, filter: OperationNode): AggregateFunctionNode;
|
|
24
21
|
cloneWithOver(aggregateFunctionNode: AggregateFunctionNode, over?: OverNode): AggregateFunctionNode;
|
|
25
22
|
}>;
|
|
26
|
-
export {};
|
|
@@ -10,7 +10,7 @@ exports.AggregateFunctionNode = (0, object_utils_js_1.freeze)({
|
|
|
10
10
|
is(node) {
|
|
11
11
|
return node.kind === 'AggregateFunctionNode';
|
|
12
12
|
},
|
|
13
|
-
create(aggregateFunction, aggregated) {
|
|
13
|
+
create(aggregateFunction, aggregated = []) {
|
|
14
14
|
return (0, object_utils_js_1.freeze)({
|
|
15
15
|
kind: 'AggregateFunctionNode',
|
|
16
16
|
func: aggregateFunction,
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
2
|
import { ColumnNode } from './column-node.js';
|
|
3
|
-
import { DataTypeNode } from './data-type-node.js';
|
|
4
3
|
import { RawNode } from './raw-node.js';
|
|
5
|
-
export
|
|
4
|
+
export type AlterColumnNodeProps = Omit<AlterColumnNode, 'kind' | 'column'>;
|
|
6
5
|
export interface AlterColumnNode extends OperationNode {
|
|
7
6
|
readonly kind: 'AlterColumnNode';
|
|
8
7
|
readonly column: ColumnNode;
|
|
9
|
-
readonly dataType?:
|
|
8
|
+
readonly dataType?: OperationNode;
|
|
10
9
|
readonly dataTypeExpression?: RawNode;
|
|
11
10
|
readonly setDefault?: OperationNode;
|
|
12
11
|
readonly dropDefault?: true;
|
|
@@ -18,6 +17,5 @@ export interface AlterColumnNode extends OperationNode {
|
|
|
18
17
|
*/
|
|
19
18
|
export declare const AlterColumnNode: Readonly<{
|
|
20
19
|
is(node: OperationNode): node is AlterColumnNode;
|
|
21
|
-
create(column: string): AlterColumnNode;
|
|
22
|
-
cloneWith(node: AlterColumnNode, props: AlterColumnNodeProps): AlterColumnNode;
|
|
20
|
+
create<T extends "dataType" | "dataTypeExpression" | "setDefault" | "dropDefault" | "setNotNull" | "dropNotNull">(column: string, prop: T, value: Required<AlterColumnNodeProps>[T]): AlterColumnNode;
|
|
23
21
|
}>;
|
|
@@ -10,16 +10,11 @@ exports.AlterColumnNode = (0, object_utils_js_1.freeze)({
|
|
|
10
10
|
is(node) {
|
|
11
11
|
return node.kind === 'AlterColumnNode';
|
|
12
12
|
},
|
|
13
|
-
create(column) {
|
|
13
|
+
create(column, prop, value) {
|
|
14
14
|
return (0, object_utils_js_1.freeze)({
|
|
15
15
|
kind: 'AlterColumnNode',
|
|
16
16
|
column: column_node_js_1.ColumnNode.create(column),
|
|
17
|
-
|
|
18
|
-
},
|
|
19
|
-
cloneWith(node, props) {
|
|
20
|
-
return (0, object_utils_js_1.freeze)({
|
|
21
|
-
...node,
|
|
22
|
-
...props,
|
|
17
|
+
[prop]: value,
|
|
23
18
|
});
|
|
24
19
|
},
|
|
25
20
|
});
|
|
@@ -8,8 +8,8 @@ import { AlterColumnNode } from './alter-column-node.js';
|
|
|
8
8
|
import { AddConstraintNode } from './add-constraint-node.js';
|
|
9
9
|
import { DropConstraintNode } from './drop-constraint-node.js';
|
|
10
10
|
import { ModifyColumnNode } from './modify-column-node.js';
|
|
11
|
-
export
|
|
12
|
-
export
|
|
11
|
+
export type AlterTableNodeTableProps = Pick<AlterTableNode, 'renameTo' | 'setSchema' | 'addConstraint' | 'dropConstraint'>;
|
|
12
|
+
export type AlterTableColumnAlterationNode = RenameColumnNode | AddColumnNode | DropColumnNode | AlterColumnNode | ModifyColumnNode;
|
|
13
13
|
export interface AlterTableNode extends OperationNode {
|
|
14
14
|
readonly kind: 'AlterTableNode';
|
|
15
15
|
readonly table: TableNode;
|
|
@@ -24,7 +24,7 @@ export interface AlterTableNode extends OperationNode {
|
|
|
24
24
|
*/
|
|
25
25
|
export declare const AlterTableNode: Readonly<{
|
|
26
26
|
is(node: OperationNode): node is AlterTableNode;
|
|
27
|
-
create(table:
|
|
27
|
+
create(table: TableNode): AlterTableNode;
|
|
28
28
|
cloneWithTableProps(node: AlterTableNode, props: AlterTableNodeTableProps): AlterTableNode;
|
|
29
29
|
cloneWithColumnAlteration(node: AlterTableNode, columnAlteration: AlterTableColumnAlterationNode): AlterTableNode;
|
|
30
30
|
}>;
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AlterTableNode = void 0;
|
|
4
4
|
const object_utils_js_1 = require("../util/object-utils.js");
|
|
5
|
-
const table_node_js_1 = require("./table-node.js");
|
|
6
5
|
/**
|
|
7
6
|
* @internal
|
|
8
7
|
*/
|
|
@@ -13,7 +12,7 @@ exports.AlterTableNode = (0, object_utils_js_1.freeze)({
|
|
|
13
12
|
create(table) {
|
|
14
13
|
return (0, object_utils_js_1.freeze)({
|
|
15
14
|
kind: 'AlterTableNode',
|
|
16
|
-
table
|
|
15
|
+
table,
|
|
17
16
|
});
|
|
18
17
|
},
|
|
19
18
|
cloneWithTableProps(node, props) {
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { OperationNode } from './operation-node.js';
|
|
2
|
+
import { WhenNode } from './when-node.js';
|
|
3
|
+
export interface CaseNode extends OperationNode {
|
|
4
|
+
readonly kind: 'CaseNode';
|
|
5
|
+
readonly value?: OperationNode;
|
|
6
|
+
readonly when?: ReadonlyArray<WhenNode>;
|
|
7
|
+
readonly else?: OperationNode;
|
|
8
|
+
readonly isStatement?: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export declare const CaseNode: Readonly<{
|
|
14
|
+
is(node: OperationNode): node is CaseNode;
|
|
15
|
+
create(value?: OperationNode): CaseNode;
|
|
16
|
+
cloneWithWhen(caseNode: CaseNode, when: WhenNode): CaseNode;
|
|
17
|
+
cloneWithThen(caseNode: CaseNode, then: OperationNode): CaseNode;
|
|
18
|
+
cloneWith(caseNode: CaseNode, props: Partial<Pick<CaseNode, 'else' | 'isStatement'>>): CaseNode;
|
|
19
|
+
}>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CaseNode = void 0;
|
|
4
|
+
const object_utils_js_1 = require("../util/object-utils.js");
|
|
5
|
+
const when_node_js_1 = require("./when-node.js");
|
|
6
|
+
/**
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
exports.CaseNode = (0, object_utils_js_1.freeze)({
|
|
10
|
+
is(node) {
|
|
11
|
+
return node.kind === 'CaseNode';
|
|
12
|
+
},
|
|
13
|
+
create(value) {
|
|
14
|
+
return (0, object_utils_js_1.freeze)({
|
|
15
|
+
kind: 'CaseNode',
|
|
16
|
+
value,
|
|
17
|
+
});
|
|
18
|
+
},
|
|
19
|
+
cloneWithWhen(caseNode, when) {
|
|
20
|
+
return (0, object_utils_js_1.freeze)({
|
|
21
|
+
...caseNode,
|
|
22
|
+
when: (0, object_utils_js_1.freeze)(caseNode.when ? [...caseNode.when, when] : [when]),
|
|
23
|
+
});
|
|
24
|
+
},
|
|
25
|
+
cloneWithThen(caseNode, then) {
|
|
26
|
+
return (0, object_utils_js_1.freeze)({
|
|
27
|
+
...caseNode,
|
|
28
|
+
when: caseNode.when
|
|
29
|
+
? (0, object_utils_js_1.freeze)([
|
|
30
|
+
...caseNode.when.slice(0, -1),
|
|
31
|
+
when_node_js_1.WhenNode.cloneWithResult(caseNode.when[caseNode.when.length - 1], then),
|
|
32
|
+
])
|
|
33
|
+
: undefined,
|
|
34
|
+
});
|
|
35
|
+
},
|
|
36
|
+
cloneWith(caseNode, props) {
|
|
37
|
+
return (0, object_utils_js_1.freeze)({
|
|
38
|
+
...caseNode,
|
|
39
|
+
...props,
|
|
40
|
+
});
|
|
41
|
+
},
|
|
42
|
+
});
|
|
@@ -4,7 +4,7 @@ import { DefaultValueNode } from './default-value-node.js';
|
|
|
4
4
|
import { GeneratedNode } from './generated-node.js';
|
|
5
5
|
import { OperationNode } from './operation-node.js';
|
|
6
6
|
import { ReferencesNode } from './references-node.js';
|
|
7
|
-
export
|
|
7
|
+
export type ColumnDefinitionNodeProps = Omit<Partial<ColumnDefinitionNode>, 'kind' | 'dataType'>;
|
|
8
8
|
export interface ColumnDefinitionNode extends OperationNode {
|
|
9
9
|
readonly kind: 'ColumnDefinitionNode';
|
|
10
10
|
readonly column: ColumnNode;
|
|
@@ -2,4 +2,4 @@ import { CheckConstraintNode } from './check-constraint-node.js';
|
|
|
2
2
|
import { ForeignKeyConstraintNode } from './foreign-key-constraint-node.js';
|
|
3
3
|
import { PrimaryKeyConstraintNode } from './primary-constraint-node.js';
|
|
4
4
|
import { UniqueConstraintNode } from './unique-constraint-node.js';
|
|
5
|
-
export
|
|
5
|
+
export type ConstraintNode = PrimaryKeyConstraintNode | UniqueConstraintNode | CheckConstraintNode | ForeignKeyConstraintNode;
|