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
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
/// <reference types="./create-index-builder.d.ts" />
|
|
2
2
|
import { CreateIndexNode, } from '../operation-node/create-index-node.js';
|
|
3
|
-
import { ListNode } from '../operation-node/list-node.js';
|
|
4
3
|
import { RawNode } from '../operation-node/raw-node.js';
|
|
5
|
-
import {
|
|
4
|
+
import { parseOrderedColumnName, } from '../parser/reference-parser.js';
|
|
6
5
|
import { parseTable } from '../parser/table-parser.js';
|
|
7
6
|
import { preventAwait } from '../util/prevent-await.js';
|
|
8
7
|
import { freeze } from '../util/object-utils.js';
|
|
9
|
-
import {
|
|
8
|
+
import { parseFilter, } from '../parser/binary-operation-parser.js';
|
|
10
9
|
import { QueryNode } from '../operation-node/query-node.js';
|
|
11
10
|
import { ImmediateValueTransformer } from '../plugin/immediate-value/immediate-value-transformer.js';
|
|
12
11
|
export class CreateIndexBuilder {
|
|
@@ -50,29 +49,62 @@ export class CreateIndexBuilder {
|
|
|
50
49
|
});
|
|
51
50
|
}
|
|
52
51
|
/**
|
|
53
|
-
*
|
|
52
|
+
* Adds a column to the index.
|
|
54
53
|
*
|
|
55
|
-
* Also see
|
|
54
|
+
* Also see {@link columns} for adding multiple columns at once or {@link expression}
|
|
55
|
+
* for specifying an arbitrary expression.
|
|
56
|
+
*
|
|
57
|
+
* ### Examples
|
|
58
|
+
*
|
|
59
|
+
* ```ts
|
|
60
|
+
* await db.schema
|
|
61
|
+
* .createIndex('person_first_name_and_age_index')
|
|
62
|
+
* .on('person')
|
|
63
|
+
* .column('first_name')
|
|
64
|
+
* .column('age desc')
|
|
65
|
+
* .execute()
|
|
66
|
+
* ```
|
|
67
|
+
*
|
|
68
|
+
* The generated SQL (PostgreSQL):
|
|
69
|
+
*
|
|
70
|
+
* ```sql
|
|
71
|
+
* create index "person_first_name_and_age_index" on "person" ("first_name", "age" desc)
|
|
72
|
+
* ```
|
|
56
73
|
*/
|
|
57
74
|
column(column) {
|
|
58
75
|
return new CreateIndexBuilder({
|
|
59
76
|
...this.#props,
|
|
60
|
-
node: CreateIndexNode.
|
|
61
|
-
|
|
62
|
-
|
|
77
|
+
node: CreateIndexNode.cloneWithColumns(this.#props.node, [
|
|
78
|
+
parseOrderedColumnName(column),
|
|
79
|
+
]),
|
|
63
80
|
});
|
|
64
81
|
}
|
|
65
82
|
/**
|
|
66
83
|
* Specifies a list of columns for the index.
|
|
67
84
|
*
|
|
68
|
-
* Also see
|
|
85
|
+
* Also see {@link column} for adding a single column or {@link expression} for
|
|
86
|
+
* specifying an arbitrary expression.
|
|
87
|
+
*
|
|
88
|
+
* ### Examples
|
|
89
|
+
*
|
|
90
|
+
* ```ts
|
|
91
|
+
* await db.schema
|
|
92
|
+
* .createIndex('person_first_name_and_age_index')
|
|
93
|
+
* .on('person')
|
|
94
|
+
* .columns(['first_name', 'age desc'])
|
|
95
|
+
* .execute()
|
|
96
|
+
* ```
|
|
97
|
+
*
|
|
98
|
+
* The generated SQL (PostgreSQL):
|
|
99
|
+
*
|
|
100
|
+
* ```sql
|
|
101
|
+
* create index "person_first_name_and_age_index" on "person" ("first_name", "age" desc)
|
|
102
|
+
* ```
|
|
69
103
|
*/
|
|
70
104
|
columns(columns) {
|
|
71
105
|
return new CreateIndexBuilder({
|
|
72
106
|
...this.#props,
|
|
73
|
-
node: CreateIndexNode.
|
|
74
|
-
expression: ListNode.create(columns.map(parseColumnName)),
|
|
75
|
-
}),
|
|
107
|
+
node: CreateIndexNode.cloneWithColumns(this.#props.node, columns.map(parseOrderedColumnName)),
|
|
76
108
|
});
|
|
77
109
|
}
|
|
78
110
|
/**
|
|
@@ -89,13 +121,19 @@ export class CreateIndexBuilder {
|
|
|
89
121
|
* .expression(sql`first_name COLLATE "fi_FI"`)
|
|
90
122
|
* .execute()
|
|
91
123
|
* ```
|
|
124
|
+
*
|
|
125
|
+
* The generated SQL (PostgreSQL):
|
|
126
|
+
*
|
|
127
|
+
* ```sql
|
|
128
|
+
* create index "person_first_name_index" on "person" (first_name COLLATE "fi_FI")
|
|
129
|
+
* ```
|
|
92
130
|
*/
|
|
93
131
|
expression(expression) {
|
|
94
132
|
return new CreateIndexBuilder({
|
|
95
133
|
...this.#props,
|
|
96
|
-
node: CreateIndexNode.
|
|
97
|
-
expression
|
|
98
|
-
|
|
134
|
+
node: CreateIndexNode.cloneWithColumns(this.#props.node, [
|
|
135
|
+
expression.toOperationNode(),
|
|
136
|
+
]),
|
|
99
137
|
});
|
|
100
138
|
}
|
|
101
139
|
using(indexType) {
|
|
@@ -110,7 +148,7 @@ export class CreateIndexBuilder {
|
|
|
110
148
|
const transformer = new ImmediateValueTransformer();
|
|
111
149
|
return new CreateIndexBuilder({
|
|
112
150
|
...this.#props,
|
|
113
|
-
node: QueryNode.cloneWithWhere(this.#props.node, transformer.transformNode(
|
|
151
|
+
node: QueryNode.cloneWithWhere(this.#props.node, transformer.transformNode(parseFilter(args))),
|
|
114
152
|
});
|
|
115
153
|
}
|
|
116
154
|
/**
|
|
@@ -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;
|
|
@@ -305,12 +305,6 @@ export class CreateTableBuilder {
|
|
|
305
305
|
$call(func) {
|
|
306
306
|
return func(this);
|
|
307
307
|
}
|
|
308
|
-
/**
|
|
309
|
-
* @deprecated Use `$call` instead
|
|
310
|
-
*/
|
|
311
|
-
call(func) {
|
|
312
|
-
return this.$call(func);
|
|
313
|
-
}
|
|
314
308
|
toOperationNode() {
|
|
315
309
|
return this.#props.executor.transformQuery(this.#props.node, this.#props.queryId);
|
|
316
310
|
}
|
|
@@ -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
|
*/
|
|
@@ -191,8 +191,7 @@ export class SchemaModule {
|
|
|
191
191
|
* ```ts
|
|
192
192
|
* await db.schema
|
|
193
193
|
* .alterTable('person')
|
|
194
|
-
* .alterColumn('first_name')
|
|
195
|
-
* .setDataType('text')
|
|
194
|
+
* .alterColumn('first_name', (ac) => ac.setDataType('text'))
|
|
196
195
|
* .execute()
|
|
197
196
|
* ```
|
|
198
197
|
*/
|
|
@@ -200,7 +199,7 @@ export class SchemaModule {
|
|
|
200
199
|
return new AlterTableBuilder({
|
|
201
200
|
queryId: createQueryId(),
|
|
202
201
|
executor: this.#executor,
|
|
203
|
-
node: AlterTableNode.create(table),
|
|
202
|
+
node: AlterTableNode.create(parseTable(table)),
|
|
204
203
|
});
|
|
205
204
|
}
|
|
206
205
|
/**
|
|
@@ -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/esm/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/esm/util/log.js
CHANGED
|
@@ -23,14 +23,14 @@ export class Log {
|
|
|
23
23
|
isLevelEnabled(level) {
|
|
24
24
|
return this.#levels[level];
|
|
25
25
|
}
|
|
26
|
-
query(getEvent) {
|
|
26
|
+
async query(getEvent) {
|
|
27
27
|
if (this.#levels.query) {
|
|
28
|
-
this.#logger(getEvent());
|
|
28
|
+
await this.#logger(getEvent());
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
-
error(getEvent) {
|
|
31
|
+
async error(getEvent) {
|
|
32
32
|
if (this.#levels.error) {
|
|
33
|
-
this.#logger(getEvent());
|
|
33
|
+
await this.#logger(getEvent());
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
}
|
|
@@ -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
|
+
}>;
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kysely",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.26.0",
|
|
4
4
|
"description": "Type safe SQL query builder",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
|
-
"url": "git://github.com/
|
|
7
|
+
"url": "git://github.com/kysely-org/kysely.git"
|
|
8
8
|
},
|
|
9
9
|
"engines": {
|
|
10
10
|
"node": ">=14.0.0"
|
|
@@ -36,10 +36,11 @@
|
|
|
36
36
|
"test:node:postgres": "DIALECT=postgres npm run test:node:run",
|
|
37
37
|
"test:node:mysql": "DIALECT=mysql npm run test:node:run",
|
|
38
38
|
"test:node:sqlite": "DIALECT=sqlite npm run test:node:run",
|
|
39
|
-
"test:node:run": "mocha --timeout 15000 test/node/dist/**/*.test.js",
|
|
39
|
+
"test:node:run": "mocha --reporter min --timeout 15000 test/node/dist/**/*.test.js",
|
|
40
40
|
"test:browser:build": "rm -rf test/browser/bundle.js && esbuild test/browser/main.ts --bundle --outfile=test/browser/bundle.js",
|
|
41
41
|
"test:browser": "npm run build && npm run test:browser:build && node test/browser/test.js",
|
|
42
|
-
"test:
|
|
42
|
+
"test:bun": "npm run build && cd test/bun && bun install && bun run test",
|
|
43
|
+
"test:deno": "npm run build && deno run --allow-env --allow-read --allow-net test/deno/local.test.ts && deno run --allow-env --allow-read --allow-net test/deno/cdn.test.ts",
|
|
43
44
|
"test:typings": "tsd test/typings",
|
|
44
45
|
"test:esmimports": "node scripts/check-esm-imports.js",
|
|
45
46
|
"test:esbuild": "esbuild --bundle --platform=node --external:pg-native dist/esm/index.js --outfile=/dev/null",
|
|
@@ -52,6 +53,7 @@
|
|
|
52
53
|
"script:module-fixup": "node scripts/module-fixup.js",
|
|
53
54
|
"script:copy-interface-doc": "node scripts/copy-interface-documentation.js",
|
|
54
55
|
"script:add-deno-type-references": "node scripts/add-deno-type-references.js",
|
|
56
|
+
"script:align-site-version": "node scripts/align-site-version.js",
|
|
55
57
|
"prepublishOnly": "npm run build"
|
|
56
58
|
},
|
|
57
59
|
"author": "Sami Koskimäki <sami@jakso.me>",
|
|
@@ -60,30 +62,30 @@
|
|
|
60
62
|
"Igal Klebanov <igalklebanov@gmail.com>"
|
|
61
63
|
],
|
|
62
64
|
"devDependencies": {
|
|
63
|
-
"@types/better-sqlite3": "^7.
|
|
64
|
-
"@types/chai": "^4.3.
|
|
65
|
+
"@types/better-sqlite3": "^7.6.4",
|
|
66
|
+
"@types/chai": "^4.3.5",
|
|
65
67
|
"@types/chai-as-promised": "^7.1.5",
|
|
66
68
|
"@types/chai-subset": "^1.3.3",
|
|
67
|
-
"@types/mocha": "^
|
|
69
|
+
"@types/mocha": "^10.0.1",
|
|
68
70
|
"@types/node": "^18.15.11",
|
|
69
|
-
"@types/pg": "^8.
|
|
71
|
+
"@types/pg": "^8.10.2",
|
|
70
72
|
"@types/pg-cursor": "^2.7.0",
|
|
71
|
-
"@types/sinon": "^10.0.
|
|
72
|
-
"better-sqlite3": "^
|
|
73
|
-
"chai": "^4.3.
|
|
73
|
+
"@types/sinon": "^10.0.15",
|
|
74
|
+
"better-sqlite3": "^8.4.0",
|
|
75
|
+
"chai": "^4.3.7",
|
|
74
76
|
"chai-as-promised": "^7.1.1",
|
|
75
77
|
"chai-subset": "^1.6.0",
|
|
76
|
-
"concurrently": "^
|
|
77
|
-
"esbuild": "^0.
|
|
78
|
-
"mocha": "^10.
|
|
79
|
-
"mysql2": "^
|
|
80
|
-
"pg": "^8.
|
|
81
|
-
"pg-cursor": "^2.
|
|
82
|
-
"playwright": "^1.
|
|
83
|
-
"prettier": "^2.
|
|
84
|
-
"sinon": "^
|
|
85
|
-
"tsd": "^0.
|
|
86
|
-
"typedoc": "^0.
|
|
87
|
-
"typescript": "5.
|
|
78
|
+
"concurrently": "^8.1.0",
|
|
79
|
+
"esbuild": "^0.17.19",
|
|
80
|
+
"mocha": "^10.2.0",
|
|
81
|
+
"mysql2": "^3.3.3",
|
|
82
|
+
"pg": "^8.11.0",
|
|
83
|
+
"pg-cursor": "^2.10.0",
|
|
84
|
+
"playwright": "^1.34.3",
|
|
85
|
+
"prettier": "^2.8.8",
|
|
86
|
+
"sinon": "^15.1.0",
|
|
87
|
+
"tsd": "^0.28.1",
|
|
88
|
+
"typedoc": "^0.24.8",
|
|
89
|
+
"typescript": "^5.1.6"
|
|
88
90
|
}
|
|
89
91
|
}
|