kysely 0.27.6 → 0.28.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/README.md +169 -1
- package/deno.check.d.ts +7 -0
- package/dist/cjs/dialect/mssql/mssql-dialect-config.d.ts +26 -16
- package/dist/cjs/dialect/mssql/mssql-driver.d.ts +6 -3
- package/dist/cjs/dialect/mssql/mssql-driver.js +33 -19
- package/dist/cjs/dialect/mssql/mssql-query-compiler.d.ts +2 -0
- package/dist/cjs/dialect/mssql/mssql-query-compiler.js +11 -0
- package/dist/cjs/dialect/mysql/mysql-driver.d.ts +4 -0
- package/dist/cjs/dialect/mysql/mysql-driver.js +27 -12
- package/dist/cjs/dialect/postgres/postgres-driver.d.ts +4 -0
- package/dist/cjs/dialect/postgres/postgres-driver.js +28 -18
- package/dist/cjs/dialect/postgres/postgres-introspector.js +7 -17
- package/dist/cjs/dialect/sqlite/sqlite-driver.d.ts +4 -0
- package/dist/cjs/dialect/sqlite/sqlite-driver.js +19 -13
- package/dist/cjs/dialect/sqlite/sqlite-query-compiler.d.ts +2 -0
- package/dist/cjs/dialect/sqlite/sqlite-query-compiler.js +4 -0
- package/dist/cjs/driver/database-connection.d.ts +0 -4
- package/dist/cjs/driver/driver.d.ts +17 -0
- package/dist/cjs/driver/driver.js +13 -1
- package/dist/cjs/driver/dummy-driver.d.ts +3 -0
- package/dist/cjs/driver/dummy-driver.js +9 -0
- package/dist/cjs/driver/runtime-driver.d.ts +4 -0
- package/dist/cjs/driver/runtime-driver.js +43 -3
- package/dist/cjs/expression/expression-builder.d.ts +7 -10
- package/dist/cjs/helpers/postgres.d.ts +48 -0
- package/dist/cjs/helpers/postgres.js +50 -0
- package/dist/cjs/index.d.ts +13 -2
- package/dist/cjs/index.js +13 -2
- package/dist/cjs/kysely.d.ts +339 -2
- package/dist/cjs/kysely.js +465 -11
- package/dist/cjs/migration/migrator.d.ts +8 -0
- package/dist/cjs/migration/migrator.js +1 -1
- package/dist/cjs/operation-node/aggregate-function-node.d.ts +2 -1
- package/dist/cjs/operation-node/aggregate-function-node.js +4 -3
- package/dist/cjs/operation-node/alter-table-node.d.ts +3 -1
- package/dist/cjs/operation-node/collate-node.d.ts +13 -0
- package/dist/cjs/operation-node/collate-node.js +19 -0
- package/dist/cjs/operation-node/constraint-node.d.ts +1 -1
- package/dist/cjs/operation-node/create-type-node.d.ts +1 -1
- package/dist/cjs/operation-node/create-type-node.js +1 -1
- package/dist/cjs/operation-node/delete-query-node.d.ts +8 -2
- package/dist/cjs/operation-node/delete-query-node.js +11 -15
- package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +4 -0
- package/dist/cjs/operation-node/insert-query-node.d.ts +3 -0
- package/dist/cjs/operation-node/join-node.d.ts +1 -1
- package/dist/cjs/operation-node/merge-query-node.d.ts +2 -0
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +106 -97
- package/dist/cjs/operation-node/operation-node-transformer.js +352 -312
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +9 -1
- package/dist/cjs/operation-node/operation-node-visitor.js +4 -0
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/or-action-node.d.ts +12 -0
- package/dist/cjs/operation-node/or-action-node.js +18 -0
- package/dist/cjs/operation-node/order-by-item-node.d.ts +5 -0
- package/dist/cjs/operation-node/order-by-item-node.js +6 -0
- package/dist/cjs/operation-node/primary-key-constraint-node.d.ts +29 -0
- package/dist/cjs/operation-node/{primary-constraint-node.js → primary-key-constraint-node.js} +11 -2
- package/dist/cjs/operation-node/query-node.d.ts +7 -0
- package/dist/cjs/operation-node/query-node.js +15 -0
- package/dist/cjs/operation-node/refresh-materialized-view-node.d.ts +17 -0
- package/dist/cjs/operation-node/refresh-materialized-view-node.js +25 -0
- package/dist/cjs/operation-node/rename-constraint-node.d.ts +14 -0
- package/dist/cjs/operation-node/rename-constraint-node.js +20 -0
- package/dist/cjs/operation-node/select-query-node.d.ts +8 -2
- package/dist/cjs/operation-node/select-query-node.js +11 -15
- package/dist/cjs/operation-node/unique-constraint-node.d.ts +2 -0
- package/dist/cjs/operation-node/update-query-node.d.ts +3 -4
- package/dist/cjs/operation-node/update-query-node.js +5 -2
- package/dist/cjs/parser/collate-parser.d.ts +1 -0
- package/dist/cjs/parser/collate-parser.js +2 -0
- package/dist/cjs/parser/delete-from-parser.d.ts +5 -0
- package/dist/cjs/parser/delete-from-parser.js +2 -0
- package/dist/cjs/parser/join-parser.d.ts +1 -1
- package/dist/cjs/parser/join-parser.js +7 -1
- package/dist/cjs/parser/merge-into-parser.d.ts +5 -0
- package/dist/cjs/parser/merge-into-parser.js +2 -0
- package/dist/cjs/parser/order-by-parser.d.ts +18 -5
- package/dist/cjs/parser/order-by-parser.js +24 -14
- package/dist/cjs/parser/savepoint-parser.d.ts +4 -0
- package/dist/cjs/parser/savepoint-parser.js +11 -0
- package/dist/cjs/parser/select-from-parser.d.ts +4 -0
- package/dist/cjs/parser/select-from-parser.js +2 -0
- package/dist/cjs/parser/table-parser.d.ts +2 -5
- package/dist/cjs/parser/update-parser.d.ts +5 -0
- package/dist/cjs/parser/update-parser.js +2 -0
- package/dist/cjs/parser/update-set-parser.d.ts +7 -4
- package/dist/cjs/plugin/camel-case/camel-case-plugin.js +1 -1
- package/dist/cjs/plugin/camel-case/camel-case-transformer.d.ts +2 -1
- package/dist/cjs/plugin/camel-case/camel-case-transformer.js +2 -2
- package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
- package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-transformer.d.ts +4 -3
- package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-transformer.js +6 -6
- package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.d.ts +211 -0
- package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.js +162 -0
- package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists-transformer.d.ts +8 -0
- package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists-transformer.js +29 -0
- package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists.d.ts +44 -0
- package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists.js +66 -0
- package/dist/cjs/plugin/immediate-value/immediate-value-plugin.js +1 -1
- package/dist/cjs/plugin/immediate-value/immediate-value-transformer.d.ts +2 -0
- package/dist/cjs/plugin/immediate-value/immediate-value-transformer.js +6 -4
- package/dist/cjs/plugin/with-schema/with-schema-plugin.js +1 -1
- package/dist/cjs/plugin/with-schema/with-schema-transformer.d.ts +6 -5
- package/dist/cjs/plugin/with-schema/with-schema-transformer.js +29 -24
- package/dist/cjs/query-builder/aggregate-function-builder.d.ts +83 -5
- package/dist/cjs/query-builder/aggregate-function-builder.js +15 -27
- package/dist/cjs/query-builder/cte-builder.js +0 -2
- package/dist/cjs/query-builder/delete-query-builder.d.ts +36 -47
- package/dist/cjs/query-builder/delete-query-builder.js +12 -78
- package/dist/cjs/query-builder/function-module.d.ts +31 -4
- package/dist/cjs/query-builder/insert-query-builder.d.ts +161 -6
- package/dist/cjs/query-builder/insert-query-builder.js +197 -10
- package/dist/cjs/query-builder/join-builder.js +0 -2
- package/dist/cjs/query-builder/merge-query-builder.d.ts +145 -3
- package/dist/cjs/query-builder/merge-query-builder.js +28 -7
- package/dist/cjs/query-builder/on-conflict-builder.js +0 -4
- package/dist/cjs/query-builder/order-by-interface.d.ts +176 -0
- package/dist/cjs/query-builder/order-by-interface.js +2 -0
- package/dist/cjs/query-builder/order-by-item-builder.d.ts +43 -0
- package/dist/cjs/query-builder/order-by-item-builder.js +75 -0
- package/dist/cjs/query-builder/over-builder.d.ts +43 -6
- package/dist/cjs/query-builder/over-builder.js +8 -25
- package/dist/cjs/query-builder/returning-interface.d.ts +20 -3
- package/dist/cjs/query-builder/select-query-builder.d.ts +279 -98
- package/dist/cjs/query-builder/select-query-builder.js +26 -26
- package/dist/cjs/query-builder/update-query-builder.d.ts +88 -9
- package/dist/cjs/query-builder/update-query-builder.js +17 -15
- package/dist/cjs/query-compiler/compiled-query.d.ts +2 -0
- package/dist/cjs/query-compiler/compiled-query.js +2 -0
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +17 -2
- package/dist/cjs/query-compiler/default-query-compiler.js +97 -2
- package/dist/cjs/query-compiler/query-compiler.d.ts +4 -2
- package/dist/cjs/query-creator.d.ts +23 -25
- package/dist/cjs/query-creator.js +280 -8
- package/dist/cjs/query-executor/default-query-executor.d.ts +2 -1
- package/dist/cjs/query-executor/default-query-executor.js +2 -2
- package/dist/cjs/query-executor/query-executor-base.js +7 -25
- package/dist/cjs/raw-builder/raw-builder.js +0 -3
- package/dist/cjs/raw-builder/sql.d.ts +3 -3
- package/dist/cjs/raw-builder/sql.js +1 -1
- package/dist/cjs/schema/alter-column-builder.js +0 -3
- package/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.d.ts +4 -0
- package/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.js +24 -2
- package/dist/cjs/schema/alter-table-add-index-builder.js +0 -2
- package/dist/cjs/schema/alter-table-builder.d.ts +7 -3
- package/dist/cjs/schema/alter-table-builder.js +21 -10
- package/dist/cjs/schema/alter-table-drop-constraint-builder.js +0 -2
- package/dist/cjs/schema/alter-table-executor.js +0 -2
- package/dist/cjs/schema/check-constraint-builder.d.ts +13 -0
- package/dist/cjs/schema/check-constraint-builder.js +20 -0
- package/dist/cjs/schema/column-definition-builder.js +0 -2
- package/dist/cjs/schema/create-index-builder.js +1 -3
- package/dist/cjs/schema/create-schema-builder.js +0 -2
- package/dist/cjs/schema/create-table-builder.d.ts +5 -4
- package/dist/cjs/schema/create-table-builder.js +9 -7
- package/dist/cjs/schema/create-type-builder.d.ts +1 -1
- package/dist/cjs/schema/create-type-builder.js +0 -2
- package/dist/cjs/schema/create-view-builder.js +0 -2
- package/dist/cjs/schema/drop-index-builder.js +0 -2
- package/dist/cjs/schema/drop-schema-builder.js +0 -2
- package/dist/cjs/schema/drop-table-builder.js +0 -2
- package/dist/cjs/schema/drop-type-builder.js +0 -2
- package/dist/cjs/schema/drop-view-builder.js +0 -2
- package/dist/cjs/schema/foreign-key-constraint-builder.d.ts +9 -0
- package/dist/cjs/schema/foreign-key-constraint-builder.js +16 -2
- package/dist/cjs/schema/primary-key-constraint-builder.d.ts +17 -0
- package/dist/cjs/schema/primary-key-constraint-builder.js +37 -0
- package/dist/cjs/schema/refresh-materialized-view-builder.d.ts +47 -0
- package/dist/cjs/schema/refresh-materialized-view-builder.js +75 -0
- package/dist/cjs/schema/schema.d.ts +14 -0
- package/dist/cjs/schema/schema.js +21 -0
- package/dist/cjs/schema/unique-constraint-builder.d.ts +10 -1
- package/dist/cjs/schema/unique-constraint-builder.js +26 -5
- package/dist/cjs/util/infer-result.d.ts +1 -1
- package/dist/cjs/util/log.d.ts +1 -0
- package/dist/cjs/util/log.js +3 -2
- package/dist/cjs/util/provide-controlled-connection.d.ts +7 -0
- package/dist/cjs/util/provide-controlled-connection.js +24 -0
- package/dist/esm/dialect/mssql/mssql-dialect-config.d.ts +26 -16
- package/dist/esm/dialect/mssql/mssql-driver.d.ts +6 -3
- package/dist/esm/dialect/mssql/mssql-driver.js +33 -19
- package/dist/esm/dialect/mssql/mssql-query-compiler.d.ts +2 -0
- package/dist/esm/dialect/mssql/mssql-query-compiler.js +11 -0
- package/dist/esm/dialect/mysql/mysql-driver.d.ts +4 -0
- package/dist/esm/dialect/mysql/mysql-driver.js +27 -12
- package/dist/esm/dialect/postgres/postgres-driver.d.ts +4 -0
- package/dist/esm/dialect/postgres/postgres-driver.js +28 -18
- package/dist/esm/dialect/postgres/postgres-introspector.js +7 -17
- package/dist/esm/dialect/sqlite/sqlite-driver.d.ts +4 -0
- package/dist/esm/dialect/sqlite/sqlite-driver.js +19 -13
- package/dist/esm/dialect/sqlite/sqlite-query-compiler.d.ts +2 -0
- package/dist/esm/dialect/sqlite/sqlite-query-compiler.js +4 -0
- package/dist/esm/driver/database-connection.d.ts +0 -4
- package/dist/esm/driver/driver.d.ts +17 -0
- package/dist/esm/driver/driver.js +11 -0
- package/dist/esm/driver/dummy-driver.d.ts +3 -0
- package/dist/esm/driver/dummy-driver.js +9 -0
- package/dist/esm/driver/runtime-driver.d.ts +4 -0
- package/dist/esm/driver/runtime-driver.js +43 -3
- package/dist/esm/expression/expression-builder.d.ts +7 -10
- package/dist/esm/helpers/postgres.d.ts +48 -0
- package/dist/esm/helpers/postgres.js +49 -0
- package/dist/esm/index.d.ts +13 -2
- package/dist/esm/index.js +11 -1
- package/dist/esm/kysely.d.ts +339 -2
- package/dist/esm/kysely.js +461 -10
- package/dist/esm/migration/migrator.d.ts +8 -0
- package/dist/esm/migration/migrator.js +1 -1
- package/dist/esm/operation-node/aggregate-function-node.d.ts +2 -1
- package/dist/esm/operation-node/aggregate-function-node.js +4 -3
- package/dist/esm/operation-node/alter-table-node.d.ts +3 -1
- package/dist/esm/operation-node/collate-node.d.ts +13 -0
- package/dist/esm/operation-node/collate-node.js +17 -0
- package/dist/esm/operation-node/constraint-node.d.ts +1 -1
- package/dist/esm/operation-node/create-type-node.d.ts +1 -1
- package/dist/esm/operation-node/create-type-node.js +1 -1
- package/dist/esm/operation-node/delete-query-node.d.ts +8 -2
- package/dist/esm/operation-node/delete-query-node.js +11 -15
- package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +4 -0
- package/dist/esm/operation-node/insert-query-node.d.ts +3 -0
- package/dist/esm/operation-node/join-node.d.ts +1 -1
- package/dist/esm/operation-node/merge-query-node.d.ts +2 -0
- package/dist/esm/operation-node/operation-node-transformer.d.ts +106 -97
- package/dist/esm/operation-node/operation-node-transformer.js +352 -312
- package/dist/esm/operation-node/operation-node-visitor.d.ts +9 -1
- package/dist/esm/operation-node/operation-node-visitor.js +4 -0
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/or-action-node.d.ts +12 -0
- package/dist/esm/operation-node/or-action-node.js +16 -0
- package/dist/esm/operation-node/order-by-item-node.d.ts +5 -0
- package/dist/esm/operation-node/order-by-item-node.js +6 -0
- package/dist/esm/operation-node/primary-key-constraint-node.d.ts +29 -0
- package/dist/esm/operation-node/{primary-constraint-node.js → primary-key-constraint-node.js} +11 -2
- package/dist/esm/operation-node/query-node.d.ts +7 -0
- package/dist/esm/operation-node/query-node.js +15 -0
- package/dist/esm/operation-node/refresh-materialized-view-node.d.ts +17 -0
- package/dist/esm/operation-node/refresh-materialized-view-node.js +23 -0
- package/dist/esm/operation-node/rename-constraint-node.d.ts +14 -0
- package/dist/esm/operation-node/rename-constraint-node.js +18 -0
- package/dist/esm/operation-node/select-query-node.d.ts +8 -2
- package/dist/esm/operation-node/select-query-node.js +11 -15
- package/dist/esm/operation-node/unique-constraint-node.d.ts +2 -0
- package/dist/esm/operation-node/update-query-node.d.ts +3 -4
- package/dist/esm/operation-node/update-query-node.js +5 -2
- package/dist/esm/parser/collate-parser.d.ts +1 -0
- package/dist/esm/parser/collate-parser.js +2 -0
- package/dist/esm/parser/delete-from-parser.d.ts +5 -0
- package/dist/esm/parser/delete-from-parser.js +2 -0
- package/dist/esm/parser/join-parser.d.ts +1 -1
- package/dist/esm/parser/join-parser.js +7 -1
- package/dist/esm/parser/merge-into-parser.d.ts +5 -0
- package/dist/esm/parser/merge-into-parser.js +2 -0
- package/dist/esm/parser/order-by-parser.d.ts +18 -5
- package/dist/esm/parser/order-by-parser.js +27 -17
- package/dist/esm/parser/savepoint-parser.d.ts +4 -0
- package/dist/esm/parser/savepoint-parser.js +9 -0
- package/dist/esm/parser/select-from-parser.d.ts +4 -0
- package/dist/esm/parser/select-from-parser.js +2 -0
- package/dist/esm/parser/table-parser.d.ts +2 -5
- package/dist/esm/parser/update-parser.d.ts +5 -0
- package/dist/esm/parser/update-parser.js +2 -0
- package/dist/esm/parser/update-set-parser.d.ts +7 -4
- package/dist/esm/plugin/camel-case/camel-case-plugin.js +1 -1
- package/dist/esm/plugin/camel-case/camel-case-transformer.d.ts +2 -1
- package/dist/esm/plugin/camel-case/camel-case-transformer.js +2 -2
- package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
- package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-transformer.d.ts +4 -3
- package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-transformer.js +6 -6
- package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.d.ts +211 -0
- package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.js +159 -0
- package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists-transformer.d.ts +8 -0
- package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists-transformer.js +26 -0
- package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists.d.ts +44 -0
- package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists.js +63 -0
- package/dist/esm/plugin/immediate-value/immediate-value-plugin.js +1 -1
- package/dist/esm/plugin/immediate-value/immediate-value-transformer.d.ts +2 -0
- package/dist/esm/plugin/immediate-value/immediate-value-transformer.js +6 -4
- package/dist/esm/plugin/with-schema/with-schema-plugin.js +1 -1
- package/dist/esm/plugin/with-schema/with-schema-transformer.d.ts +6 -5
- package/dist/esm/plugin/with-schema/with-schema-transformer.js +29 -24
- package/dist/esm/query-builder/aggregate-function-builder.d.ts +83 -5
- package/dist/esm/query-builder/aggregate-function-builder.js +15 -27
- package/dist/esm/query-builder/cte-builder.js +0 -2
- package/dist/esm/query-builder/delete-query-builder.d.ts +36 -47
- package/dist/esm/query-builder/delete-query-builder.js +12 -78
- package/dist/esm/query-builder/function-module.d.ts +31 -4
- package/dist/esm/query-builder/insert-query-builder.d.ts +161 -6
- package/dist/esm/query-builder/insert-query-builder.js +197 -10
- package/dist/esm/query-builder/join-builder.js +0 -2
- package/dist/esm/query-builder/merge-query-builder.d.ts +145 -3
- package/dist/esm/query-builder/merge-query-builder.js +29 -8
- package/dist/esm/query-builder/on-conflict-builder.js +0 -4
- package/dist/esm/query-builder/order-by-interface.d.ts +176 -0
- package/dist/esm/query-builder/order-by-interface.js +2 -0
- package/dist/esm/query-builder/order-by-item-builder.d.ts +43 -0
- package/dist/esm/query-builder/order-by-item-builder.js +72 -0
- package/dist/esm/query-builder/over-builder.d.ts +43 -6
- package/dist/esm/query-builder/over-builder.js +8 -25
- package/dist/esm/query-builder/returning-interface.d.ts +20 -3
- package/dist/esm/query-builder/select-query-builder.d.ts +279 -98
- package/dist/esm/query-builder/select-query-builder.js +26 -26
- package/dist/esm/query-builder/update-query-builder.d.ts +88 -9
- package/dist/esm/query-builder/update-query-builder.js +17 -15
- package/dist/esm/query-compiler/compiled-query.d.ts +2 -0
- package/dist/esm/query-compiler/compiled-query.js +2 -0
- package/dist/esm/query-compiler/default-query-compiler.d.ts +17 -2
- package/dist/esm/query-compiler/default-query-compiler.js +97 -2
- package/dist/esm/query-compiler/query-compiler.d.ts +4 -2
- package/dist/esm/query-creator.d.ts +23 -25
- package/dist/esm/query-creator.js +281 -9
- package/dist/esm/query-executor/default-query-executor.d.ts +2 -1
- package/dist/esm/query-executor/default-query-executor.js +2 -2
- package/dist/esm/query-executor/query-executor-base.js +7 -25
- package/dist/esm/raw-builder/raw-builder.js +0 -3
- package/dist/esm/raw-builder/sql.d.ts +3 -3
- package/dist/esm/raw-builder/sql.js +1 -1
- package/dist/esm/schema/alter-column-builder.js +0 -3
- package/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.d.ts +4 -0
- package/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.js +24 -2
- package/dist/esm/schema/alter-table-add-index-builder.js +0 -2
- package/dist/esm/schema/alter-table-builder.d.ts +7 -3
- package/dist/esm/schema/alter-table-builder.js +22 -11
- package/dist/esm/schema/alter-table-drop-constraint-builder.js +0 -2
- package/dist/esm/schema/alter-table-executor.js +0 -2
- package/dist/esm/schema/check-constraint-builder.d.ts +13 -0
- package/dist/esm/schema/check-constraint-builder.js +17 -0
- package/dist/esm/schema/column-definition-builder.js +0 -2
- package/dist/esm/schema/create-index-builder.js +1 -3
- package/dist/esm/schema/create-schema-builder.js +0 -2
- package/dist/esm/schema/create-table-builder.d.ts +5 -4
- package/dist/esm/schema/create-table-builder.js +10 -8
- package/dist/esm/schema/create-type-builder.d.ts +1 -1
- package/dist/esm/schema/create-type-builder.js +0 -2
- package/dist/esm/schema/create-view-builder.js +0 -2
- package/dist/esm/schema/drop-index-builder.js +0 -2
- package/dist/esm/schema/drop-schema-builder.js +0 -2
- package/dist/esm/schema/drop-table-builder.js +0 -2
- package/dist/esm/schema/drop-type-builder.js +0 -2
- package/dist/esm/schema/drop-view-builder.js +0 -2
- package/dist/esm/schema/foreign-key-constraint-builder.d.ts +9 -0
- package/dist/esm/schema/foreign-key-constraint-builder.js +16 -2
- package/dist/esm/schema/primary-key-constraint-builder.d.ts +17 -0
- package/dist/esm/schema/primary-key-constraint-builder.js +34 -0
- package/dist/esm/schema/refresh-materialized-view-builder.d.ts +47 -0
- package/dist/esm/schema/refresh-materialized-view-builder.js +72 -0
- package/dist/esm/schema/schema.d.ts +14 -0
- package/dist/esm/schema/schema.js +21 -0
- package/dist/esm/schema/unique-constraint-builder.d.ts +10 -1
- package/dist/esm/schema/unique-constraint-builder.js +26 -5
- package/dist/esm/util/infer-result.d.ts +1 -1
- package/dist/esm/util/log.d.ts +1 -0
- package/dist/esm/util/log.js +3 -2
- package/dist/esm/util/provide-controlled-connection.d.ts +7 -0
- package/dist/esm/util/provide-controlled-connection.js +22 -0
- package/outdated-typescript.d.ts +5 -0
- package/package.json +16 -2
- package/CONTRIBUTING.md +0 -168
- package/dist/cjs/operation-node/primary-constraint-node.d.ts +0 -15
- package/dist/cjs/util/prevent-await.d.ts +0 -1
- package/dist/cjs/util/prevent-await.js +0 -13
- package/dist/esm/operation-node/primary-constraint-node.d.ts +0 -15
- package/dist/esm/util/prevent-await.d.ts +0 -1
- package/dist/esm/util/prevent-await.js +0 -11
package/dist/cjs/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.logOnce = exports.expressionBuilder = void 0;
|
|
17
|
+
exports.createQueryId = exports.logOnce = exports.expressionBuilder = void 0;
|
|
18
18
|
__exportStar(require("./kysely.js"), exports);
|
|
19
19
|
__exportStar(require("./query-creator.js"), exports);
|
|
20
20
|
__exportStar(require("./expression/expression.js"), exports);
|
|
@@ -25,6 +25,7 @@ __exportStar(require("./query-builder/where-interface.js"), exports);
|
|
|
25
25
|
__exportStar(require("./query-builder/returning-interface.js"), exports);
|
|
26
26
|
__exportStar(require("./query-builder/output-interface.js"), exports);
|
|
27
27
|
__exportStar(require("./query-builder/having-interface.js"), exports);
|
|
28
|
+
__exportStar(require("./query-builder/order-by-interface.js"), exports);
|
|
28
29
|
__exportStar(require("./query-builder/select-query-builder.js"), exports);
|
|
29
30
|
__exportStar(require("./query-builder/insert-query-builder.js"), exports);
|
|
30
31
|
__exportStar(require("./query-builder/update-query-builder.js"), exports);
|
|
@@ -41,6 +42,7 @@ __exportStar(require("./query-builder/case-builder.js"), exports);
|
|
|
41
42
|
__exportStar(require("./query-builder/json-path-builder.js"), exports);
|
|
42
43
|
__exportStar(require("./query-builder/merge-query-builder.js"), exports);
|
|
43
44
|
__exportStar(require("./query-builder/merge-result.js"), exports);
|
|
45
|
+
__exportStar(require("./query-builder/order-by-item-builder.js"), exports);
|
|
44
46
|
__exportStar(require("./raw-builder/raw-builder.js"), exports);
|
|
45
47
|
__exportStar(require("./raw-builder/sql.js"), exports);
|
|
46
48
|
__exportStar(require("./query-executor/query-executor.js"), exports);
|
|
@@ -62,6 +64,7 @@ __exportStar(require("./schema/column-definition-builder.js"), exports);
|
|
|
62
64
|
__exportStar(require("./schema/foreign-key-constraint-builder.js"), exports);
|
|
63
65
|
__exportStar(require("./schema/alter-table-builder.js"), exports);
|
|
64
66
|
__exportStar(require("./schema/create-view-builder.js"), exports);
|
|
67
|
+
__exportStar(require("./schema/refresh-materialized-view-builder.js"), exports);
|
|
65
68
|
__exportStar(require("./schema/drop-view-builder.js"), exports);
|
|
66
69
|
__exportStar(require("./schema/alter-column-builder.js"), exports);
|
|
67
70
|
__exportStar(require("./dynamic/dynamic.js"), exports);
|
|
@@ -108,6 +111,8 @@ __exportStar(require("./plugin/camel-case/camel-case-plugin.js"), exports);
|
|
|
108
111
|
__exportStar(require("./plugin/deduplicate-joins/deduplicate-joins-plugin.js"), exports);
|
|
109
112
|
__exportStar(require("./plugin/with-schema/with-schema-plugin.js"), exports);
|
|
110
113
|
__exportStar(require("./plugin/parse-json-results/parse-json-results-plugin.js"), exports);
|
|
114
|
+
__exportStar(require("./plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.js"), exports);
|
|
115
|
+
__exportStar(require("./plugin/handle-empty-in-lists/handle-empty-in-lists.js"), exports);
|
|
111
116
|
__exportStar(require("./operation-node/add-column-node.js"), exports);
|
|
112
117
|
__exportStar(require("./operation-node/add-constraint-node.js"), exports);
|
|
113
118
|
__exportStar(require("./operation-node/add-index-node.js"), exports);
|
|
@@ -120,6 +125,7 @@ __exportStar(require("./operation-node/binary-operation-node.js"), exports);
|
|
|
120
125
|
__exportStar(require("./operation-node/case-node.js"), exports);
|
|
121
126
|
__exportStar(require("./operation-node/cast-node.js"), exports);
|
|
122
127
|
__exportStar(require("./operation-node/check-constraint-node.js"), exports);
|
|
128
|
+
__exportStar(require("./operation-node/collate-node.js"), exports);
|
|
123
129
|
__exportStar(require("./operation-node/column-definition-node.js"), exports);
|
|
124
130
|
__exportStar(require("./operation-node/column-node.js"), exports);
|
|
125
131
|
__exportStar(require("./operation-node/column-update-node.js"), exports);
|
|
@@ -131,6 +137,7 @@ __exportStar(require("./operation-node/create-schema-node.js"), exports);
|
|
|
131
137
|
__exportStar(require("./operation-node/create-table-node.js"), exports);
|
|
132
138
|
__exportStar(require("./operation-node/create-type-node.js"), exports);
|
|
133
139
|
__exportStar(require("./operation-node/create-view-node.js"), exports);
|
|
140
|
+
__exportStar(require("./operation-node/refresh-materialized-view-node.js"), exports);
|
|
134
141
|
__exportStar(require("./operation-node/data-type-node.js"), exports);
|
|
135
142
|
__exportStar(require("./operation-node/default-insert-value-node.js"), exports);
|
|
136
143
|
__exportStar(require("./operation-node/default-value-node.js"), exports);
|
|
@@ -172,6 +179,7 @@ __exportStar(require("./operation-node/operation-node-transformer.js"), exports)
|
|
|
172
179
|
__exportStar(require("./operation-node/operation-node-visitor.js"), exports);
|
|
173
180
|
__exportStar(require("./operation-node/operation-node.js"), exports);
|
|
174
181
|
__exportStar(require("./operation-node/operator-node.js"), exports);
|
|
182
|
+
__exportStar(require("./operation-node/or-action-node.js"), exports);
|
|
175
183
|
__exportStar(require("./operation-node/or-node.js"), exports);
|
|
176
184
|
__exportStar(require("./operation-node/order-by-item-node.js"), exports);
|
|
177
185
|
__exportStar(require("./operation-node/order-by-node.js"), exports);
|
|
@@ -180,13 +188,14 @@ __exportStar(require("./operation-node/over-node.js"), exports);
|
|
|
180
188
|
__exportStar(require("./operation-node/parens-node.js"), exports);
|
|
181
189
|
__exportStar(require("./operation-node/partition-by-item-node.js"), exports);
|
|
182
190
|
__exportStar(require("./operation-node/partition-by-node.js"), exports);
|
|
183
|
-
__exportStar(require("./operation-node/primary-constraint-node.js"), exports);
|
|
191
|
+
__exportStar(require("./operation-node/primary-key-constraint-node.js"), exports);
|
|
184
192
|
__exportStar(require("./operation-node/primitive-value-list-node.js"), exports);
|
|
185
193
|
__exportStar(require("./operation-node/query-node.js"), exports);
|
|
186
194
|
__exportStar(require("./operation-node/raw-node.js"), exports);
|
|
187
195
|
__exportStar(require("./operation-node/reference-node.js"), exports);
|
|
188
196
|
__exportStar(require("./operation-node/references-node.js"), exports);
|
|
189
197
|
__exportStar(require("./operation-node/rename-column-node.js"), exports);
|
|
198
|
+
__exportStar(require("./operation-node/rename-constraint-node.js"), exports);
|
|
190
199
|
__exportStar(require("./operation-node/returning-node.js"), exports);
|
|
191
200
|
__exportStar(require("./operation-node/schemable-identifier-node.js"), exports);
|
|
192
201
|
__exportStar(require("./operation-node/select-all-node.js"), exports);
|
|
@@ -216,3 +225,5 @@ __exportStar(require("./util/log.js"), exports);
|
|
|
216
225
|
__exportStar(require("./util/infer-result.js"), exports);
|
|
217
226
|
var log_once_js_1 = require("./util/log-once.js");
|
|
218
227
|
Object.defineProperty(exports, "logOnce", { enumerable: true, get: function () { return log_once_js_1.logOnce; } });
|
|
228
|
+
var query_id_js_1 = require("./util/query-id.js");
|
|
229
|
+
Object.defineProperty(exports, "createQueryId", { enumerable: true, get: function () { return query_id_js_1.createQueryId; } });
|
package/dist/cjs/kysely.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { QueryExecutor } from './query-executor/query-executor.js';
|
|
|
5
5
|
import { QueryCreator } from './query-creator.js';
|
|
6
6
|
import { KyselyPlugin } from './plugin/kysely-plugin.js';
|
|
7
7
|
import { DatabaseIntrospector } from './dialect/database-introspector.js';
|
|
8
|
-
import { Driver, IsolationLevel } from './driver/driver.js';
|
|
8
|
+
import { Driver, IsolationLevel, AccessMode } from './driver/driver.js';
|
|
9
9
|
import { FunctionModule } from './query-builder/function-module.js';
|
|
10
10
|
import { LogConfig } from './util/log.js';
|
|
11
11
|
import { QueryExecutorProvider } from './query-executor/query-executor-provider.js';
|
|
@@ -16,6 +16,8 @@ import { Compilable } from './util/compilable.js';
|
|
|
16
16
|
import { CaseBuilder } from './query-builder/case-builder.js';
|
|
17
17
|
import { Expression } from './expression/expression.js';
|
|
18
18
|
import { DrainOuterGeneric } from './util/type-utils.js';
|
|
19
|
+
import { ReleaseSavepoint, RollbackToSavepoint } from './parser/savepoint-parser.js';
|
|
20
|
+
import { ControlledConnection } from './util/provide-controlled-connection.js';
|
|
19
21
|
/**
|
|
20
22
|
* The main Kysely class.
|
|
21
23
|
*
|
|
@@ -49,7 +51,7 @@ import { DrainOuterGeneric } from './util/type-utils.js';
|
|
|
49
51
|
* in the database and values must be interfaces that describe the rows in those
|
|
50
52
|
* tables. See the examples above.
|
|
51
53
|
*/
|
|
52
|
-
export declare class Kysely<DB> extends QueryCreator<DB> implements QueryExecutorProvider {
|
|
54
|
+
export declare class Kysely<DB> extends QueryCreator<DB> implements QueryExecutorProvider, AsyncDisposable {
|
|
53
55
|
#private;
|
|
54
56
|
constructor(args: KyselyConfig);
|
|
55
57
|
constructor(args: KyselyProps);
|
|
@@ -141,6 +143,9 @@ export declare class Kysely<DB> extends QueryCreator<DB> implements QueryExecuto
|
|
|
141
143
|
* of type {@link Transaction} which inherits {@link Kysely}. Any query
|
|
142
144
|
* started through the transaction object is executed inside the transaction.
|
|
143
145
|
*
|
|
146
|
+
* To run a controlled transaction, allowing you to commit and rollback manually,
|
|
147
|
+
* use {@link startTransaction} instead.
|
|
148
|
+
*
|
|
144
149
|
* ### Examples
|
|
145
150
|
*
|
|
146
151
|
* <!-- siteExample("transactions", "Simple transaction", 10) -->
|
|
@@ -193,6 +198,118 @@ export declare class Kysely<DB> extends QueryCreator<DB> implements QueryExecuto
|
|
|
193
198
|
* ```
|
|
194
199
|
*/
|
|
195
200
|
transaction(): TransactionBuilder<DB>;
|
|
201
|
+
/**
|
|
202
|
+
* Creates a {@link ControlledTransactionBuilder} that can be used to run queries inside a controlled transaction.
|
|
203
|
+
*
|
|
204
|
+
* The returned {@link ControlledTransactionBuilder} can be used to configure the transaction.
|
|
205
|
+
* The {@link ControlledTransactionBuilder.execute} method can then be called
|
|
206
|
+
* to start the transaction and return a {@link ControlledTransaction}.
|
|
207
|
+
*
|
|
208
|
+
* A {@link ControlledTransaction} allows you to commit and rollback manually,
|
|
209
|
+
* execute savepoint commands. It extends {@link Transaction} which extends {@link Kysely},
|
|
210
|
+
* so you can run queries inside the transaction. Once the transaction is committed,
|
|
211
|
+
* or rolled back, it can't be used anymore - all queries will throw an error.
|
|
212
|
+
* This is to prevent accidentally running queries outside the transaction - where
|
|
213
|
+
* atomicity is not guaranteed anymore.
|
|
214
|
+
*
|
|
215
|
+
* ### Examples
|
|
216
|
+
*
|
|
217
|
+
* <!-- siteExample("transactions", "Controlled transaction", 11) -->
|
|
218
|
+
*
|
|
219
|
+
* A controlled transaction allows you to commit and rollback manually, execute
|
|
220
|
+
* savepoint commands, and queries in general.
|
|
221
|
+
*
|
|
222
|
+
* In this example we start a transaction, use it to insert two rows and then commit
|
|
223
|
+
* the transaction. If an error is thrown, we catch it and rollback the transaction.
|
|
224
|
+
*
|
|
225
|
+
* ```ts
|
|
226
|
+
* const trx = await db.startTransaction().execute()
|
|
227
|
+
*
|
|
228
|
+
* try {
|
|
229
|
+
* const jennifer = await trx.insertInto('person')
|
|
230
|
+
* .values({
|
|
231
|
+
* first_name: 'Jennifer',
|
|
232
|
+
* last_name: 'Aniston',
|
|
233
|
+
* age: 40,
|
|
234
|
+
* })
|
|
235
|
+
* .returning('id')
|
|
236
|
+
* .executeTakeFirstOrThrow()
|
|
237
|
+
*
|
|
238
|
+
* const catto = await trx.insertInto('pet')
|
|
239
|
+
* .values({
|
|
240
|
+
* owner_id: jennifer.id,
|
|
241
|
+
* name: 'Catto',
|
|
242
|
+
* species: 'cat',
|
|
243
|
+
* is_favorite: false,
|
|
244
|
+
* })
|
|
245
|
+
* .returningAll()
|
|
246
|
+
* .executeTakeFirstOrThrow()
|
|
247
|
+
*
|
|
248
|
+
* await trx.commit().execute()
|
|
249
|
+
*
|
|
250
|
+
* // ...
|
|
251
|
+
* } catch (error) {
|
|
252
|
+
* await trx.rollback().execute()
|
|
253
|
+
* }
|
|
254
|
+
* ```
|
|
255
|
+
*
|
|
256
|
+
* <!-- siteExample("transactions", "Controlled transaction /w savepoints", 12) -->
|
|
257
|
+
*
|
|
258
|
+
* A controlled transaction allows you to commit and rollback manually, execute
|
|
259
|
+
* savepoint commands, and queries in general.
|
|
260
|
+
*
|
|
261
|
+
* In this example we start a transaction, insert a person, create a savepoint,
|
|
262
|
+
* try inserting a toy and a pet, and if an error is thrown, we rollback to the
|
|
263
|
+
* savepoint. Eventually we release the savepoint, insert an audit record and
|
|
264
|
+
* commit the transaction. If an error is thrown, we catch it and rollback the
|
|
265
|
+
* transaction.
|
|
266
|
+
*
|
|
267
|
+
* ```ts
|
|
268
|
+
* const trx = await db.startTransaction().execute()
|
|
269
|
+
*
|
|
270
|
+
* try {
|
|
271
|
+
* const jennifer = await trx
|
|
272
|
+
* .insertInto('person')
|
|
273
|
+
* .values({
|
|
274
|
+
* first_name: 'Jennifer',
|
|
275
|
+
* last_name: 'Aniston',
|
|
276
|
+
* age: 40,
|
|
277
|
+
* })
|
|
278
|
+
* .returning('id')
|
|
279
|
+
* .executeTakeFirstOrThrow()
|
|
280
|
+
*
|
|
281
|
+
* const trxAfterJennifer = await trx.savepoint('after_jennifer').execute()
|
|
282
|
+
*
|
|
283
|
+
* try {
|
|
284
|
+
* const catto = await trxAfterJennifer
|
|
285
|
+
* .insertInto('pet')
|
|
286
|
+
* .values({
|
|
287
|
+
* owner_id: jennifer.id,
|
|
288
|
+
* name: 'Catto',
|
|
289
|
+
* species: 'cat',
|
|
290
|
+
* })
|
|
291
|
+
* .returning('id')
|
|
292
|
+
* .executeTakeFirstOrThrow()
|
|
293
|
+
*
|
|
294
|
+
* await trxAfterJennifer
|
|
295
|
+
* .insertInto('toy')
|
|
296
|
+
* .values({ name: 'Bone', price: 1.99, pet_id: catto.id })
|
|
297
|
+
* .execute()
|
|
298
|
+
* } catch (error) {
|
|
299
|
+
* await trxAfterJennifer.rollbackToSavepoint('after_jennifer').execute()
|
|
300
|
+
* }
|
|
301
|
+
*
|
|
302
|
+
* await trxAfterJennifer.releaseSavepoint('after_jennifer').execute()
|
|
303
|
+
*
|
|
304
|
+
* await trx.insertInto('audit').values({ action: 'added Jennifer' }).execute()
|
|
305
|
+
*
|
|
306
|
+
* await trx.commit().execute()
|
|
307
|
+
* } catch (error) {
|
|
308
|
+
* await trx.rollback().execute()
|
|
309
|
+
* }
|
|
310
|
+
* ```
|
|
311
|
+
*/
|
|
312
|
+
startTransaction(): ControlledTransactionBuilder<DB>;
|
|
196
313
|
/**
|
|
197
314
|
* Provides a kysely instance bound to a single database connection.
|
|
198
315
|
*
|
|
@@ -280,6 +397,7 @@ export declare class Kysely<DB> extends QueryCreator<DB> implements QueryExecuto
|
|
|
280
397
|
* See {@link https://github.com/kysely-org/kysely/blob/master/site/docs/recipes/0004-splitting-query-building-and-execution.md#execute-compiled-queries splitting build, compile and execute code recipe} for more information.
|
|
281
398
|
*/
|
|
282
399
|
executeQuery<R>(query: CompiledQuery<R> | Compilable<R>, queryId?: QueryId): Promise<QueryResult<R>>;
|
|
400
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
283
401
|
}
|
|
284
402
|
export declare class Transaction<DB> extends Kysely<DB> {
|
|
285
403
|
#private;
|
|
@@ -307,6 +425,9 @@ export declare class Transaction<DB> extends Kysely<DB> {
|
|
|
307
425
|
* of type {@link Transaction} which inherits {@link Kysely}. Any query
|
|
308
426
|
* started through the transaction object is executed inside the transaction.
|
|
309
427
|
*
|
|
428
|
+
* To run a controlled transaction, allowing you to commit and rollback manually,
|
|
429
|
+
* use {@link startTransaction} instead.
|
|
430
|
+
*
|
|
310
431
|
* ### Examples
|
|
311
432
|
*
|
|
312
433
|
* <!-- siteExample("transactions", "Simple transaction", 10) -->
|
|
@@ -495,10 +616,226 @@ interface ConnectionBuilderProps extends KyselyProps {
|
|
|
495
616
|
export declare class TransactionBuilder<DB> {
|
|
496
617
|
#private;
|
|
497
618
|
constructor(props: TransactionBuilderProps);
|
|
619
|
+
setAccessMode(accessMode: AccessMode): TransactionBuilder<DB>;
|
|
498
620
|
setIsolationLevel(isolationLevel: IsolationLevel): TransactionBuilder<DB>;
|
|
499
621
|
execute<T>(callback: (trx: Transaction<DB>) => Promise<T>): Promise<T>;
|
|
500
622
|
}
|
|
501
623
|
interface TransactionBuilderProps extends KyselyProps {
|
|
624
|
+
readonly accessMode?: AccessMode;
|
|
502
625
|
readonly isolationLevel?: IsolationLevel;
|
|
503
626
|
}
|
|
627
|
+
export declare class ControlledTransactionBuilder<DB> {
|
|
628
|
+
#private;
|
|
629
|
+
constructor(props: TransactionBuilderProps);
|
|
630
|
+
setAccessMode(accessMode: AccessMode): ControlledTransactionBuilder<DB>;
|
|
631
|
+
setIsolationLevel(isolationLevel: IsolationLevel): ControlledTransactionBuilder<DB>;
|
|
632
|
+
execute(): Promise<ControlledTransaction<DB>>;
|
|
633
|
+
}
|
|
634
|
+
export declare class ControlledTransaction<DB, S extends string[] = []> extends Transaction<DB> {
|
|
635
|
+
#private;
|
|
636
|
+
constructor(props: ControlledTransactionProps);
|
|
637
|
+
get isCommitted(): boolean;
|
|
638
|
+
get isRolledBack(): boolean;
|
|
639
|
+
/**
|
|
640
|
+
* Commits the transaction.
|
|
641
|
+
*
|
|
642
|
+
* See {@link rollback}.
|
|
643
|
+
*
|
|
644
|
+
* ### Examples
|
|
645
|
+
*
|
|
646
|
+
* ```ts
|
|
647
|
+
* import type { Kysely } from 'kysely'
|
|
648
|
+
* import type { Database } from 'type-editor' // imaginary module
|
|
649
|
+
*
|
|
650
|
+
* const trx = await db.startTransaction().execute()
|
|
651
|
+
*
|
|
652
|
+
* try {
|
|
653
|
+
* await doSomething(trx)
|
|
654
|
+
*
|
|
655
|
+
* await trx.commit().execute()
|
|
656
|
+
* } catch (error) {
|
|
657
|
+
* await trx.rollback().execute()
|
|
658
|
+
* }
|
|
659
|
+
*
|
|
660
|
+
* async function doSomething(kysely: Kysely<Database>) {}
|
|
661
|
+
* ```
|
|
662
|
+
*/
|
|
663
|
+
commit(): Command<void>;
|
|
664
|
+
/**
|
|
665
|
+
* Rolls back the transaction.
|
|
666
|
+
*
|
|
667
|
+
* See {@link commit} and {@link rollbackToSavepoint}.
|
|
668
|
+
*
|
|
669
|
+
* ### Examples
|
|
670
|
+
*
|
|
671
|
+
* ```ts
|
|
672
|
+
* import type { Kysely } from 'kysely'
|
|
673
|
+
* import type { Database } from 'type-editor' // imaginary module
|
|
674
|
+
*
|
|
675
|
+
* const trx = await db.startTransaction().execute()
|
|
676
|
+
*
|
|
677
|
+
* try {
|
|
678
|
+
* await doSomething(trx)
|
|
679
|
+
*
|
|
680
|
+
* await trx.commit().execute()
|
|
681
|
+
* } catch (error) {
|
|
682
|
+
* await trx.rollback().execute()
|
|
683
|
+
* }
|
|
684
|
+
*
|
|
685
|
+
* async function doSomething(kysely: Kysely<Database>) {}
|
|
686
|
+
* ```
|
|
687
|
+
*/
|
|
688
|
+
rollback(): Command<void>;
|
|
689
|
+
/**
|
|
690
|
+
* Creates a savepoint with a given name.
|
|
691
|
+
*
|
|
692
|
+
* See {@link rollbackToSavepoint} and {@link releaseSavepoint}.
|
|
693
|
+
*
|
|
694
|
+
* For a type-safe experience, you should use the returned instance from now on.
|
|
695
|
+
*
|
|
696
|
+
* ### Examples
|
|
697
|
+
*
|
|
698
|
+
* ```ts
|
|
699
|
+
* import type { Kysely } from 'kysely'
|
|
700
|
+
* import type { Database } from 'type-editor' // imaginary module
|
|
701
|
+
*
|
|
702
|
+
* const trx = await db.startTransaction().execute()
|
|
703
|
+
*
|
|
704
|
+
* await insertJennifer(trx)
|
|
705
|
+
*
|
|
706
|
+
* const trxAfterJennifer = await trx.savepoint('after_jennifer').execute()
|
|
707
|
+
*
|
|
708
|
+
* try {
|
|
709
|
+
* await doSomething(trxAfterJennifer)
|
|
710
|
+
* } catch (error) {
|
|
711
|
+
* await trxAfterJennifer.rollbackToSavepoint('after_jennifer').execute()
|
|
712
|
+
* }
|
|
713
|
+
*
|
|
714
|
+
* async function insertJennifer(kysely: Kysely<Database>) {}
|
|
715
|
+
* async function doSomething(kysely: Kysely<Database>) {}
|
|
716
|
+
* ```
|
|
717
|
+
*/
|
|
718
|
+
savepoint<SN extends string>(savepointName: SN extends S ? never : SN): Command<ControlledTransaction<DB, [...S, SN]>>;
|
|
719
|
+
/**
|
|
720
|
+
* Rolls back to a savepoint with a given name.
|
|
721
|
+
*
|
|
722
|
+
* See {@link savepoint} and {@link releaseSavepoint}.
|
|
723
|
+
*
|
|
724
|
+
* You must use the same instance returned by {@link savepoint}, or
|
|
725
|
+
* escape the type-check by using `as any`.
|
|
726
|
+
*
|
|
727
|
+
* ### Examples
|
|
728
|
+
*
|
|
729
|
+
* ```ts
|
|
730
|
+
* import type { Kysely } from 'kysely'
|
|
731
|
+
* import type { Database } from 'type-editor' // imaginary module
|
|
732
|
+
*
|
|
733
|
+
* const trx = await db.startTransaction().execute()
|
|
734
|
+
*
|
|
735
|
+
* await insertJennifer(trx)
|
|
736
|
+
*
|
|
737
|
+
* const trxAfterJennifer = await trx.savepoint('after_jennifer').execute()
|
|
738
|
+
*
|
|
739
|
+
* try {
|
|
740
|
+
* await doSomething(trxAfterJennifer)
|
|
741
|
+
* } catch (error) {
|
|
742
|
+
* await trxAfterJennifer.rollbackToSavepoint('after_jennifer').execute()
|
|
743
|
+
* }
|
|
744
|
+
*
|
|
745
|
+
* async function insertJennifer(kysely: Kysely<Database>) {}
|
|
746
|
+
* async function doSomething(kysely: Kysely<Database>) {}
|
|
747
|
+
* ```
|
|
748
|
+
*/
|
|
749
|
+
rollbackToSavepoint<SN extends S[number]>(savepointName: SN): RollbackToSavepoint<S, SN> extends string[] ? Command<ControlledTransaction<DB, RollbackToSavepoint<S, SN>>> : never;
|
|
750
|
+
/**
|
|
751
|
+
* Releases a savepoint with a given name.
|
|
752
|
+
*
|
|
753
|
+
* See {@link savepoint} and {@link rollbackToSavepoint}.
|
|
754
|
+
*
|
|
755
|
+
* You must use the same instance returned by {@link savepoint}, or
|
|
756
|
+
* escape the type-check by using `as any`.
|
|
757
|
+
*
|
|
758
|
+
* ### Examples
|
|
759
|
+
*
|
|
760
|
+
* ```ts
|
|
761
|
+
* import type { Kysely } from 'kysely'
|
|
762
|
+
* import type { Database } from 'type-editor' // imaginary module
|
|
763
|
+
*
|
|
764
|
+
* const trx = await db.startTransaction().execute()
|
|
765
|
+
*
|
|
766
|
+
* await insertJennifer(trx)
|
|
767
|
+
*
|
|
768
|
+
* const trxAfterJennifer = await trx.savepoint('after_jennifer').execute()
|
|
769
|
+
*
|
|
770
|
+
* try {
|
|
771
|
+
* await doSomething(trxAfterJennifer)
|
|
772
|
+
* } catch (error) {
|
|
773
|
+
* await trxAfterJennifer.rollbackToSavepoint('after_jennifer').execute()
|
|
774
|
+
* }
|
|
775
|
+
*
|
|
776
|
+
* await trxAfterJennifer.releaseSavepoint('after_jennifer').execute()
|
|
777
|
+
*
|
|
778
|
+
* await doSomethingElse(trx)
|
|
779
|
+
*
|
|
780
|
+
* async function insertJennifer(kysely: Kysely<Database>) {}
|
|
781
|
+
* async function doSomething(kysely: Kysely<Database>) {}
|
|
782
|
+
* async function doSomethingElse(kysely: Kysely<Database>) {}
|
|
783
|
+
* ```
|
|
784
|
+
*/
|
|
785
|
+
releaseSavepoint<SN extends S[number]>(savepointName: SN): ReleaseSavepoint<S, SN> extends string[] ? Command<ControlledTransaction<DB, ReleaseSavepoint<S, SN>>> : never;
|
|
786
|
+
/**
|
|
787
|
+
* Returns a copy of this Kysely instance with the given plugin installed.
|
|
788
|
+
*/
|
|
789
|
+
withPlugin(plugin: KyselyPlugin): ControlledTransaction<DB, S>;
|
|
790
|
+
/**
|
|
791
|
+
* Returns a copy of this Kysely instance without any plugins.
|
|
792
|
+
*/
|
|
793
|
+
withoutPlugins(): ControlledTransaction<DB, S>;
|
|
794
|
+
/**
|
|
795
|
+
* @override
|
|
796
|
+
*/
|
|
797
|
+
withSchema(schema: string): ControlledTransaction<DB, S>;
|
|
798
|
+
/**
|
|
799
|
+
* Returns a copy of this Kysely instance with tables added to its
|
|
800
|
+
* database type.
|
|
801
|
+
*
|
|
802
|
+
* This method only modifies the types and doesn't affect any of the
|
|
803
|
+
* executed queries in any way.
|
|
804
|
+
*
|
|
805
|
+
* ### Examples
|
|
806
|
+
*
|
|
807
|
+
* The following example adds and uses a temporary table:
|
|
808
|
+
*
|
|
809
|
+
* ```ts
|
|
810
|
+
* await db.schema
|
|
811
|
+
* .createTable('temp_table')
|
|
812
|
+
* .temporary()
|
|
813
|
+
* .addColumn('some_column', 'integer')
|
|
814
|
+
* .execute()
|
|
815
|
+
*
|
|
816
|
+
* const tempDb = db.withTables<{
|
|
817
|
+
* temp_table: {
|
|
818
|
+
* some_column: number
|
|
819
|
+
* }
|
|
820
|
+
* }>()
|
|
821
|
+
*
|
|
822
|
+
* await tempDb
|
|
823
|
+
* .insertInto('temp_table')
|
|
824
|
+
* .values({ some_column: 100 })
|
|
825
|
+
* .execute()
|
|
826
|
+
* ```
|
|
827
|
+
*/
|
|
828
|
+
withTables<T extends Record<string, Record<string, any>>>(): ControlledTransaction<DrainOuterGeneric<DB & T>, S>;
|
|
829
|
+
}
|
|
830
|
+
interface ControlledTransactionProps extends KyselyProps {
|
|
831
|
+
readonly connection: ControlledConnection;
|
|
832
|
+
}
|
|
833
|
+
export declare class Command<T> {
|
|
834
|
+
#private;
|
|
835
|
+
constructor(cb: () => Promise<T>);
|
|
836
|
+
/**
|
|
837
|
+
* Executes the command.
|
|
838
|
+
*/
|
|
839
|
+
execute(): Promise<T>;
|
|
840
|
+
}
|
|
504
841
|
export {};
|