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
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CreateIndexBuilder = void 0;
|
|
4
4
|
const create_index_node_js_1 = require("../operation-node/create-index-node.js");
|
|
5
|
-
const list_node_js_1 = require("../operation-node/list-node.js");
|
|
6
5
|
const raw_node_js_1 = require("../operation-node/raw-node.js");
|
|
7
6
|
const reference_parser_js_1 = require("../parser/reference-parser.js");
|
|
8
7
|
const table_parser_js_1 = require("../parser/table-parser.js");
|
|
@@ -52,29 +51,62 @@ class CreateIndexBuilder {
|
|
|
52
51
|
});
|
|
53
52
|
}
|
|
54
53
|
/**
|
|
55
|
-
*
|
|
54
|
+
* Adds a column to the index.
|
|
56
55
|
*
|
|
57
|
-
* Also see
|
|
56
|
+
* Also see {@link columns} for adding multiple columns at once or {@link expression}
|
|
57
|
+
* for specifying an arbitrary expression.
|
|
58
|
+
*
|
|
59
|
+
* ### Examples
|
|
60
|
+
*
|
|
61
|
+
* ```ts
|
|
62
|
+
* await db.schema
|
|
63
|
+
* .createIndex('person_first_name_and_age_index')
|
|
64
|
+
* .on('person')
|
|
65
|
+
* .column('first_name')
|
|
66
|
+
* .column('age desc')
|
|
67
|
+
* .execute()
|
|
68
|
+
* ```
|
|
69
|
+
*
|
|
70
|
+
* The generated SQL (PostgreSQL):
|
|
71
|
+
*
|
|
72
|
+
* ```sql
|
|
73
|
+
* create index "person_first_name_and_age_index" on "person" ("first_name", "age" desc)
|
|
74
|
+
* ```
|
|
58
75
|
*/
|
|
59
76
|
column(column) {
|
|
60
77
|
return new CreateIndexBuilder({
|
|
61
78
|
...this.#props,
|
|
62
|
-
node: create_index_node_js_1.CreateIndexNode.
|
|
63
|
-
|
|
64
|
-
|
|
79
|
+
node: create_index_node_js_1.CreateIndexNode.cloneWithColumns(this.#props.node, [
|
|
80
|
+
(0, reference_parser_js_1.parseOrderedColumnName)(column),
|
|
81
|
+
]),
|
|
65
82
|
});
|
|
66
83
|
}
|
|
67
84
|
/**
|
|
68
85
|
* Specifies a list of columns for the index.
|
|
69
86
|
*
|
|
70
|
-
* Also see
|
|
87
|
+
* Also see {@link column} for adding a single column or {@link expression} for
|
|
88
|
+
* specifying an arbitrary expression.
|
|
89
|
+
*
|
|
90
|
+
* ### Examples
|
|
91
|
+
*
|
|
92
|
+
* ```ts
|
|
93
|
+
* await db.schema
|
|
94
|
+
* .createIndex('person_first_name_and_age_index')
|
|
95
|
+
* .on('person')
|
|
96
|
+
* .columns(['first_name', 'age desc'])
|
|
97
|
+
* .execute()
|
|
98
|
+
* ```
|
|
99
|
+
*
|
|
100
|
+
* The generated SQL (PostgreSQL):
|
|
101
|
+
*
|
|
102
|
+
* ```sql
|
|
103
|
+
* create index "person_first_name_and_age_index" on "person" ("first_name", "age" desc)
|
|
104
|
+
* ```
|
|
71
105
|
*/
|
|
72
106
|
columns(columns) {
|
|
73
107
|
return new CreateIndexBuilder({
|
|
74
108
|
...this.#props,
|
|
75
|
-
node: create_index_node_js_1.CreateIndexNode.
|
|
76
|
-
expression: list_node_js_1.ListNode.create(columns.map(reference_parser_js_1.parseColumnName)),
|
|
77
|
-
}),
|
|
109
|
+
node: create_index_node_js_1.CreateIndexNode.cloneWithColumns(this.#props.node, columns.map(reference_parser_js_1.parseOrderedColumnName)),
|
|
78
110
|
});
|
|
79
111
|
}
|
|
80
112
|
/**
|
|
@@ -91,13 +123,19 @@ class CreateIndexBuilder {
|
|
|
91
123
|
* .expression(sql`first_name COLLATE "fi_FI"`)
|
|
92
124
|
* .execute()
|
|
93
125
|
* ```
|
|
126
|
+
*
|
|
127
|
+
* The generated SQL (PostgreSQL):
|
|
128
|
+
*
|
|
129
|
+
* ```sql
|
|
130
|
+
* create index "person_first_name_index" on "person" (first_name COLLATE "fi_FI")
|
|
131
|
+
* ```
|
|
94
132
|
*/
|
|
95
133
|
expression(expression) {
|
|
96
134
|
return new CreateIndexBuilder({
|
|
97
135
|
...this.#props,
|
|
98
|
-
node: create_index_node_js_1.CreateIndexNode.
|
|
99
|
-
expression
|
|
100
|
-
|
|
136
|
+
node: create_index_node_js_1.CreateIndexNode.cloneWithColumns(this.#props.node, [
|
|
137
|
+
expression.toOperationNode(),
|
|
138
|
+
]),
|
|
101
139
|
});
|
|
102
140
|
}
|
|
103
141
|
using(indexType) {
|
|
@@ -112,7 +150,7 @@ class CreateIndexBuilder {
|
|
|
112
150
|
const transformer = new immediate_value_transformer_js_1.ImmediateValueTransformer();
|
|
113
151
|
return new CreateIndexBuilder({
|
|
114
152
|
...this.#props,
|
|
115
|
-
node: query_node_js_1.QueryNode.cloneWithWhere(this.#props.node, transformer.transformNode((0, binary_operation_parser_js_1.
|
|
153
|
+
node: query_node_js_1.QueryNode.cloneWithWhere(this.#props.node, transformer.transformNode((0, binary_operation_parser_js_1.parseFilter)(args))),
|
|
116
154
|
});
|
|
117
155
|
}
|
|
118
156
|
/**
|
|
@@ -238,10 +238,6 @@ export declare class CreateTableBuilder<TB extends string, C extends string = ne
|
|
|
238
238
|
* ```
|
|
239
239
|
*/
|
|
240
240
|
$call<T>(func: (qb: this) => T): T;
|
|
241
|
-
/**
|
|
242
|
-
* @deprecated Use `$call` instead
|
|
243
|
-
*/
|
|
244
|
-
call<T>(func: (qb: this) => T): T;
|
|
245
241
|
toOperationNode(): CreateTableNode;
|
|
246
242
|
compile(): CompiledQuery;
|
|
247
243
|
execute(): Promise<void>;
|
|
@@ -251,5 +247,5 @@ export interface CreateTableBuilderProps {
|
|
|
251
247
|
readonly executor: QueryExecutor;
|
|
252
248
|
readonly node: CreateTableNode;
|
|
253
249
|
}
|
|
254
|
-
export
|
|
255
|
-
export
|
|
250
|
+
export type ColumnBuilderCallback = (builder: ColumnDefinitionBuilder) => ColumnDefinitionBuilder;
|
|
251
|
+
export type ForeignKeyConstraintBuilderCallback = (builder: ForeignKeyConstraintBuilder) => ForeignKeyConstraintBuilder;
|
|
@@ -307,12 +307,6 @@ class CreateTableBuilder {
|
|
|
307
307
|
$call(func) {
|
|
308
308
|
return func(this);
|
|
309
309
|
}
|
|
310
|
-
/**
|
|
311
|
-
* @deprecated Use `$call` instead
|
|
312
|
-
*/
|
|
313
|
-
call(func) {
|
|
314
|
-
return this.$call(func);
|
|
315
|
-
}
|
|
316
310
|
toOperationNode() {
|
|
317
311
|
return this.#props.executor.transformQuery(this.#props.node, this.#props.queryId);
|
|
318
312
|
}
|
|
@@ -139,8 +139,7 @@ export declare class SchemaModule {
|
|
|
139
139
|
* ```ts
|
|
140
140
|
* await db.schema
|
|
141
141
|
* .alterTable('person')
|
|
142
|
-
* .alterColumn('first_name')
|
|
143
|
-
* .setDataType('text')
|
|
142
|
+
* .alterColumn('first_name', (ac) => ac.setDataType('text'))
|
|
144
143
|
* .execute()
|
|
145
144
|
* ```
|
|
146
145
|
*/
|
|
@@ -193,8 +193,7 @@ class SchemaModule {
|
|
|
193
193
|
* ```ts
|
|
194
194
|
* await db.schema
|
|
195
195
|
* .alterTable('person')
|
|
196
|
-
* .alterColumn('first_name')
|
|
197
|
-
* .setDataType('text')
|
|
196
|
+
* .alterColumn('first_name', (ac) => ac.setDataType('text'))
|
|
198
197
|
* .execute()
|
|
199
198
|
* ```
|
|
200
199
|
*/
|
|
@@ -202,7 +201,7 @@ class SchemaModule {
|
|
|
202
201
|
return new alter_table_builder_js_1.AlterTableBuilder({
|
|
203
202
|
queryId: (0, query_id_js_1.createQueryId)(),
|
|
204
203
|
executor: this.#executor,
|
|
205
|
-
node: alter_table_node_js_1.AlterTableNode.create(table),
|
|
204
|
+
node: alter_table_node_js_1.AlterTableNode.create((0, table_parser_js_1.parseTable)(table)),
|
|
206
205
|
});
|
|
207
206
|
}
|
|
208
207
|
/**
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
* ColumnType<Date, string, never>
|
|
34
34
|
* ```
|
|
35
35
|
*/
|
|
36
|
-
export
|
|
36
|
+
export type ColumnType<SelectType, InsertType = SelectType, UpdateType = SelectType> = {
|
|
37
37
|
readonly __select__: SelectType;
|
|
38
38
|
readonly __insert__: InsertType;
|
|
39
39
|
readonly __update__: UpdateType;
|
|
@@ -51,50 +51,55 @@ export declare type ColumnType<SelectType, InsertType = SelectType, UpdateType =
|
|
|
51
51
|
* type Generated<S> = ColumnType<S, S | undefined, S>
|
|
52
52
|
* ```
|
|
53
53
|
*/
|
|
54
|
-
export
|
|
54
|
+
export type Generated<S> = ColumnType<S, S | undefined, S>;
|
|
55
55
|
/**
|
|
56
56
|
* A shortcut for defining columns that are only database-generated
|
|
57
57
|
* (like postgres GENERATED ALWAYS AS IDENTITY). No insert/update
|
|
58
58
|
* is allowed.
|
|
59
59
|
*/
|
|
60
|
-
export
|
|
60
|
+
export type GeneratedAlways<S> = ColumnType<S, never, never>;
|
|
61
|
+
/**
|
|
62
|
+
* A shortcut for defining JSON columns, which are by default inserted/updated
|
|
63
|
+
* as stringified JSON strings.
|
|
64
|
+
*/
|
|
65
|
+
export type JSONColumnType<SelectType extends object | null, InsertType = string, UpdateType = string> = ColumnType<SelectType, InsertType, UpdateType>;
|
|
61
66
|
/**
|
|
62
67
|
* Evaluates to `K` if `T` can be `null` or `undefined`.
|
|
63
68
|
*/
|
|
64
|
-
|
|
69
|
+
type IfNullable<T, K> = undefined extends T ? K : null extends T ? K : never;
|
|
65
70
|
/**
|
|
66
71
|
* Evaluates to `K` if `T` can't be `null` or `undefined`.
|
|
67
72
|
*/
|
|
68
|
-
|
|
73
|
+
type IfNotNullable<T, K> = undefined extends T ? never : null extends T ? never : T extends never ? never : K;
|
|
69
74
|
/**
|
|
70
75
|
* Evaluates to `K` if `T` isn't `never`.
|
|
71
76
|
*/
|
|
72
|
-
|
|
73
|
-
export
|
|
74
|
-
export
|
|
75
|
-
export
|
|
77
|
+
type IfNotNever<T, K> = T extends never ? never : K;
|
|
78
|
+
export type SelectType<T> = T extends ColumnType<infer S, any, any> ? S : T;
|
|
79
|
+
export type InsertType<T> = T extends ColumnType<any, infer I, any> ? I : T;
|
|
80
|
+
export type UpdateType<T> = T extends ColumnType<any, any, infer U> ? U : T;
|
|
76
81
|
/**
|
|
77
82
|
* Keys of `R` whose `InsertType` values can be `null` or `undefined`.
|
|
78
83
|
*/
|
|
79
|
-
export
|
|
84
|
+
export type NullableInsertKeys<R> = {
|
|
80
85
|
[K in keyof R]: IfNullable<InsertType<R[K]>, K>;
|
|
81
86
|
}[keyof R];
|
|
82
87
|
/**
|
|
83
88
|
* Keys of `R` whose `InsertType` values can't be `null` or `undefined`.
|
|
84
89
|
*/
|
|
85
|
-
export
|
|
90
|
+
export type NonNullableInsertKeys<R> = {
|
|
86
91
|
[K in keyof R]: IfNotNullable<InsertType<R[K]>, K>;
|
|
87
92
|
}[keyof R];
|
|
88
93
|
/**
|
|
89
94
|
* Keys of `R` whose `SelectType` values are not `never`
|
|
90
95
|
*/
|
|
91
|
-
|
|
96
|
+
type NonNeverSelectKeys<R> = {
|
|
92
97
|
[K in keyof R]: IfNotNever<SelectType<R[K]>, K>;
|
|
93
98
|
}[keyof R];
|
|
94
99
|
/**
|
|
95
100
|
* Keys of `R` whose `UpdateType` values are not `never`
|
|
96
101
|
*/
|
|
97
|
-
export
|
|
102
|
+
export type UpdateKeys<R> = {
|
|
98
103
|
[K in keyof R]: IfNotNever<UpdateType<R[K]>, K>;
|
|
99
104
|
}[keyof R];
|
|
100
105
|
/**
|
|
@@ -118,7 +123,7 @@ export declare type UpdateKeys<R> = {
|
|
|
118
123
|
* // }
|
|
119
124
|
* ```
|
|
120
125
|
*/
|
|
121
|
-
export
|
|
126
|
+
export type Selectable<R> = {
|
|
122
127
|
[K in NonNeverSelectKeys<R>]: SelectType<R[K]>;
|
|
123
128
|
};
|
|
124
129
|
/**
|
|
@@ -142,7 +147,7 @@ export declare type Selectable<R> = {
|
|
|
142
147
|
* // }
|
|
143
148
|
* ```
|
|
144
149
|
*/
|
|
145
|
-
export
|
|
150
|
+
export type Insertable<R> = {
|
|
146
151
|
[K in NonNullableInsertKeys<R>]: InsertType<R[K]>;
|
|
147
152
|
} & {
|
|
148
153
|
[K in NullableInsertKeys<R>]?: InsertType<R[K]>;
|
|
@@ -167,7 +172,7 @@ export declare type Insertable<R> = {
|
|
|
167
172
|
* // }
|
|
168
173
|
* ```
|
|
169
174
|
*/
|
|
170
|
-
export
|
|
175
|
+
export type Updateable<R> = {
|
|
171
176
|
[K in UpdateKeys<R>]?: UpdateType<R[K]>;
|
|
172
177
|
};
|
|
173
178
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Expression } from '../expression/expression.js';
|
|
2
|
-
export
|
|
2
|
+
export type ExplainFormat = 'text' | 'xml' | 'json' | 'yaml' | 'traditional' | 'tree';
|
|
3
3
|
export interface Explainable {
|
|
4
4
|
/**
|
|
5
5
|
* Executes query with `explain` statement before the main query.
|
|
@@ -41,6 +41,6 @@ import { Compilable } from './compilable.js';
|
|
|
41
41
|
* type QueryResult = InferResult<typeof compiledQuery> // Selectable<Person>[]
|
|
42
42
|
* ```
|
|
43
43
|
*/
|
|
44
|
-
export
|
|
45
|
-
|
|
44
|
+
export type InferResult<C extends Compilable<any> | CompiledQuery<any>> = C extends Compilable<infer O> ? ResolveResult<O> : C extends CompiledQuery<infer O> ? ResolveResult<O> : never;
|
|
45
|
+
type ResolveResult<O> = O extends InsertResult | UpdateResult | DeleteResult ? O : O[];
|
|
46
46
|
export {};
|
package/dist/cjs/util/log.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CompiledQuery } from '../query-compiler/compiled-query.js';
|
|
2
2
|
import { ArrayItemType } from './type-utils.js';
|
|
3
3
|
export declare const LOG_LEVELS: readonly ["query", "error"];
|
|
4
|
-
export
|
|
4
|
+
export type LogLevel = ArrayItemType<typeof LOG_LEVELS>;
|
|
5
5
|
export interface QueryLogEvent {
|
|
6
6
|
readonly level: 'query';
|
|
7
7
|
readonly query: CompiledQuery;
|
|
@@ -13,13 +13,13 @@ export interface ErrorLogEvent {
|
|
|
13
13
|
readonly query: CompiledQuery;
|
|
14
14
|
readonly queryDurationMillis: number;
|
|
15
15
|
}
|
|
16
|
-
export
|
|
17
|
-
export
|
|
18
|
-
export
|
|
16
|
+
export type LogEvent = QueryLogEvent | ErrorLogEvent;
|
|
17
|
+
export type Logger = (event: LogEvent) => void | Promise<void>;
|
|
18
|
+
export type LogConfig = ReadonlyArray<LogLevel> | Logger;
|
|
19
19
|
export declare class Log {
|
|
20
20
|
#private;
|
|
21
21
|
constructor(config: LogConfig);
|
|
22
22
|
isLevelEnabled(level: LogLevel): boolean;
|
|
23
|
-
query(getEvent: () => QueryLogEvent): void
|
|
24
|
-
error(getEvent: () => ErrorLogEvent): void
|
|
23
|
+
query(getEvent: () => QueryLogEvent): Promise<void>;
|
|
24
|
+
error(getEvent: () => ErrorLogEvent): Promise<void>;
|
|
25
25
|
}
|
package/dist/cjs/util/log.js
CHANGED
|
@@ -25,14 +25,14 @@ class Log {
|
|
|
25
25
|
isLevelEnabled(level) {
|
|
26
26
|
return this.#levels[level];
|
|
27
27
|
}
|
|
28
|
-
query(getEvent) {
|
|
28
|
+
async query(getEvent) {
|
|
29
29
|
if (this.#levels.query) {
|
|
30
|
-
this.#logger(getEvent());
|
|
30
|
+
await this.#logger(getEvent());
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
-
error(getEvent) {
|
|
33
|
+
async error(getEvent) {
|
|
34
34
|
if (this.#levels.error) {
|
|
35
|
-
this.#logger(getEvent());
|
|
35
|
+
await this.#logger(getEvent());
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ShallowRecord } from './type-utils.js';
|
|
1
2
|
export declare function isEmpty(obj: ArrayLike<unknown> | string | object): boolean;
|
|
2
3
|
export declare function isUndefined(obj: unknown): obj is undefined;
|
|
3
4
|
export declare function isString(obj: unknown): obj is string;
|
|
@@ -10,7 +11,7 @@ export declare function isBuffer(obj: unknown): obj is {
|
|
|
10
11
|
length: number;
|
|
11
12
|
};
|
|
12
13
|
export declare function isFunction(obj: unknown): obj is Function;
|
|
13
|
-
export declare function isObject(obj: unknown): obj is
|
|
14
|
+
export declare function isObject(obj: unknown): obj is ShallowRecord<string, unknown>;
|
|
14
15
|
export declare function isArrayBufferOrView(obj: unknown): obj is ArrayBuffer | ArrayBufferView;
|
|
15
16
|
export declare function getLast<T>(arr: ArrayLike<T>): T | undefined;
|
|
16
17
|
export declare function freeze<T>(obj: T): Readonly<T>;
|
|
@@ -2,10 +2,7 @@ import { SelectQueryBuilder } from '../query-builder/select-query-builder.js';
|
|
|
2
2
|
import { InsertResult } from '../query-builder/insert-result.js';
|
|
3
3
|
import { DeleteResult } from '../query-builder/delete-result.js';
|
|
4
4
|
import { UpdateResult } from '../query-builder/update-result.js';
|
|
5
|
-
|
|
6
|
-
* Given an object type, extracts the union of all value types.
|
|
7
|
-
*/
|
|
8
|
-
export declare type ValueType<T> = T[keyof T];
|
|
5
|
+
import { KyselyTypeError } from './type-error.js';
|
|
9
6
|
/**
|
|
10
7
|
* Given a database type and a union of table names in that db, returns
|
|
11
8
|
* a union type with all possible column names.
|
|
@@ -37,13 +34,13 @@ export declare type ValueType<T> = T[keyof T];
|
|
|
37
34
|
* // Columns == 'id' | 'name' | 'species'
|
|
38
35
|
* ```
|
|
39
36
|
*/
|
|
40
|
-
export
|
|
37
|
+
export type AnyColumn<DB, TB extends keyof DB> = DrainOuterGeneric<{
|
|
41
38
|
[T in TB]: keyof DB[T];
|
|
42
|
-
}[TB] & string
|
|
39
|
+
}[TB] & string>;
|
|
43
40
|
/**
|
|
44
41
|
* Extracts a column type.
|
|
45
42
|
*/
|
|
46
|
-
export
|
|
43
|
+
export type ExtractColumnType<DB, TB extends keyof DB, C> = {
|
|
47
44
|
[T in TB]: C extends keyof DB[T] ? DB[T][C] : never;
|
|
48
45
|
}[TB];
|
|
49
46
|
/**
|
|
@@ -77,71 +74,88 @@ export declare type ExtractColumnType<DB, TB extends keyof DB, C> = {
|
|
|
77
74
|
* // Columns == 'person.id' | 'pet.name' | 'pet.species'
|
|
78
75
|
* ```
|
|
79
76
|
*/
|
|
80
|
-
export
|
|
77
|
+
export type AnyColumnWithTable<DB, TB extends keyof DB> = {
|
|
81
78
|
[T in TB]: T extends string ? keyof DB[T] extends string ? `${T}.${keyof DB[T]}` : never : never;
|
|
82
79
|
}[TB];
|
|
83
80
|
/**
|
|
84
81
|
* Just like {@link AnyColumn} but with a ` as <string>` suffix.
|
|
85
82
|
*/
|
|
86
|
-
export
|
|
83
|
+
export type AnyAliasedColumn<DB, TB extends keyof DB> = {
|
|
87
84
|
[T in TB]: T extends string ? keyof DB[T] extends string ? `${keyof DB[T]} as ${string}` : never : never;
|
|
88
85
|
}[TB];
|
|
89
86
|
/**
|
|
90
87
|
* Just like {@link AnyColumnWithTable} but with a ` as <string>` suffix.
|
|
91
88
|
*/
|
|
92
|
-
export
|
|
89
|
+
export type AnyAliasedColumnWithTable<DB, TB extends keyof DB> = {
|
|
93
90
|
[T in TB]: T extends string ? keyof DB[T] extends string ? `${T}.${keyof DB[T]} as ${string}` : never : never;
|
|
94
91
|
}[TB];
|
|
95
92
|
/**
|
|
96
93
|
* Extracts the item type of an array.
|
|
97
94
|
*/
|
|
98
|
-
export
|
|
95
|
+
export type ArrayItemType<T> = T extends ReadonlyArray<infer I> ? I : never;
|
|
99
96
|
/**
|
|
100
97
|
* Any select query builder.
|
|
101
98
|
*/
|
|
102
|
-
export
|
|
103
|
-
export
|
|
104
|
-
export
|
|
105
|
-
export
|
|
99
|
+
export type AnySelectQueryBuilder = SelectQueryBuilder<any, any, any>;
|
|
100
|
+
export type SimplifySingleResult<O> = O extends InsertResult ? O : O extends DeleteResult ? O : O extends UpdateResult ? O : Simplify<O> | undefined;
|
|
101
|
+
export type SimplifyResult<O> = O extends InsertResult ? O : O extends DeleteResult ? O : O extends UpdateResult ? O : Simplify<O>;
|
|
102
|
+
export type Simplify<T> = DrainOuterGeneric<{
|
|
106
103
|
[K in keyof T]: T[K];
|
|
107
|
-
} & {}
|
|
104
|
+
} & {}>;
|
|
108
105
|
/**
|
|
109
106
|
* Represents a database row whose column names and their types are unknown.
|
|
110
107
|
*/
|
|
111
|
-
export
|
|
108
|
+
export type UnknownRow = Record<string, unknown>;
|
|
112
109
|
/**
|
|
113
110
|
* Makes all properties of object type `T` nullable.
|
|
114
111
|
*/
|
|
115
|
-
export
|
|
112
|
+
export type Nullable<T> = {
|
|
116
113
|
[P in keyof T]: T[P] | null;
|
|
117
114
|
};
|
|
118
115
|
/**
|
|
119
|
-
*
|
|
120
|
-
|
|
116
|
+
* Evaluates to `true` if `T` is `never`.
|
|
117
|
+
*/
|
|
118
|
+
export type IsNever<T> = [T] extends [never] ? true : false;
|
|
119
|
+
/**
|
|
120
|
+
* Evaluates to `true` if `T` is `any`.
|
|
121
|
+
*/
|
|
122
|
+
export type IsAny<T> = 0 extends T & 1 ? true : false;
|
|
123
|
+
/**
|
|
124
|
+
* Evaluates to `true` if the types `T` and `U` are equal.
|
|
125
|
+
*/
|
|
126
|
+
export type Equals<T, U> = (<G>() => G extends T ? 1 : 2) extends <G>() => G extends U ? 1 : 2 ? true : false;
|
|
127
|
+
export type NarrowPartial<S, T> = DrainOuterGeneric<{
|
|
128
|
+
[K in keyof S & string]: K extends keyof T ? T[K] extends S[K] ? T[K] : KyselyTypeError<`$narrowType() call failed: passed type does not exist in '${K}'s type union`> : S[K];
|
|
129
|
+
}>;
|
|
130
|
+
export type SqlBool = boolean | 0 | 1;
|
|
131
|
+
/**
|
|
132
|
+
* Utility to reduce depth of TypeScript's internal type instantiation stack.
|
|
121
133
|
*
|
|
122
134
|
* Example:
|
|
123
135
|
*
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
* age: number
|
|
127
|
-
* }
|
|
136
|
+
* ```ts
|
|
137
|
+
* type A<T> = { item: T }
|
|
128
138
|
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
*
|
|
132
|
-
* }
|
|
139
|
+
* type Test<T> = A<
|
|
140
|
+
* A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<T>>>>>>>>>>>>>>>>>>>>>>>>
|
|
141
|
+
* >
|
|
133
142
|
*
|
|
134
|
-
* type
|
|
143
|
+
* type Error = Test<number> // Type instantiation is excessively deep and possibly infinite.ts (2589)
|
|
144
|
+
* ```
|
|
135
145
|
*
|
|
136
|
-
*
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
*
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
*
|
|
146
|
+
* To fix this, we can use `DrainOuterGeneric`:
|
|
147
|
+
*
|
|
148
|
+
* ```ts
|
|
149
|
+
* type A<T> = DrainOuterGeneric<{ item: T }>
|
|
150
|
+
*
|
|
151
|
+
* type Test<T> = A<
|
|
152
|
+
* A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<T>>>>>>>>>>>>>>>>>>>>>>>>
|
|
153
|
+
* >
|
|
154
|
+
*
|
|
155
|
+
* type Ok = Test<number> // Ok
|
|
156
|
+
* ```
|
|
145
157
|
*/
|
|
146
|
-
export
|
|
147
|
-
export
|
|
158
|
+
export type DrainOuterGeneric<T> = [T] extends [unknown] ? T : never;
|
|
159
|
+
export type ShallowRecord<K extends keyof any, T> = DrainOuterGeneric<{
|
|
160
|
+
[P in K]: T;
|
|
161
|
+
}>;
|
|
@@ -30,7 +30,7 @@ export interface SchemaMetadata {
|
|
|
30
30
|
export interface DatabaseMetadata {
|
|
31
31
|
/**
|
|
32
32
|
* The tables and views found in the database.
|
|
33
|
-
|
|
33
|
+
* The propery isView can be used to tell them apart.
|
|
34
34
|
*/
|
|
35
35
|
readonly tables: TableMetadata[];
|
|
36
36
|
}
|
|
@@ -46,6 +46,7 @@ export interface MysqlStream<T> {
|
|
|
46
46
|
}
|
|
47
47
|
export interface MysqlOkPacket {
|
|
48
48
|
affectedRows: number;
|
|
49
|
+
changedRows: number;
|
|
49
50
|
insertId: number;
|
|
50
51
|
}
|
|
51
|
-
export
|
|
52
|
+
export type MysqlQueryResult = MysqlOkPacket | Record<string, unknown>[];
|
|
@@ -83,10 +83,13 @@ class MysqlConnection {
|
|
|
83
83
|
try {
|
|
84
84
|
const result = await this.#executeQuery(compiledQuery);
|
|
85
85
|
if (isOkPacket(result)) {
|
|
86
|
-
const { insertId, affectedRows } = result;
|
|
86
|
+
const { insertId, affectedRows, changedRows } = result;
|
|
87
87
|
const numAffectedRows = affectedRows !== undefined && affectedRows !== null
|
|
88
88
|
? BigInt(affectedRows)
|
|
89
89
|
: undefined;
|
|
90
|
+
const numChangedRows = changedRows !== undefined && changedRows !== null
|
|
91
|
+
? BigInt(changedRows)
|
|
92
|
+
: undefined;
|
|
90
93
|
return {
|
|
91
94
|
insertId: insertId !== undefined &&
|
|
92
95
|
insertId !== null &&
|
|
@@ -96,6 +99,7 @@ class MysqlConnection {
|
|
|
96
99
|
// TODO: remove.
|
|
97
100
|
numUpdatedOrDeletedRows: numAffectedRows,
|
|
98
101
|
numAffectedRows,
|
|
102
|
+
numChangedRows,
|
|
99
103
|
rows: [],
|
|
100
104
|
};
|
|
101
105
|
}
|
|
@@ -50,7 +50,7 @@ export interface PostgresCursor<T> {
|
|
|
50
50
|
read(rowsCount: number): Promise<T[]>;
|
|
51
51
|
close(): Promise<void>;
|
|
52
52
|
}
|
|
53
|
-
export
|
|
53
|
+
export type PostgresCursorConstructor = new <T>(sql: string, parameters: unknown[]) => PostgresCursor<T>;
|
|
54
54
|
export interface PostgresQueryResult<R> {
|
|
55
55
|
command: 'UPDATE' | 'DELETE' | 'INSERT' | 'SELECT';
|
|
56
56
|
rowCount: number;
|
|
@@ -48,7 +48,7 @@ export class PostgresIntrospector {
|
|
|
48
48
|
.as('auto_incrementing'),
|
|
49
49
|
])
|
|
50
50
|
// r == normal table
|
|
51
|
-
.where('c.relkind', '
|
|
51
|
+
.where((eb) => eb.or([eb('c.relkind', '=', 'r'), eb('c.relkind', '=', 'v')]))
|
|
52
52
|
.where('ns.nspname', '!~', '^pg_')
|
|
53
53
|
.where('ns.nspname', '!=', 'information_schema')
|
|
54
54
|
// No system columns
|
|
@@ -12,7 +12,7 @@ export class SqliteIntrospector {
|
|
|
12
12
|
}
|
|
13
13
|
async getTables(options = { withInternalKyselyTables: false }) {
|
|
14
14
|
let query = this.#db
|
|
15
|
-
.selectFrom('
|
|
15
|
+
.selectFrom('sqlite_master')
|
|
16
16
|
.where('type', 'in', ['table', 'view'])
|
|
17
17
|
.where('name', 'not like', 'sqlite_%')
|
|
18
18
|
.select('name')
|
|
@@ -18,6 +18,12 @@ export interface QueryResult<O> {
|
|
|
18
18
|
* the number of rows the query inserted/updated/deleted.
|
|
19
19
|
*/
|
|
20
20
|
readonly numAffectedRows?: bigint;
|
|
21
|
+
/**
|
|
22
|
+
* This is defined for update queries and contains the number of rows
|
|
23
|
+
* the query changed.
|
|
24
|
+
* This is optional and only provided by some drivers like node-mysql2.
|
|
25
|
+
*/
|
|
26
|
+
readonly numChangedRows?: bigint;
|
|
21
27
|
/**
|
|
22
28
|
* This is defined for insert queries on dialects that return
|
|
23
29
|
* the auto incrementing primary key from an insert.
|
|
@@ -41,4 +41,4 @@ export interface TransactionSettings {
|
|
|
41
41
|
readonly isolationLevel?: IsolationLevel;
|
|
42
42
|
}
|
|
43
43
|
export declare const TRANSACTION_ISOLATION_LEVELS: readonly ["read uncommitted", "read committed", "repeatable read", "serializable"];
|
|
44
|
-
export
|
|
44
|
+
export type IsolationLevel = ArrayItemType<typeof TRANSACTION_ISOLATION_LEVELS>;
|
|
@@ -74,24 +74,24 @@ export class RuntimeDriver {
|
|
|
74
74
|
return await executeQuery.call(connection, compiledQuery);
|
|
75
75
|
}
|
|
76
76
|
catch (error) {
|
|
77
|
-
this.#logError(error, compiledQuery, startTime);
|
|
77
|
+
await this.#logError(error, compiledQuery, startTime);
|
|
78
78
|
throw error;
|
|
79
79
|
}
|
|
80
80
|
finally {
|
|
81
|
-
this.#logQuery(compiledQuery, startTime);
|
|
81
|
+
await this.#logQuery(compiledQuery, startTime);
|
|
82
82
|
}
|
|
83
83
|
};
|
|
84
84
|
}
|
|
85
|
-
#logError(error, compiledQuery, startTime) {
|
|
86
|
-
this.#log.error(() => ({
|
|
85
|
+
async #logError(error, compiledQuery, startTime) {
|
|
86
|
+
await this.#log.error(() => ({
|
|
87
87
|
level: 'error',
|
|
88
88
|
error,
|
|
89
89
|
query: compiledQuery,
|
|
90
90
|
queryDurationMillis: this.#calculateDurationMillis(startTime),
|
|
91
91
|
}));
|
|
92
92
|
}
|
|
93
|
-
#logQuery(compiledQuery, startTime) {
|
|
94
|
-
this.#log.query(() => ({
|
|
93
|
+
async #logQuery(compiledQuery, startTime) {
|
|
94
|
+
await this.#log.query(() => ({
|
|
95
95
|
level: 'query',
|
|
96
96
|
query: compiledQuery,
|
|
97
97
|
queryDurationMillis: this.#calculateDurationMillis(startTime),
|