kysely 0.25.0 → 0.26.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -563
- package/dist/cjs/dialect/database-introspector.d.ts +1 -1
- package/dist/cjs/dialect/mysql/mysql-dialect-config.d.ts +2 -2
- 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 -4
- 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/expression/expression-builder.d.ts +207 -108
- package/dist/cjs/expression/expression-builder.js +28 -7
- package/dist/cjs/expression/expression-wrapper.d.ts +296 -5
- package/dist/cjs/expression/expression-wrapper.js +70 -2
- package/dist/cjs/helpers/postgres.d.ts +30 -18
- package/dist/cjs/helpers/postgres.js +30 -18
- package/dist/cjs/index.d.ts +6 -0
- package/dist/cjs/index.js +6 -0
- package/dist/cjs/kysely.d.ts +23 -13
- package/dist/cjs/kysely.js +13 -9
- package/dist/cjs/migration/file-migration-provider.js +2 -2
- package/dist/cjs/operation-node/alter-column-node.d.ts +2 -3
- package/dist/cjs/operation-node/alter-column-node.js +2 -7
- package/dist/cjs/operation-node/alter-table-node.d.ts +2 -2
- 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 +2 -2
- 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 +8 -0
- package/dist/cjs/operation-node/operation-node-transformer.js +33 -1
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +8 -0
- package/dist/cjs/operation-node/operation-node-visitor.js +4 -0
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/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/with-node.d.ts +1 -1
- package/dist/cjs/parser/binary-operation-parser.d.ts +9 -12
- package/dist/cjs/parser/binary-operation-parser.js +40 -119
- 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 +5 -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 +3 -3
- package/dist/cjs/parser/partition-by-parser.d.ts +2 -2
- package/dist/cjs/parser/reference-parser.d.ts +13 -9
- package/dist/cjs/parser/reference-parser.js +28 -16
- package/dist/cjs/parser/returning-parser.d.ts +2 -2
- package/dist/cjs/parser/select-parser.d.ts +10 -10
- package/dist/cjs/parser/table-parser.d.ts +12 -12
- 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 +12 -8
- 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 +11 -11
- package/dist/cjs/query-builder/case-builder.js +2 -2
- package/dist/cjs/query-builder/delete-query-builder.d.ts +110 -62
- package/dist/cjs/query-builder/delete-query-builder.js +1 -62
- 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 +44 -66
- package/dist/cjs/query-builder/having-interface.d.ts +2 -35
- package/dist/cjs/query-builder/insert-query-builder.d.ts +59 -48
- package/dist/cjs/query-builder/insert-query-builder.js +17 -34
- 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 +194 -77
- 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 +169 -141
- package/dist/cjs/query-builder/select-query-builder.js +27 -136
- package/dist/cjs/query-builder/update-query-builder.d.ts +147 -66
- package/dist/cjs/query-builder/update-query-builder.js +3 -63
- 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 +98 -40
- 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 +8 -0
- package/dist/cjs/query-compiler/default-query-compiler.js +37 -2
- 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 +11 -5
- package/dist/cjs/schema/alter-column-builder.js +19 -21
- 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.js +1 -1
- 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 +1 -2
- package/dist/cjs/util/column-type.d.ts +22 -18
- 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 +4 -4
- package/dist/cjs/util/require-all-props.d.ts +1 -1
- package/dist/cjs/util/type-utils.d.ts +19 -19
- package/dist/esm/dialect/database-introspector.d.ts +1 -1
- package/dist/esm/dialect/mysql/mysql-dialect-config.d.ts +2 -2
- 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 -4
- 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/expression/expression-builder.d.ts +207 -108
- package/dist/esm/expression/expression-builder.js +30 -9
- package/dist/esm/expression/expression-wrapper.d.ts +296 -5
- package/dist/esm/expression/expression-wrapper.js +67 -1
- package/dist/esm/helpers/postgres.d.ts +30 -18
- package/dist/esm/helpers/postgres.js +30 -18
- package/dist/esm/index.d.ts +6 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/kysely.d.ts +23 -13
- package/dist/esm/kysely.js +13 -9
- package/dist/esm/operation-node/alter-column-node.d.ts +2 -3
- package/dist/esm/operation-node/alter-column-node.js +2 -7
- package/dist/esm/operation-node/alter-table-node.d.ts +2 -2
- 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 +2 -2
- 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 +8 -0
- package/dist/esm/operation-node/operation-node-transformer.js +33 -1
- package/dist/esm/operation-node/operation-node-visitor.d.ts +8 -0
- package/dist/esm/operation-node/operation-node-visitor.js +4 -0
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/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/with-node.d.ts +1 -1
- package/dist/esm/parser/binary-operation-parser.d.ts +9 -12
- package/dist/esm/parser/binary-operation-parser.js +38 -114
- 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 +5 -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 +3 -3
- package/dist/esm/parser/partition-by-parser.d.ts +2 -2
- package/dist/esm/parser/reference-parser.d.ts +13 -9
- package/dist/esm/parser/reference-parser.js +26 -15
- package/dist/esm/parser/returning-parser.d.ts +2 -2
- package/dist/esm/parser/select-parser.d.ts +10 -10
- package/dist/esm/parser/table-parser.d.ts +12 -12
- 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 +12 -8
- 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 +11 -11
- package/dist/esm/query-builder/case-builder.js +3 -3
- package/dist/esm/query-builder/delete-query-builder.d.ts +110 -62
- package/dist/esm/query-builder/delete-query-builder.js +2 -63
- 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 +44 -66
- package/dist/esm/query-builder/having-interface.d.ts +2 -35
- package/dist/esm/query-builder/insert-query-builder.d.ts +59 -48
- package/dist/esm/query-builder/insert-query-builder.js +17 -34
- 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 +194 -77
- 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 +169 -141
- package/dist/esm/query-builder/select-query-builder.js +28 -137
- package/dist/esm/query-builder/update-query-builder.d.ts +147 -66
- package/dist/esm/query-builder/update-query-builder.js +4 -64
- 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 +98 -40
- 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 +8 -0
- package/dist/esm/query-compiler/default-query-compiler.js +37 -2
- 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 +11 -5
- package/dist/esm/schema/alter-column-builder.js +19 -21
- 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.js +2 -2
- 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 +1 -2
- package/dist/esm/util/column-type.d.ts +22 -18
- 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 +4 -4
- package/dist/esm/util/require-all-props.d.ts +1 -1
- package/dist/esm/util/type-utils.d.ts +19 -19
- 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
package/dist/esm/kysely.d.ts
CHANGED
|
@@ -89,16 +89,14 @@ export declare class Kysely<DB> extends QueryCreator<DB> implements QueryExecuto
|
|
|
89
89
|
* calls.
|
|
90
90
|
*
|
|
91
91
|
* ```ts
|
|
92
|
-
* const { count } = db.fn
|
|
93
|
-
*
|
|
94
92
|
* await db.selectFrom('person')
|
|
95
93
|
* .innerJoin('pet', 'pet.owner_id', 'person.id')
|
|
96
|
-
* .select([
|
|
94
|
+
* .select((eb) => [
|
|
97
95
|
* 'person.id',
|
|
98
|
-
* count('pet.id').as('pet_count')
|
|
96
|
+
* eb.fn.count('pet.id').as('pet_count')
|
|
99
97
|
* ])
|
|
100
98
|
* .groupBy('person.id')
|
|
101
|
-
* .having(count('pet.id'), '>', 10)
|
|
99
|
+
* .having((eb) => eb.fn.count('pet.id'), '>', 10)
|
|
102
100
|
* .execute()
|
|
103
101
|
* ```
|
|
104
102
|
*
|
|
@@ -129,23 +127,29 @@ export declare class Kysely<DB> extends QueryCreator<DB> implements QueryExecuto
|
|
|
129
127
|
*
|
|
130
128
|
* ### Examples
|
|
131
129
|
*
|
|
130
|
+
* <!-- siteExample("transactions", "Simple transaction", 10) -->
|
|
131
|
+
*
|
|
132
|
+
* This example inserts two rows in a transaction. If an error is thrown inside
|
|
133
|
+
* the callback passed to the `execute` method, the transaction is rolled back.
|
|
134
|
+
* Otherwise it's committed.
|
|
135
|
+
*
|
|
132
136
|
* ```ts
|
|
133
137
|
* const catto = await db.transaction().execute(async (trx) => {
|
|
134
138
|
* const jennifer = await trx.insertInto('person')
|
|
135
139
|
* .values({
|
|
136
140
|
* first_name: 'Jennifer',
|
|
137
141
|
* last_name: 'Aniston',
|
|
142
|
+
* age: 40,
|
|
138
143
|
* })
|
|
139
144
|
* .returning('id')
|
|
140
145
|
* .executeTakeFirstOrThrow()
|
|
141
146
|
*
|
|
142
|
-
* await someFunction(trx, jennifer)
|
|
143
|
-
*
|
|
144
147
|
* return await trx.insertInto('pet')
|
|
145
148
|
* .values({
|
|
146
|
-
*
|
|
149
|
+
* owner_id: jennifer.id,
|
|
147
150
|
* name: 'Catto',
|
|
148
|
-
* species: 'cat'
|
|
151
|
+
* species: 'cat',
|
|
152
|
+
* is_favorite: false,
|
|
149
153
|
* })
|
|
150
154
|
* .returningAll()
|
|
151
155
|
* .executeTakeFirst()
|
|
@@ -274,23 +278,29 @@ export declare class Transaction<DB> extends Kysely<DB> {
|
|
|
274
278
|
*
|
|
275
279
|
* ### Examples
|
|
276
280
|
*
|
|
281
|
+
* <!-- siteExample("transactions", "Simple transaction", 10) -->
|
|
282
|
+
*
|
|
283
|
+
* This example inserts two rows in a transaction. If an error is thrown inside
|
|
284
|
+
* the callback passed to the `execute` method, the transaction is rolled back.
|
|
285
|
+
* Otherwise it's committed.
|
|
286
|
+
*
|
|
277
287
|
* ```ts
|
|
278
288
|
* const catto = await db.transaction().execute(async (trx) => {
|
|
279
289
|
* const jennifer = await trx.insertInto('person')
|
|
280
290
|
* .values({
|
|
281
291
|
* first_name: 'Jennifer',
|
|
282
292
|
* last_name: 'Aniston',
|
|
293
|
+
* age: 40,
|
|
283
294
|
* })
|
|
284
295
|
* .returning('id')
|
|
285
296
|
* .executeTakeFirstOrThrow()
|
|
286
297
|
*
|
|
287
|
-
* await someFunction(trx, jennifer)
|
|
288
|
-
*
|
|
289
298
|
* return await trx.insertInto('pet')
|
|
290
299
|
* .values({
|
|
291
|
-
*
|
|
300
|
+
* owner_id: jennifer.id,
|
|
292
301
|
* name: 'Catto',
|
|
293
|
-
* species: 'cat'
|
|
302
|
+
* species: 'cat',
|
|
303
|
+
* is_favorite: false,
|
|
294
304
|
* })
|
|
295
305
|
* .returningAll()
|
|
296
306
|
* .executeTakeFirst()
|
package/dist/esm/kysely.js
CHANGED
|
@@ -120,16 +120,14 @@ export class Kysely extends QueryCreator {
|
|
|
120
120
|
* calls.
|
|
121
121
|
*
|
|
122
122
|
* ```ts
|
|
123
|
-
* const { count } = db.fn
|
|
124
|
-
*
|
|
125
123
|
* await db.selectFrom('person')
|
|
126
124
|
* .innerJoin('pet', 'pet.owner_id', 'person.id')
|
|
127
|
-
* .select([
|
|
125
|
+
* .select((eb) => [
|
|
128
126
|
* 'person.id',
|
|
129
|
-
* count('pet.id').as('pet_count')
|
|
127
|
+
* eb.fn.count('pet.id').as('pet_count')
|
|
130
128
|
* ])
|
|
131
129
|
* .groupBy('person.id')
|
|
132
|
-
* .having(count('pet.id'), '>', 10)
|
|
130
|
+
* .having((eb) => eb.fn.count('pet.id'), '>', 10)
|
|
133
131
|
* .execute()
|
|
134
132
|
* ```
|
|
135
133
|
*
|
|
@@ -162,23 +160,29 @@ export class Kysely extends QueryCreator {
|
|
|
162
160
|
*
|
|
163
161
|
* ### Examples
|
|
164
162
|
*
|
|
163
|
+
* <!-- siteExample("transactions", "Simple transaction", 10) -->
|
|
164
|
+
*
|
|
165
|
+
* This example inserts two rows in a transaction. If an error is thrown inside
|
|
166
|
+
* the callback passed to the `execute` method, the transaction is rolled back.
|
|
167
|
+
* Otherwise it's committed.
|
|
168
|
+
*
|
|
165
169
|
* ```ts
|
|
166
170
|
* const catto = await db.transaction().execute(async (trx) => {
|
|
167
171
|
* const jennifer = await trx.insertInto('person')
|
|
168
172
|
* .values({
|
|
169
173
|
* first_name: 'Jennifer',
|
|
170
174
|
* last_name: 'Aniston',
|
|
175
|
+
* age: 40,
|
|
171
176
|
* })
|
|
172
177
|
* .returning('id')
|
|
173
178
|
* .executeTakeFirstOrThrow()
|
|
174
179
|
*
|
|
175
|
-
* await someFunction(trx, jennifer)
|
|
176
|
-
*
|
|
177
180
|
* return await trx.insertInto('pet')
|
|
178
181
|
* .values({
|
|
179
|
-
*
|
|
182
|
+
* owner_id: jennifer.id,
|
|
180
183
|
* name: 'Catto',
|
|
181
|
-
* species: 'cat'
|
|
184
|
+
* species: 'cat',
|
|
185
|
+
* is_favorite: false,
|
|
182
186
|
* })
|
|
183
187
|
* .returningAll()
|
|
184
188
|
* .executeTakeFirst()
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
2
|
import { ColumnNode } from './column-node.js';
|
|
3
3
|
import { RawNode } from './raw-node.js';
|
|
4
|
-
export
|
|
4
|
+
export type AlterColumnNodeProps = Omit<AlterColumnNode, 'kind' | 'column'>;
|
|
5
5
|
export interface AlterColumnNode extends OperationNode {
|
|
6
6
|
readonly kind: 'AlterColumnNode';
|
|
7
7
|
readonly column: ColumnNode;
|
|
@@ -17,6 +17,5 @@ export interface AlterColumnNode extends OperationNode {
|
|
|
17
17
|
*/
|
|
18
18
|
export declare const AlterColumnNode: Readonly<{
|
|
19
19
|
is(node: OperationNode): node is AlterColumnNode;
|
|
20
|
-
create(column: string): AlterColumnNode;
|
|
21
|
-
cloneWith(node: AlterColumnNode, props: AlterColumnNodeProps): AlterColumnNode;
|
|
20
|
+
create<T extends "dataType" | "dataTypeExpression" | "setDefault" | "dropDefault" | "setNotNull" | "dropNotNull">(column: string, prop: T, value: Required<AlterColumnNodeProps>[T]): AlterColumnNode;
|
|
22
21
|
}>;
|
|
@@ -8,16 +8,11 @@ export const AlterColumnNode = freeze({
|
|
|
8
8
|
is(node) {
|
|
9
9
|
return node.kind === 'AlterColumnNode';
|
|
10
10
|
},
|
|
11
|
-
create(column) {
|
|
11
|
+
create(column, prop, value) {
|
|
12
12
|
return freeze({
|
|
13
13
|
kind: 'AlterColumnNode',
|
|
14
14
|
column: ColumnNode.create(column),
|
|
15
|
-
|
|
16
|
-
},
|
|
17
|
-
cloneWith(node, props) {
|
|
18
|
-
return freeze({
|
|
19
|
-
...node,
|
|
20
|
-
...props,
|
|
15
|
+
[prop]: value,
|
|
21
16
|
});
|
|
22
17
|
},
|
|
23
18
|
});
|
|
@@ -8,8 +8,8 @@ import { AlterColumnNode } from './alter-column-node.js';
|
|
|
8
8
|
import { AddConstraintNode } from './add-constraint-node.js';
|
|
9
9
|
import { DropConstraintNode } from './drop-constraint-node.js';
|
|
10
10
|
import { ModifyColumnNode } from './modify-column-node.js';
|
|
11
|
-
export
|
|
12
|
-
export
|
|
11
|
+
export type AlterTableNodeTableProps = Pick<AlterTableNode, 'renameTo' | 'setSchema' | 'addConstraint' | 'dropConstraint'>;
|
|
12
|
+
export type AlterTableColumnAlterationNode = RenameColumnNode | AddColumnNode | DropColumnNode | AlterColumnNode | ModifyColumnNode;
|
|
13
13
|
export interface AlterTableNode extends OperationNode {
|
|
14
14
|
readonly kind: 'AlterTableNode';
|
|
15
15
|
readonly table: TableNode;
|
|
@@ -4,7 +4,7 @@ import { DefaultValueNode } from './default-value-node.js';
|
|
|
4
4
|
import { GeneratedNode } from './generated-node.js';
|
|
5
5
|
import { OperationNode } from './operation-node.js';
|
|
6
6
|
import { ReferencesNode } from './references-node.js';
|
|
7
|
-
export
|
|
7
|
+
export type ColumnDefinitionNodeProps = Omit<Partial<ColumnDefinitionNode>, 'kind' | 'dataType'>;
|
|
8
8
|
export interface ColumnDefinitionNode extends OperationNode {
|
|
9
9
|
readonly kind: 'ColumnDefinitionNode';
|
|
10
10
|
readonly column: ColumnNode;
|
|
@@ -2,4 +2,4 @@ import { CheckConstraintNode } from './check-constraint-node.js';
|
|
|
2
2
|
import { ForeignKeyConstraintNode } from './foreign-key-constraint-node.js';
|
|
3
3
|
import { PrimaryKeyConstraintNode } from './primary-constraint-node.js';
|
|
4
4
|
import { UniqueConstraintNode } from './unique-constraint-node.js';
|
|
5
|
-
export
|
|
5
|
+
export type ConstraintNode = PrimaryKeyConstraintNode | UniqueConstraintNode | CheckConstraintNode | ForeignKeyConstraintNode;
|
|
@@ -3,8 +3,8 @@ import { OperationNode } from './operation-node.js';
|
|
|
3
3
|
import { RawNode } from './raw-node.js';
|
|
4
4
|
import { TableNode } from './table-node.js';
|
|
5
5
|
import { WhereNode } from './where-node.js';
|
|
6
|
-
export
|
|
7
|
-
export
|
|
6
|
+
export type CreateIndexNodeProps = Omit<CreateIndexNode, 'kind' | 'name'>;
|
|
7
|
+
export type IndexType = 'btree' | 'hash' | 'gist' | 'gin';
|
|
8
8
|
export interface CreateIndexNode extends OperationNode {
|
|
9
9
|
readonly kind: 'CreateIndexNode';
|
|
10
10
|
readonly name: IdentifierNode;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IdentifierNode } from './identifier-node.js';
|
|
2
2
|
import { OperationNode } from './operation-node.js';
|
|
3
|
-
export
|
|
3
|
+
export type CreateSchemaNodeParams = Omit<Partial<CreateSchemaNode>, 'kind' | 'schema'>;
|
|
4
4
|
export interface CreateSchemaNode extends OperationNode {
|
|
5
5
|
readonly kind: 'CreateSchemaNode';
|
|
6
6
|
readonly schema: IdentifierNode;
|
|
@@ -4,8 +4,8 @@ import { ConstraintNode } from './constraint-node.js';
|
|
|
4
4
|
import { ColumnDefinitionNode } from './column-definition-node.js';
|
|
5
5
|
import { ArrayItemType } from '../util/type-utils.js';
|
|
6
6
|
export declare const ON_COMMIT_ACTIONS: string[];
|
|
7
|
-
export
|
|
8
|
-
export
|
|
7
|
+
export type OnCommitAction = ArrayItemType<typeof ON_COMMIT_ACTIONS>;
|
|
8
|
+
export type CreateTableNodeParams = Omit<CreateTableNode, 'kind' | 'table' | 'columns' | 'constraints' | 'frontModifiers' | 'endModifiers'>;
|
|
9
9
|
export interface CreateTableNode extends OperationNode {
|
|
10
10
|
readonly kind: 'CreateTableNode';
|
|
11
11
|
readonly table: TableNode;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
2
|
import { SchemableIdentifierNode } from './schemable-identifier-node.js';
|
|
3
3
|
import { ValueListNode } from './value-list-node.js';
|
|
4
|
-
export
|
|
4
|
+
export type CreateTypeNodeParams = Omit<Partial<CreateTypeNode>, 'kind'>;
|
|
5
5
|
export interface CreateTypeNode extends OperationNode {
|
|
6
6
|
readonly kind: 'CreateTypeNode';
|
|
7
7
|
readonly name: SchemableIdentifierNode;
|
|
@@ -3,7 +3,7 @@ import { OperationNode } from './operation-node.js';
|
|
|
3
3
|
import { RawNode } from './raw-node.js';
|
|
4
4
|
import { SchemableIdentifierNode } from './schemable-identifier-node.js';
|
|
5
5
|
import { SelectQueryNode } from './select-query-node.js';
|
|
6
|
-
export
|
|
6
|
+
export type CreateViewNodeParams = Omit<Partial<CreateViewNode>, 'kind' | 'name'>;
|
|
7
7
|
export interface CreateViewNode extends OperationNode {
|
|
8
8
|
readonly kind: 'CreateViewNode';
|
|
9
9
|
readonly name: SchemableIdentifierNode;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
|
-
export
|
|
3
|
-
export
|
|
2
|
+
export type ColumnDataType = 'varchar' | `varchar(${number})` | 'char' | `char(${number})` | 'text' | 'integer' | 'int2' | 'int4' | 'int8' | 'bigint' | 'boolean' | 'real' | 'double precision' | 'float4' | 'float8' | 'decimal' | `decimal(${number}, ${number})` | 'numeric' | `numeric(${number}, ${number})` | 'binary' | `binary(${number})` | 'bytea' | 'date' | 'datetime' | `datetime(${number})` | 'time' | `time(${number})` | 'timetz' | `timetz(${number})` | 'timestamp' | `timestamp(${number})` | 'timestamptz' | `timestamptz(${number})` | 'serial' | 'bigserial' | 'uuid' | 'json' | 'jsonb' | 'blob';
|
|
3
|
+
export type DataTypeParams = Omit<DataTypeNode, 'kind' | 'dataType'>;
|
|
4
4
|
export interface DataTypeNode extends OperationNode {
|
|
5
5
|
readonly kind: 'DataTypeNode';
|
|
6
6
|
readonly dataType: ColumnDataType;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
2
|
import { IdentifierNode } from './identifier-node.js';
|
|
3
|
-
export
|
|
3
|
+
export type DropConstraintNodeProps = Omit<DropConstraintNode, 'kind' | 'constraintName'>;
|
|
4
4
|
export interface DropConstraintNode extends OperationNode {
|
|
5
5
|
readonly kind: 'DropConstraintNode';
|
|
6
6
|
readonly constraintName: IdentifierNode;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
2
|
import { SchemableIdentifierNode } from './schemable-identifier-node.js';
|
|
3
3
|
import { TableNode } from './table-node.js';
|
|
4
|
-
export
|
|
4
|
+
export type DropIndexNodeProps = Omit<DropIndexNode, 'kind' | 'name'>;
|
|
5
5
|
export interface DropIndexNode extends OperationNode {
|
|
6
6
|
readonly kind: 'DropIndexNode';
|
|
7
7
|
readonly name: SchemableIdentifierNode;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IdentifierNode } from './identifier-node.js';
|
|
2
2
|
import { OperationNode } from './operation-node.js';
|
|
3
|
-
export
|
|
3
|
+
export type DropSchemaNodeParams = Omit<Partial<DropSchemaNode>, 'kind' | 'schema'>;
|
|
4
4
|
export interface DropSchemaNode extends OperationNode {
|
|
5
5
|
readonly kind: 'DropSchemaNode';
|
|
6
6
|
readonly schema: IdentifierNode;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
2
|
import { TableNode } from './table-node.js';
|
|
3
|
-
export
|
|
3
|
+
export type DropTablexNodeParams = Omit<Partial<DropTableNode>, 'kind' | 'table'>;
|
|
4
4
|
export interface DropTableNode extends OperationNode {
|
|
5
5
|
readonly kind: 'DropTableNode';
|
|
6
6
|
readonly table: TableNode;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
2
|
import { SchemableIdentifierNode } from './schemable-identifier-node.js';
|
|
3
|
-
export
|
|
3
|
+
export type DropTypeNodeParams = Omit<Partial<DropTypeNode>, 'kind' | 'name'>;
|
|
4
4
|
export interface DropTypeNode extends OperationNode {
|
|
5
5
|
readonly kind: 'DropTypeNode';
|
|
6
6
|
readonly name: SchemableIdentifierNode;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
2
|
import { SchemableIdentifierNode } from './schemable-identifier-node.js';
|
|
3
|
-
export
|
|
3
|
+
export type DropViewNodeParams = Omit<Partial<DropViewNode>, 'kind' | 'name'>;
|
|
4
4
|
export interface DropViewNode extends OperationNode {
|
|
5
5
|
readonly kind: 'DropViewNode';
|
|
6
6
|
readonly name: SchemableIdentifierNode;
|
|
@@ -3,7 +3,7 @@ import { IdentifierNode } from './identifier-node.js';
|
|
|
3
3
|
import { OperationNode } from './operation-node.js';
|
|
4
4
|
import { OnModifyForeignAction, ReferencesNode } from './references-node.js';
|
|
5
5
|
import { TableNode } from './table-node.js';
|
|
6
|
-
export
|
|
6
|
+
export type ForeignKeyConstraintNodeProps = Omit<ForeignKeyConstraintNode, 'kind' | 'columns' | 'references'>;
|
|
7
7
|
export interface ForeignKeyConstraintNode extends OperationNode {
|
|
8
8
|
readonly kind: 'ForeignKeyConstraintNode';
|
|
9
9
|
readonly columns: ReadonlyArray<ColumnNode>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
|
-
export
|
|
2
|
+
export type GeneratedNodeParams = Omit<GeneratedNode, 'kind' | 'expression'>;
|
|
3
3
|
export interface GeneratedNode extends OperationNode {
|
|
4
4
|
readonly kind: 'GeneratedNode';
|
|
5
5
|
readonly byDefault?: boolean;
|
|
@@ -6,7 +6,7 @@ import { OperationNode } from './operation-node.js';
|
|
|
6
6
|
import { ReturningNode } from './returning-node.js';
|
|
7
7
|
import { TableNode } from './table-node.js';
|
|
8
8
|
import { WithNode } from './with-node.js';
|
|
9
|
-
export
|
|
9
|
+
export type InsertQueryNodeProps = Omit<InsertQueryNode, 'kind' | 'into'>;
|
|
10
10
|
export interface InsertQueryNode extends OperationNode {
|
|
11
11
|
readonly kind: 'InsertQueryNode';
|
|
12
12
|
readonly into: TableNode;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OnNode } from './on-node.js';
|
|
2
2
|
import { OperationNode } from './operation-node.js';
|
|
3
|
-
export
|
|
3
|
+
export type JoinType = 'InnerJoin' | 'LeftJoin' | 'RightJoin' | 'FullJoin' | 'LateralInnerJoin' | 'LateralLeftJoin';
|
|
4
4
|
export interface JoinNode extends OperationNode {
|
|
5
5
|
readonly kind: 'JoinNode';
|
|
6
6
|
readonly joinType: JoinType;
|
|
@@ -15,5 +15,4 @@ export declare const JoinNode: Readonly<{
|
|
|
15
15
|
create(joinType: JoinType, table: OperationNode): JoinNode;
|
|
16
16
|
createWithOn(joinType: JoinType, table: OperationNode, on: OperationNode): JoinNode;
|
|
17
17
|
cloneWithOn(joinNode: JoinNode, operation: OperationNode): JoinNode;
|
|
18
|
-
cloneWithOrOn(joinNode: JoinNode, operation: OperationNode): JoinNode;
|
|
19
18
|
}>;
|
|
@@ -32,12 +32,4 @@ export const JoinNode = freeze({
|
|
|
32
32
|
: OnNode.create(operation),
|
|
33
33
|
});
|
|
34
34
|
},
|
|
35
|
-
cloneWithOrOn(joinNode, operation) {
|
|
36
|
-
return freeze({
|
|
37
|
-
...joinNode,
|
|
38
|
-
on: joinNode.on
|
|
39
|
-
? OnNode.cloneWithOperation(joinNode.on, 'Or', operation)
|
|
40
|
-
: OnNode.create(operation),
|
|
41
|
-
});
|
|
42
|
-
},
|
|
43
35
|
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { OperationNode } from './operation-node.js';
|
|
2
|
+
import { OperatorNode } from './operator-node.js';
|
|
3
|
+
import { ValueNode } from './value-node.js';
|
|
4
|
+
export interface JSONOperatorChainNode extends OperationNode {
|
|
5
|
+
readonly kind: 'JSONOperatorChainNode';
|
|
6
|
+
readonly operator: OperatorNode;
|
|
7
|
+
readonly values: readonly ValueNode[];
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export declare const JSONOperatorChainNode: Readonly<{
|
|
13
|
+
is(node: OperationNode): node is JSONOperatorChainNode;
|
|
14
|
+
create(operator: OperatorNode): JSONOperatorChainNode;
|
|
15
|
+
cloneWithValue(node: JSONOperatorChainNode, value: ValueNode): JSONOperatorChainNode;
|
|
16
|
+
}>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/// <reference types="./json-operator-chain-node.d.ts" />
|
|
2
|
+
import { freeze } from '../util/object-utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export const JSONOperatorChainNode = freeze({
|
|
7
|
+
is(node) {
|
|
8
|
+
return node.kind === 'JSONOperatorChainNode';
|
|
9
|
+
},
|
|
10
|
+
create(operator) {
|
|
11
|
+
return freeze({
|
|
12
|
+
kind: 'JSONOperatorChainNode',
|
|
13
|
+
operator,
|
|
14
|
+
values: freeze([]),
|
|
15
|
+
});
|
|
16
|
+
},
|
|
17
|
+
cloneWithValue(node, value) {
|
|
18
|
+
return freeze({
|
|
19
|
+
...node,
|
|
20
|
+
values: freeze([...node.values, value]),
|
|
21
|
+
});
|
|
22
|
+
},
|
|
23
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { OperationNode } from './operation-node.js';
|
|
2
|
+
export type JSONPathLegType = 'Member' | 'ArrayLocation';
|
|
3
|
+
export interface JSONPathLegNode extends OperationNode {
|
|
4
|
+
readonly kind: 'JSONPathLegNode';
|
|
5
|
+
readonly type: JSONPathLegType;
|
|
6
|
+
readonly value: string | number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
export declare const JSONPathLegNode: Readonly<{
|
|
12
|
+
is(node: OperationNode): node is JSONPathLegNode;
|
|
13
|
+
create(type: JSONPathLegType, value: string | number): JSONPathLegNode;
|
|
14
|
+
}>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/// <reference types="./json-path-leg-node.d.ts" />
|
|
2
|
+
import { freeze } from '../util/object-utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export const JSONPathLegNode = freeze({
|
|
7
|
+
is(node) {
|
|
8
|
+
return node.kind === 'JSONPathLegNode';
|
|
9
|
+
},
|
|
10
|
+
create(type, value) {
|
|
11
|
+
return freeze({
|
|
12
|
+
kind: 'JSONPathLegNode',
|
|
13
|
+
type,
|
|
14
|
+
value,
|
|
15
|
+
});
|
|
16
|
+
},
|
|
17
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { JSONPathLegNode } from './json-path-leg-node.js';
|
|
2
|
+
import { OperationNode } from './operation-node.js';
|
|
3
|
+
import { OperatorNode } from './operator-node.js';
|
|
4
|
+
export interface JSONPathNode extends OperationNode {
|
|
5
|
+
readonly kind: 'JSONPathNode';
|
|
6
|
+
readonly inOperator?: OperatorNode;
|
|
7
|
+
readonly pathLegs: ReadonlyArray<JSONPathLegNode>;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export declare const JSONPathNode: Readonly<{
|
|
13
|
+
is(node: OperationNode): node is JSONPathNode;
|
|
14
|
+
create(inOperator?: OperatorNode): JSONPathNode;
|
|
15
|
+
cloneWithLeg(jsonPathNode: JSONPathNode, pathLeg: JSONPathLegNode): JSONPathNode;
|
|
16
|
+
}>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/// <reference types="./json-path-node.d.ts" />
|
|
2
|
+
import { freeze } from '../util/object-utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export const JSONPathNode = freeze({
|
|
7
|
+
is(node) {
|
|
8
|
+
return node.kind === 'JSONPathNode';
|
|
9
|
+
},
|
|
10
|
+
create(inOperator) {
|
|
11
|
+
return freeze({
|
|
12
|
+
kind: 'JSONPathNode',
|
|
13
|
+
inOperator,
|
|
14
|
+
pathLegs: freeze([]),
|
|
15
|
+
});
|
|
16
|
+
},
|
|
17
|
+
cloneWithLeg(jsonPathNode, pathLeg) {
|
|
18
|
+
return freeze({
|
|
19
|
+
...jsonPathNode,
|
|
20
|
+
pathLegs: freeze([...jsonPathNode.pathLegs, pathLeg]),
|
|
21
|
+
});
|
|
22
|
+
},
|
|
23
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { JSONOperatorChainNode } from './json-operator-chain-node.js';
|
|
2
|
+
import { JSONPathNode } from './json-path-node.js';
|
|
3
|
+
import { OperationNode } from './operation-node.js';
|
|
4
|
+
import { ReferenceNode } from './reference-node.js';
|
|
5
|
+
export interface JSONReferenceNode extends OperationNode {
|
|
6
|
+
readonly kind: 'JSONReferenceNode';
|
|
7
|
+
readonly reference: ReferenceNode;
|
|
8
|
+
readonly traversal: JSONPathNode | JSONOperatorChainNode;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export declare const JSONReferenceNode: Readonly<{
|
|
14
|
+
is(node: OperationNode): node is JSONReferenceNode;
|
|
15
|
+
create(reference: ReferenceNode, traversal: JSONPathNode | JSONOperatorChainNode): JSONReferenceNode;
|
|
16
|
+
cloneWithTraversal(node: JSONReferenceNode, traversal: JSONPathNode | JSONOperatorChainNode): JSONReferenceNode;
|
|
17
|
+
}>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/// <reference types="./json-reference-node.d.ts" />
|
|
2
|
+
import { freeze } from '../util/object-utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export const JSONReferenceNode = freeze({
|
|
7
|
+
is(node) {
|
|
8
|
+
return node.kind === 'JSONReferenceNode';
|
|
9
|
+
},
|
|
10
|
+
create(reference, traversal) {
|
|
11
|
+
return freeze({
|
|
12
|
+
kind: 'JSONReferenceNode',
|
|
13
|
+
reference,
|
|
14
|
+
traversal,
|
|
15
|
+
});
|
|
16
|
+
},
|
|
17
|
+
cloneWithTraversal(node, traversal) {
|
|
18
|
+
return freeze({
|
|
19
|
+
...node,
|
|
20
|
+
traversal,
|
|
21
|
+
});
|
|
22
|
+
},
|
|
23
|
+
});
|
|
@@ -3,7 +3,7 @@ import { ColumnUpdateNode } from './column-update-node.js';
|
|
|
3
3
|
import { IdentifierNode } from './identifier-node.js';
|
|
4
4
|
import { OperationNode } from './operation-node.js';
|
|
5
5
|
import { WhereNode } from './where-node.js';
|
|
6
|
-
export
|
|
6
|
+
export type OnConflictNodeProps = Omit<OnConflictNode, 'kind' | 'indexWhere' | 'updateWhere'>;
|
|
7
7
|
export interface OnConflictNode extends OperationNode {
|
|
8
8
|
readonly kind: 'OnConflictNode';
|
|
9
9
|
readonly columns?: ReadonlyArray<ColumnNode>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ColumnUpdateNode } from './column-update-node.js';
|
|
2
2
|
import { OperationNode } from './operation-node.js';
|
|
3
|
-
export
|
|
3
|
+
export type OnDuplicateKeyNodeProps = Omit<OnDuplicateKeyNode, 'kind'>;
|
|
4
4
|
export interface OnDuplicateKeyNode extends OperationNode {
|
|
5
5
|
readonly kind: 'OnDuplicateKeyNode';
|
|
6
6
|
readonly updates: ReadonlyArray<ColumnUpdateNode>;
|
|
@@ -80,6 +80,10 @@ import { UsingNode } from './using-node.js';
|
|
|
80
80
|
import { FunctionNode } from './function-node.js';
|
|
81
81
|
import { CaseNode } from './case-node.js';
|
|
82
82
|
import { WhenNode } from './when-node.js';
|
|
83
|
+
import { JSONReferenceNode } from './json-reference-node.js';
|
|
84
|
+
import { JSONPathNode } from './json-path-node.js';
|
|
85
|
+
import { JSONPathLegNode } from './json-path-leg-node.js';
|
|
86
|
+
import { JSONOperatorChainNode } from './json-operator-chain-node.js';
|
|
83
87
|
/**
|
|
84
88
|
* Transforms an operation node tree into another one.
|
|
85
89
|
*
|
|
@@ -189,6 +193,10 @@ export declare class OperationNodeTransformer {
|
|
|
189
193
|
protected transformFunction(node: FunctionNode): FunctionNode;
|
|
190
194
|
protected transformCase(node: CaseNode): CaseNode;
|
|
191
195
|
protected transformWhen(node: WhenNode): WhenNode;
|
|
196
|
+
protected transformJSONReference(node: JSONReferenceNode): JSONReferenceNode;
|
|
197
|
+
protected transformJSONPath(node: JSONPathNode): JSONPathNode;
|
|
198
|
+
protected transformJSONPathLeg(node: JSONPathLegNode): JSONPathLegNode;
|
|
199
|
+
protected transformJSONOperatorChain(node: JSONOperatorChainNode): JSONOperatorChainNode;
|
|
192
200
|
protected transformDataType(node: DataTypeNode): DataTypeNode;
|
|
193
201
|
protected transformSelectAll(node: SelectAllNode): SelectAllNode;
|
|
194
202
|
protected transformIdentifier(node: IdentifierNode): IdentifierNode;
|