kysely 0.27.2 → 0.27.4
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/CONTRIBUTING.md +1 -1
- package/README.md +7 -7
- package/dist/cjs/dialect/database-introspector.d.ts +1 -0
- package/dist/cjs/dialect/dialect-adapter-base.d.ts +2 -1
- package/dist/cjs/dialect/dialect-adapter-base.js +4 -1
- package/dist/cjs/dialect/dialect-adapter.d.ts +5 -0
- package/dist/cjs/dialect/mssql/mssql-adapter.d.ts +1 -5
- package/dist/cjs/dialect/mssql/mssql-adapter.js +2 -4
- package/dist/cjs/dialect/mssql/mssql-dialect-config.d.ts +46 -26
- package/dist/cjs/dialect/mssql/mssql-driver.d.ts +1 -0
- package/dist/cjs/dialect/mssql/mssql-driver.js +95 -36
- package/dist/cjs/dialect/mssql/mssql-introspector.js +13 -2
- package/dist/cjs/dialect/mssql/mssql-query-compiler.d.ts +4 -0
- package/dist/cjs/dialect/mssql/mssql-query-compiler.js +8 -0
- package/dist/cjs/dialect/mysql/mysql-introspector.js +2 -0
- package/dist/cjs/dialect/postgres/postgres-dialect-config.d.ts +1 -1
- package/dist/cjs/dialect/postgres/postgres-driver.js +2 -1
- package/dist/cjs/dialect/postgres/postgres-introspector.js +3 -1
- package/dist/cjs/dialect/sqlite/sqlite-introspector.js +1 -0
- package/dist/cjs/driver/database-connection.d.ts +4 -2
- package/dist/cjs/dynamic/dynamic-reference-builder.js +2 -2
- 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 +31 -5
- package/dist/cjs/expression/expression-builder.js +7 -3
- package/dist/cjs/expression/expression.js +2 -3
- package/dist/cjs/helpers/mssql.js +3 -4
- package/dist/cjs/helpers/mysql.d.ts +3 -3
- package/dist/cjs/helpers/mysql.js +6 -7
- package/dist/cjs/helpers/postgres.d.ts +4 -4
- package/dist/cjs/helpers/postgres.js +7 -8
- package/dist/cjs/helpers/sqlite.js +3 -4
- package/dist/cjs/index.d.ts +31 -18
- package/dist/cjs/index.js +30 -17
- package/dist/cjs/kysely.d.ts +1 -1
- package/dist/cjs/kysely.js +3 -3
- package/dist/cjs/operation-node/add-index-node.js +1 -1
- package/dist/cjs/operation-node/alter-column-node.d.ts +1 -1
- package/dist/cjs/operation-node/case-node.d.ts +1 -1
- package/dist/cjs/operation-node/cast-node.d.ts +13 -0
- package/dist/cjs/operation-node/cast-node.js +19 -0
- package/dist/cjs/operation-node/column-definition-node.d.ts +2 -0
- package/dist/cjs/operation-node/data-type-node.d.ts +5 -1
- package/dist/cjs/operation-node/data-type-node.js +56 -0
- package/dist/cjs/operation-node/delete-query-node.d.ts +6 -0
- package/dist/cjs/operation-node/delete-query-node.js +12 -0
- package/dist/cjs/operation-node/fetch-node.d.ts +15 -0
- package/dist/cjs/operation-node/fetch-node.js +19 -0
- package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +4 -4
- package/dist/cjs/operation-node/having-node.d.ts +1 -1
- package/dist/cjs/operation-node/insert-query-node.d.ts +6 -1
- package/dist/cjs/operation-node/insert-query-node.js +5 -0
- package/dist/cjs/operation-node/join-node.d.ts +1 -1
- package/dist/cjs/operation-node/matched-node.d.ts +13 -0
- package/dist/cjs/operation-node/matched-node.js +19 -0
- package/dist/cjs/operation-node/merge-query-node.d.ts +27 -0
- package/dist/cjs/operation-node/merge-query-node.js +45 -0
- package/dist/cjs/operation-node/on-node.d.ts +1 -1
- package/dist/cjs/operation-node/operation-node-source.js +1 -2
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +12 -0
- package/dist/cjs/operation-node/operation-node-transformer.js +62 -0
- 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 +3 -3
- package/dist/cjs/operation-node/operator-node.js +8 -6
- package/dist/cjs/operation-node/output-node.d.ts +13 -0
- package/dist/cjs/operation-node/output-node.js +26 -0
- package/dist/cjs/operation-node/query-node.d.ts +17 -5
- package/dist/cjs/operation-node/query-node.js +24 -1
- package/dist/cjs/operation-node/select-query-node.d.ts +6 -0
- package/dist/cjs/operation-node/select-query-node.js +12 -0
- package/dist/cjs/operation-node/top-node.d.ts +14 -0
- package/dist/cjs/operation-node/top-node.js +19 -0
- package/dist/cjs/operation-node/update-query-node.d.ts +9 -1
- package/dist/cjs/operation-node/update-query-node.js +11 -0
- package/dist/cjs/operation-node/where-node.d.ts +1 -1
- package/dist/cjs/parser/binary-operation-parser.d.ts +1 -1
- package/dist/cjs/parser/binary-operation-parser.js +7 -8
- package/dist/cjs/parser/data-type-parser.js +8 -5
- package/dist/cjs/parser/default-value-parser.js +1 -2
- package/dist/cjs/parser/expression-parser.js +3 -4
- package/dist/cjs/parser/fetch-parser.d.ts +2 -0
- package/dist/cjs/parser/fetch-parser.js +17 -0
- package/dist/cjs/parser/group-by-parser.js +1 -2
- package/dist/cjs/parser/identifier-parser.js +1 -2
- package/dist/cjs/parser/insert-values-parser.d.ts +3 -3
- package/dist/cjs/parser/insert-values-parser.js +1 -2
- package/dist/cjs/parser/join-parser.js +1 -2
- package/dist/cjs/parser/merge-parser.d.ts +9 -0
- package/dist/cjs/parser/merge-parser.js +31 -0
- package/dist/cjs/parser/on-commit-action-parse.js +1 -2
- package/dist/cjs/parser/on-modify-action-parser.js +1 -2
- package/dist/cjs/parser/order-by-parser.js +3 -4
- package/dist/cjs/parser/parse-utils.js +4 -5
- package/dist/cjs/parser/partition-by-parser.js +1 -2
- package/dist/cjs/parser/reference-parser.js +8 -9
- package/dist/cjs/parser/returning-parser.d.ts +4 -3
- package/dist/cjs/parser/select-parser.js +2 -3
- package/dist/cjs/parser/set-operation-parser.js +1 -2
- package/dist/cjs/parser/table-parser.d.ts +4 -3
- package/dist/cjs/parser/table-parser.js +4 -5
- package/dist/cjs/parser/top-parser.d.ts +2 -0
- package/dist/cjs/parser/top-parser.js +19 -0
- package/dist/cjs/parser/unary-operation-parser.js +3 -4
- package/dist/cjs/parser/update-set-parser.js +2 -3
- package/dist/cjs/parser/value-parser.js +4 -5
- package/dist/cjs/parser/with-parser.js +1 -2
- package/dist/cjs/plugin/camel-case/camel-case-plugin.d.ts +2 -2
- package/dist/cjs/plugin/camel-case/camel-case-plugin.js +2 -2
- package/dist/cjs/plugin/camel-case/camel-case.js +2 -3
- package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.d.ts +18 -0
- package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.js +19 -11
- package/dist/cjs/plugin/with-schema/with-schema-transformer.js +4 -0
- package/dist/cjs/query-builder/delete-query-builder.d.ts +188 -5
- package/dist/cjs/query-builder/delete-query-builder.js +139 -5
- package/dist/cjs/query-builder/function-module.d.ts +5 -5
- package/dist/cjs/query-builder/function-module.js +1 -2
- package/dist/cjs/query-builder/insert-query-builder.d.ts +166 -10
- package/dist/cjs/query-builder/insert-query-builder.js +107 -10
- package/dist/cjs/query-builder/merge-query-builder.d.ts +721 -0
- package/dist/cjs/query-builder/merge-query-builder.js +547 -0
- package/dist/cjs/query-builder/merge-result.d.ts +4 -0
- package/dist/cjs/query-builder/merge-result.js +10 -0
- package/dist/cjs/query-builder/no-result-error.js +2 -2
- package/dist/cjs/query-builder/on-conflict-builder.d.ts +2 -2
- package/dist/cjs/query-builder/output-interface.d.ts +95 -0
- package/dist/cjs/query-builder/output-interface.js +2 -0
- package/dist/cjs/query-builder/returning-interface.d.ts +2 -0
- package/dist/cjs/query-builder/select-query-builder.d.ts +177 -17
- package/dist/cjs/query-builder/select-query-builder.js +21 -2
- package/dist/cjs/query-builder/update-query-builder.d.ts +175 -10
- package/dist/cjs/query-builder/update-query-builder.js +119 -7
- package/dist/cjs/query-builder/update-result.d.ts +9 -0
- package/dist/cjs/query-builder/update-result.js +9 -0
- package/dist/cjs/query-builder/where-interface.d.ts +1 -1
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +12 -0
- package/dist/cjs/query-compiler/default-query-compiler.js +118 -10
- package/dist/cjs/query-compiler/query-compiler.d.ts +2 -1
- package/dist/cjs/query-creator.d.ts +96 -5
- package/dist/cjs/query-creator.js +63 -1
- package/dist/cjs/raw-builder/raw-builder.js +1 -2
- package/dist/cjs/raw-builder/sql.d.ts +5 -5
- package/dist/cjs/schema/alter-column-builder.js +3 -0
- package/dist/cjs/schema/alter-table-add-index-builder.d.ts +1 -1
- package/dist/cjs/schema/alter-table-add-index-builder.js +7 -3
- package/dist/cjs/schema/alter-table-builder.js +1 -2
- package/dist/cjs/schema/column-definition-builder.d.ts +18 -1
- package/dist/cjs/schema/column-definition-builder.js +22 -1
- package/dist/cjs/util/assert.js +2 -3
- package/dist/cjs/util/compilable.js +1 -2
- package/dist/cjs/util/infer-result.d.ts +2 -1
- package/dist/cjs/util/json-object-args.js +1 -2
- package/dist/cjs/util/log-once.js +1 -2
- package/dist/cjs/util/object-utils.js +38 -26
- package/dist/cjs/util/performance-now.js +1 -2
- package/dist/cjs/util/prevent-await.js +1 -2
- package/dist/cjs/util/query-id.js +1 -2
- package/dist/cjs/util/random-string.js +1 -2
- package/dist/cjs/util/require-all-props.js +1 -2
- package/dist/cjs/util/stack-trace-utils.js +1 -2
- package/dist/cjs/util/type-utils.d.ts +3 -2
- package/dist/esm/dialect/database-introspector.d.ts +1 -0
- package/dist/esm/dialect/dialect-adapter-base.d.ts +2 -1
- package/dist/esm/dialect/dialect-adapter-base.js +4 -1
- package/dist/esm/dialect/dialect-adapter.d.ts +5 -0
- package/dist/esm/dialect/mssql/mssql-adapter.d.ts +1 -5
- package/dist/esm/dialect/mssql/mssql-adapter.js +2 -4
- package/dist/esm/dialect/mssql/mssql-dialect-config.d.ts +46 -26
- package/dist/esm/dialect/mssql/mssql-driver.d.ts +1 -0
- package/dist/esm/dialect/mssql/mssql-driver.js +95 -36
- package/dist/esm/dialect/mssql/mssql-introspector.js +13 -2
- package/dist/esm/dialect/mssql/mssql-query-compiler.d.ts +4 -0
- package/dist/esm/dialect/mssql/mssql-query-compiler.js +8 -0
- package/dist/esm/dialect/mysql/mysql-introspector.js +2 -0
- package/dist/esm/dialect/postgres/postgres-dialect-config.d.ts +1 -1
- package/dist/esm/dialect/postgres/postgres-driver.js +2 -1
- package/dist/esm/dialect/postgres/postgres-introspector.js +3 -1
- package/dist/esm/dialect/sqlite/sqlite-introspector.js +1 -0
- package/dist/esm/driver/database-connection.d.ts +4 -2
- 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 +31 -5
- package/dist/esm/expression/expression-builder.js +5 -0
- package/dist/esm/helpers/mysql.d.ts +3 -3
- package/dist/esm/helpers/mysql.js +3 -3
- package/dist/esm/helpers/postgres.d.ts +4 -4
- package/dist/esm/helpers/postgres.js +4 -4
- package/dist/esm/index.d.ts +31 -18
- package/dist/esm/index.js +30 -17
- package/dist/esm/kysely.d.ts +1 -1
- package/dist/esm/kysely.js +1 -1
- package/dist/esm/operation-node/add-index-node.js +1 -1
- package/dist/esm/operation-node/alter-column-node.d.ts +1 -1
- package/dist/esm/operation-node/case-node.d.ts +1 -1
- package/dist/esm/operation-node/cast-node.d.ts +13 -0
- package/dist/esm/operation-node/cast-node.js +17 -0
- package/dist/esm/operation-node/column-definition-node.d.ts +2 -0
- package/dist/esm/operation-node/data-type-node.d.ts +5 -1
- package/dist/esm/operation-node/data-type-node.js +55 -0
- package/dist/esm/operation-node/delete-query-node.d.ts +6 -0
- package/dist/esm/operation-node/delete-query-node.js +12 -0
- package/dist/esm/operation-node/fetch-node.d.ts +15 -0
- package/dist/esm/operation-node/fetch-node.js +17 -0
- package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +4 -4
- package/dist/esm/operation-node/having-node.d.ts +1 -1
- package/dist/esm/operation-node/insert-query-node.d.ts +6 -1
- package/dist/esm/operation-node/insert-query-node.js +5 -0
- package/dist/esm/operation-node/join-node.d.ts +1 -1
- package/dist/esm/operation-node/matched-node.d.ts +13 -0
- package/dist/esm/operation-node/matched-node.js +17 -0
- package/dist/esm/operation-node/merge-query-node.d.ts +27 -0
- package/dist/esm/operation-node/merge-query-node.js +43 -0
- package/dist/esm/operation-node/on-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 +62 -0
- 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 +3 -3
- package/dist/esm/operation-node/operator-node.js +2 -0
- package/dist/esm/operation-node/output-node.d.ts +13 -0
- package/dist/esm/operation-node/output-node.js +24 -0
- package/dist/esm/operation-node/query-node.d.ts +17 -5
- package/dist/esm/operation-node/query-node.js +24 -1
- package/dist/esm/operation-node/select-query-node.d.ts +6 -0
- package/dist/esm/operation-node/select-query-node.js +12 -0
- package/dist/esm/operation-node/top-node.d.ts +14 -0
- package/dist/esm/operation-node/top-node.js +17 -0
- package/dist/esm/operation-node/update-query-node.d.ts +9 -1
- package/dist/esm/operation-node/update-query-node.js +11 -0
- package/dist/esm/operation-node/where-node.d.ts +1 -1
- package/dist/esm/parser/binary-operation-parser.d.ts +1 -1
- package/dist/esm/parser/binary-operation-parser.js +2 -2
- package/dist/esm/parser/data-type-parser.js +8 -4
- package/dist/esm/parser/fetch-parser.d.ts +2 -0
- package/dist/esm/parser/fetch-parser.js +15 -0
- package/dist/esm/parser/insert-values-parser.d.ts +3 -3
- package/dist/esm/parser/merge-parser.d.ts +9 -0
- package/dist/esm/parser/merge-parser.js +28 -0
- package/dist/esm/parser/returning-parser.d.ts +4 -3
- package/dist/esm/parser/table-parser.d.ts +4 -3
- package/dist/esm/parser/top-parser.d.ts +2 -0
- package/dist/esm/parser/top-parser.js +17 -0
- package/dist/esm/plugin/camel-case/camel-case-plugin.d.ts +2 -2
- package/dist/esm/plugin/camel-case/camel-case-plugin.js +2 -2
- package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.d.ts +18 -0
- package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.js +19 -11
- package/dist/esm/plugin/with-schema/with-schema-transformer.js +4 -0
- package/dist/esm/query-builder/delete-query-builder.d.ts +188 -5
- package/dist/esm/query-builder/delete-query-builder.js +139 -5
- package/dist/esm/query-builder/function-module.d.ts +5 -5
- package/dist/esm/query-builder/insert-query-builder.d.ts +166 -10
- package/dist/esm/query-builder/insert-query-builder.js +107 -10
- package/dist/esm/query-builder/merge-query-builder.d.ts +721 -0
- package/dist/esm/query-builder/merge-query-builder.js +541 -0
- package/dist/esm/query-builder/merge-result.d.ts +4 -0
- package/dist/esm/query-builder/merge-result.js +7 -0
- package/dist/esm/query-builder/on-conflict-builder.d.ts +2 -2
- package/dist/esm/query-builder/output-interface.d.ts +95 -0
- package/dist/esm/query-builder/output-interface.js +2 -0
- package/dist/esm/query-builder/returning-interface.d.ts +2 -0
- package/dist/esm/query-builder/select-query-builder.d.ts +177 -17
- package/dist/esm/query-builder/select-query-builder.js +20 -0
- package/dist/esm/query-builder/update-query-builder.d.ts +175 -10
- package/dist/esm/query-builder/update-query-builder.js +119 -7
- package/dist/esm/query-builder/update-result.d.ts +9 -0
- package/dist/esm/query-builder/update-result.js +9 -0
- package/dist/esm/query-builder/where-interface.d.ts +1 -1
- package/dist/esm/query-compiler/default-query-compiler.d.ts +12 -0
- package/dist/esm/query-compiler/default-query-compiler.js +118 -10
- package/dist/esm/query-compiler/query-compiler.d.ts +2 -1
- package/dist/esm/query-creator.d.ts +96 -5
- package/dist/esm/query-creator.js +64 -2
- package/dist/esm/raw-builder/sql.d.ts +5 -5
- package/dist/esm/schema/alter-column-builder.js +3 -0
- package/dist/esm/schema/alter-table-add-index-builder.d.ts +1 -1
- package/dist/esm/schema/alter-table-add-index-builder.js +8 -4
- package/dist/esm/schema/alter-table-builder.js +1 -2
- package/dist/esm/schema/column-definition-builder.d.ts +18 -1
- package/dist/esm/schema/column-definition-builder.js +22 -1
- package/dist/esm/util/infer-result.d.ts +2 -1
- package/dist/esm/util/object-utils.js +18 -5
- package/dist/esm/util/type-utils.d.ts +3 -2
- package/package.json +26 -24
|
@@ -16,6 +16,8 @@ const query_id_js_1 = require("./util/query-id.js");
|
|
|
16
16
|
const with_schema_plugin_js_1 = require("./plugin/with-schema/with-schema-plugin.js");
|
|
17
17
|
const object_utils_js_1 = require("./util/object-utils.js");
|
|
18
18
|
const select_parser_js_1 = require("./parser/select-parser.js");
|
|
19
|
+
const merge_query_builder_js_1 = require("./query-builder/merge-query-builder.js");
|
|
20
|
+
const merge_query_node_js_1 = require("./operation-node/merge-query-node.js");
|
|
19
21
|
class QueryCreator {
|
|
20
22
|
#props;
|
|
21
23
|
constructor(props) {
|
|
@@ -127,29 +129,89 @@ class QueryCreator {
|
|
|
127
129
|
queryNode: update_query_node_js_1.UpdateQueryNode.create((0, table_parser_js_1.parseTableExpression)(table), this.#props.withNode),
|
|
128
130
|
});
|
|
129
131
|
}
|
|
132
|
+
mergeInto(targetTable) {
|
|
133
|
+
return new merge_query_builder_js_1.MergeQueryBuilder({
|
|
134
|
+
queryId: (0, query_id_js_1.createQueryId)(),
|
|
135
|
+
executor: this.#props.executor,
|
|
136
|
+
queryNode: merge_query_node_js_1.MergeQueryNode.create((0, table_parser_js_1.parseAliasedTable)(targetTable), this.#props.withNode),
|
|
137
|
+
});
|
|
138
|
+
}
|
|
130
139
|
/**
|
|
131
140
|
* Creates a `with` query (Common Table Expression).
|
|
132
141
|
*
|
|
133
142
|
* ### Examples
|
|
134
143
|
*
|
|
144
|
+
* <!-- siteExample("cte", "Simple selects", 10) -->
|
|
145
|
+
*
|
|
146
|
+
* Common table expressions (CTE) are a great way to modularize complex queries.
|
|
147
|
+
* Essentially they allow you to run multiple separate queries within a
|
|
148
|
+
* single roundtrip to the DB.
|
|
149
|
+
*
|
|
150
|
+
* Since CTEs are a part of the main query, query optimizers inside DB
|
|
151
|
+
* engines are able to optimize the overall query. For example, postgres
|
|
152
|
+
* is able to inline the CTEs inside the using queries if it decides it's
|
|
153
|
+
* faster.
|
|
154
|
+
*
|
|
135
155
|
* ```ts
|
|
136
|
-
* await db
|
|
156
|
+
* const result = await db
|
|
157
|
+
* // Create a CTE called `jennifers` that selects all
|
|
158
|
+
* // persons named 'Jennifer'.
|
|
137
159
|
* .with('jennifers', (db) => db
|
|
138
160
|
* .selectFrom('person')
|
|
139
161
|
* .where('first_name', '=', 'Jennifer')
|
|
140
162
|
* .select(['id', 'age'])
|
|
141
163
|
* )
|
|
164
|
+
* // Select all rows from the `jennifers` CTE and
|
|
165
|
+
* // further filter it.
|
|
142
166
|
* .with('adult_jennifers', (db) => db
|
|
143
167
|
* .selectFrom('jennifers')
|
|
144
168
|
* .where('age', '>', 18)
|
|
145
169
|
* .select(['id', 'age'])
|
|
146
170
|
* )
|
|
171
|
+
* // Finally select all adult jennifers that are
|
|
172
|
+
* // also younger than 60.
|
|
147
173
|
* .selectFrom('adult_jennifers')
|
|
148
174
|
* .where('age', '<', 60)
|
|
149
175
|
* .selectAll()
|
|
150
176
|
* .execute()
|
|
151
177
|
* ```
|
|
152
178
|
*
|
|
179
|
+
* <!-- siteExample("cte", "Inserts, updates and deletions", 20) -->
|
|
180
|
+
*
|
|
181
|
+
* Some databases like postgres also allow you to run other queries than selects
|
|
182
|
+
* in CTEs. On these databases CTEs are extremely powerful:
|
|
183
|
+
*
|
|
184
|
+
* ```ts
|
|
185
|
+
* const result = await db
|
|
186
|
+
* .with('new_person', (db) => db
|
|
187
|
+
* .insertInto('person')
|
|
188
|
+
* .values({
|
|
189
|
+
* first_name: 'Jennifer',
|
|
190
|
+
* age: 35,
|
|
191
|
+
* })
|
|
192
|
+
* .returning('id')
|
|
193
|
+
* )
|
|
194
|
+
* .with('new_pet', (db) => db
|
|
195
|
+
* .insertInto('pet')
|
|
196
|
+
* .values({
|
|
197
|
+
* name: 'Doggo',
|
|
198
|
+
* species: 'dog',
|
|
199
|
+
* is_favorite: true,
|
|
200
|
+
* // Use the id of the person we just inserted.
|
|
201
|
+
* owner_id: db
|
|
202
|
+
* .selectFrom('new_person')
|
|
203
|
+
* .select('id')
|
|
204
|
+
* })
|
|
205
|
+
* .returning('id')
|
|
206
|
+
* )
|
|
207
|
+
* .selectFrom(['new_person', 'new_pet'])
|
|
208
|
+
* .select([
|
|
209
|
+
* 'new_person.id as person_id',
|
|
210
|
+
* 'new_pet.id as pet_id'
|
|
211
|
+
* ])
|
|
212
|
+
* .execute()
|
|
213
|
+
* ```
|
|
214
|
+
*
|
|
153
215
|
* The CTE name can optionally specify column names in addition to
|
|
154
216
|
* a name. In that case Kysely requires the expression to retun
|
|
155
217
|
* rows with the same columns.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createRawBuilder =
|
|
3
|
+
exports.createRawBuilder = createRawBuilder;
|
|
4
4
|
const alias_node_js_1 = require("../operation-node/alias-node.js");
|
|
5
5
|
const prevent_await_js_1 = require("../util/prevent-await.js");
|
|
6
6
|
const object_utils_js_1 = require("../util/object-utils.js");
|
|
@@ -63,7 +63,6 @@ class RawBuilderImpl {
|
|
|
63
63
|
function createRawBuilder(props) {
|
|
64
64
|
return new RawBuilderImpl(props);
|
|
65
65
|
}
|
|
66
|
-
exports.createRawBuilder = createRawBuilder;
|
|
67
66
|
(0, prevent_await_js_1.preventAwait)(RawBuilderImpl, "don't await RawBuilder instances directly. To execute the query you need to call `execute`");
|
|
68
67
|
class AliasedRawBuilderImpl {
|
|
69
68
|
#rawBuilder;
|
|
@@ -33,12 +33,12 @@ export interface Sql {
|
|
|
33
33
|
* // method to give it an alias.
|
|
34
34
|
* sql<string>`concat(first_name, ' ', last_name)`.as('full_name')
|
|
35
35
|
* )
|
|
36
|
-
* .where(sql
|
|
36
|
+
* .where(sql<boolean>`birthdate between ${date1} and ${date2}`)
|
|
37
37
|
* // Here we assume we have list of nicknames for the person
|
|
38
38
|
* // (a list of strings) and we use the PostgreSQL `@>` operator
|
|
39
39
|
* // to test if all of them are valid nicknames for the user.
|
|
40
|
-
* .where('nicknames', '@>', sql
|
|
41
|
-
* .orderBy(sql
|
|
40
|
+
* .where('nicknames', '@>', sql<string[]>`ARRAY[${sql.join(nicknames)}]`)
|
|
41
|
+
* .orderBy(sql<string>`concat(first_name, ' ', last_name)`)
|
|
42
42
|
* .execute()
|
|
43
43
|
* ```
|
|
44
44
|
*
|
|
@@ -63,7 +63,7 @@ export interface Sql {
|
|
|
63
63
|
*
|
|
64
64
|
* ```ts
|
|
65
65
|
* const petName = db.selectFrom('pet').select('name').limit(1)
|
|
66
|
-
* const fullName = sql
|
|
66
|
+
* const fullName = sql<string>`concat(first_name, ' ', last_name)`
|
|
67
67
|
*
|
|
68
68
|
* sql`
|
|
69
69
|
* select ${fullName} as full_name, ${petName} as pet_name
|
|
@@ -301,7 +301,7 @@ export interface Sql {
|
|
|
301
301
|
* return db
|
|
302
302
|
* .selectFrom('person')
|
|
303
303
|
* .selectAll()
|
|
304
|
-
* .where('nicknames', '@>', sql
|
|
304
|
+
* .where('nicknames', '@>', sql<string[]>`ARRAY[${sql.join(nicknames)}]`)
|
|
305
305
|
* .execute()
|
|
306
306
|
* }
|
|
307
307
|
* ```
|
|
@@ -4,6 +4,7 @@ exports.AlteredColumnBuilder = exports.AlterColumnBuilder = void 0;
|
|
|
4
4
|
const alter_column_node_js_1 = require("../operation-node/alter-column-node.js");
|
|
5
5
|
const data_type_parser_js_1 = require("../parser/data-type-parser.js");
|
|
6
6
|
const default_value_parser_js_1 = require("../parser/default-value-parser.js");
|
|
7
|
+
const prevent_await_js_1 = require("../util/prevent-await.js");
|
|
7
8
|
class AlterColumnBuilder {
|
|
8
9
|
#column;
|
|
9
10
|
constructor(column) {
|
|
@@ -33,6 +34,7 @@ class AlterColumnBuilder {
|
|
|
33
34
|
}
|
|
34
35
|
}
|
|
35
36
|
exports.AlterColumnBuilder = AlterColumnBuilder;
|
|
37
|
+
(0, prevent_await_js_1.preventAwait)(AlterColumnBuilder, "don't await AlterColumnBuilder instances");
|
|
36
38
|
/**
|
|
37
39
|
* Allows us to force consumers to do exactly one alteration to a column.
|
|
38
40
|
*
|
|
@@ -58,3 +60,4 @@ class AlteredColumnBuilder {
|
|
|
58
60
|
}
|
|
59
61
|
}
|
|
60
62
|
exports.AlteredColumnBuilder = AlteredColumnBuilder;
|
|
63
|
+
(0, prevent_await_js_1.preventAwait)(AlteredColumnBuilder, "don't await AlteredColumnBuilder instances");
|
|
@@ -72,7 +72,7 @@ export declare class AlterTableAddIndexBuilder implements OperationNodeSource, C
|
|
|
72
72
|
* await db.schema
|
|
73
73
|
* .alterTable('person')
|
|
74
74
|
* .addIndex('person_first_name_index')
|
|
75
|
-
* .expression(sql
|
|
75
|
+
* .expression(sql<boolean>`(first_name < 'Sami')`)
|
|
76
76
|
* .execute()
|
|
77
77
|
* ```
|
|
78
78
|
*
|
|
@@ -52,7 +52,9 @@ class AlterTableAddIndexBuilder {
|
|
|
52
52
|
return new AlterTableAddIndexBuilder({
|
|
53
53
|
...this.#props,
|
|
54
54
|
node: alter_table_node_js_1.AlterTableNode.cloneWithTableProps(this.#props.node, {
|
|
55
|
-
addIndex: add_index_node_js_1.AddIndexNode.cloneWithColumns(this.#props.node.addIndex, [
|
|
55
|
+
addIndex: add_index_node_js_1.AddIndexNode.cloneWithColumns(this.#props.node.addIndex, [
|
|
56
|
+
(0, reference_parser_js_1.parseOrderedColumnName)(column),
|
|
57
|
+
]),
|
|
56
58
|
}),
|
|
57
59
|
});
|
|
58
60
|
}
|
|
@@ -97,7 +99,7 @@ class AlterTableAddIndexBuilder {
|
|
|
97
99
|
* await db.schema
|
|
98
100
|
* .alterTable('person')
|
|
99
101
|
* .addIndex('person_first_name_index')
|
|
100
|
-
* .expression(sql
|
|
102
|
+
* .expression(sql<boolean>`(first_name < 'Sami')`)
|
|
101
103
|
* .execute()
|
|
102
104
|
* ```
|
|
103
105
|
*
|
|
@@ -111,7 +113,9 @@ class AlterTableAddIndexBuilder {
|
|
|
111
113
|
return new AlterTableAddIndexBuilder({
|
|
112
114
|
...this.#props,
|
|
113
115
|
node: alter_table_node_js_1.AlterTableNode.cloneWithTableProps(this.#props.node, {
|
|
114
|
-
addIndex: add_index_node_js_1.AddIndexNode.cloneWithColumns(this.#props.node.addIndex, [
|
|
116
|
+
addIndex: add_index_node_js_1.AddIndexNode.cloneWithColumns(this.#props.node.addIndex, [
|
|
117
|
+
expression.toOperationNode(),
|
|
118
|
+
]),
|
|
115
119
|
}),
|
|
116
120
|
});
|
|
117
121
|
}
|
|
@@ -203,6 +203,7 @@ class AlterTableBuilder {
|
|
|
203
203
|
}
|
|
204
204
|
}
|
|
205
205
|
exports.AlterTableBuilder = AlterTableBuilder;
|
|
206
|
+
(0, prevent_await_js_1.preventAwait)(AlterTableBuilder, "don't await AlterTableBuilder instances");
|
|
206
207
|
class AlterTableColumnAlteringBuilder {
|
|
207
208
|
#props;
|
|
208
209
|
constructor(props) {
|
|
@@ -252,6 +253,4 @@ class AlterTableColumnAlteringBuilder {
|
|
|
252
253
|
}
|
|
253
254
|
}
|
|
254
255
|
exports.AlterTableColumnAlteringBuilder = AlterTableColumnAlteringBuilder;
|
|
255
|
-
(0, prevent_await_js_1.preventAwait)(AlterTableBuilder, "don't await AlterTableBuilder instances");
|
|
256
|
-
(0, prevent_await_js_1.preventAwait)(alter_column_builder_js_1.AlterColumnBuilder, "don't await AlterColumnBuilder instances");
|
|
257
256
|
(0, prevent_await_js_1.preventAwait)(AlterTableColumnAlteringBuilder, "don't await AlterTableColumnAlteringBuilder instances directly. To execute the query you need to call `execute`");
|
|
@@ -14,6 +14,14 @@ export declare class ColumnDefinitionBuilder implements OperationNodeSource {
|
|
|
14
14
|
* you can use the `serial` or `bigserial` data type instead.
|
|
15
15
|
*/
|
|
16
16
|
autoIncrement(): ColumnDefinitionBuilder;
|
|
17
|
+
/**
|
|
18
|
+
* Makes the column an identity column.
|
|
19
|
+
*
|
|
20
|
+
* This only works on some dialects like MS SQL Server (MSSQL).
|
|
21
|
+
*
|
|
22
|
+
* For PostgreSQL's `generated always as identity` use {@link generatedAlwaysAsIdentity}.
|
|
23
|
+
*/
|
|
24
|
+
identity(): ColumnDefinitionBuilder;
|
|
17
25
|
/**
|
|
18
26
|
* Makes the column the primary key.
|
|
19
27
|
*
|
|
@@ -137,7 +145,11 @@ export declare class ColumnDefinitionBuilder implements OperationNodeSource {
|
|
|
137
145
|
*/
|
|
138
146
|
generatedAlwaysAs(expression: Expression<any>): ColumnDefinitionBuilder;
|
|
139
147
|
/**
|
|
140
|
-
* Adds the `generated always as identity` specifier
|
|
148
|
+
* Adds the `generated always as identity` specifier.
|
|
149
|
+
*
|
|
150
|
+
* This only works on some dialects like PostgreSQL.
|
|
151
|
+
*
|
|
152
|
+
* For MS SQL Server (MSSQL)'s identity column use {@link identity}.
|
|
141
153
|
*/
|
|
142
154
|
generatedAlwaysAsIdentity(): ColumnDefinitionBuilder;
|
|
143
155
|
/**
|
|
@@ -208,6 +220,11 @@ export declare class ColumnDefinitionBuilder implements OperationNodeSource {
|
|
|
208
220
|
* ```
|
|
209
221
|
*/
|
|
210
222
|
nullsNotDistinct(): ColumnDefinitionBuilder;
|
|
223
|
+
/**
|
|
224
|
+
* Adds `if not exists` specifier.
|
|
225
|
+
* This only works for PostgreSQL.
|
|
226
|
+
*/
|
|
227
|
+
ifNotExists(): ColumnDefinitionBuilder;
|
|
211
228
|
/**
|
|
212
229
|
* This can be used to add any additional SQL to the end of the column definition.
|
|
213
230
|
*
|
|
@@ -26,6 +26,16 @@ class ColumnDefinitionBuilder {
|
|
|
26
26
|
autoIncrement() {
|
|
27
27
|
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { autoIncrement: true }));
|
|
28
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Makes the column an identity column.
|
|
31
|
+
*
|
|
32
|
+
* This only works on some dialects like MS SQL Server (MSSQL).
|
|
33
|
+
*
|
|
34
|
+
* For PostgreSQL's `generated always as identity` use {@link generatedAlwaysAsIdentity}.
|
|
35
|
+
*/
|
|
36
|
+
identity() {
|
|
37
|
+
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { identity: true }));
|
|
38
|
+
}
|
|
29
39
|
/**
|
|
30
40
|
* Makes the column the primary key.
|
|
31
41
|
*
|
|
@@ -193,7 +203,11 @@ class ColumnDefinitionBuilder {
|
|
|
193
203
|
}));
|
|
194
204
|
}
|
|
195
205
|
/**
|
|
196
|
-
* Adds the `generated always as identity` specifier
|
|
206
|
+
* Adds the `generated always as identity` specifier.
|
|
207
|
+
*
|
|
208
|
+
* This only works on some dialects like PostgreSQL.
|
|
209
|
+
*
|
|
210
|
+
* For MS SQL Server (MSSQL)'s identity column use {@link identity}.
|
|
197
211
|
*/
|
|
198
212
|
generatedAlwaysAsIdentity() {
|
|
199
213
|
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
|
|
@@ -285,6 +299,13 @@ class ColumnDefinitionBuilder {
|
|
|
285
299
|
nullsNotDistinct() {
|
|
286
300
|
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { nullsNotDistinct: true }));
|
|
287
301
|
}
|
|
302
|
+
/**
|
|
303
|
+
* Adds `if not exists` specifier.
|
|
304
|
+
* This only works for PostgreSQL.
|
|
305
|
+
*/
|
|
306
|
+
ifNotExists() {
|
|
307
|
+
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { ifNotExists: true }));
|
|
308
|
+
}
|
|
288
309
|
/**
|
|
289
310
|
* This can be used to add any additional SQL to the end of the column definition.
|
|
290
311
|
*
|
package/dist/cjs/util/assert.js
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.assertNotNullOrUndefined = assertNotNullOrUndefined;
|
|
4
|
+
exports.assertIsString = assertIsString;
|
|
4
5
|
function assertNotNullOrUndefined(value) {
|
|
5
6
|
if (value === null || value === undefined) {
|
|
6
7
|
throw new Error(`${value} must not be null or undefined`);
|
|
7
8
|
}
|
|
8
9
|
}
|
|
9
|
-
exports.assertNotNullOrUndefined = assertNotNullOrUndefined;
|
|
10
10
|
function assertIsString(value) {
|
|
11
11
|
if (typeof value !== 'string') {
|
|
12
12
|
throw new Error(`${value} must be a string`);
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
exports.assertIsString = assertIsString;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isCompilable =
|
|
3
|
+
exports.isCompilable = isCompilable;
|
|
4
4
|
const object_utils_js_1 = require("./object-utils.js");
|
|
5
5
|
function isCompilable(value) {
|
|
6
6
|
return (0, object_utils_js_1.isObject)(value) && (0, object_utils_js_1.isFunction)(value.compile);
|
|
7
7
|
}
|
|
8
|
-
exports.isCompilable = isCompilable;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DeleteResult } from '../query-builder/delete-result.js';
|
|
2
2
|
import { InsertResult } from '../query-builder/insert-result.js';
|
|
3
|
+
import { MergeResult } from '../query-builder/merge-result.js';
|
|
3
4
|
import { UpdateResult } from '../query-builder/update-result.js';
|
|
4
5
|
import { CompiledQuery } from '../query-compiler/compiled-query.js';
|
|
5
6
|
import { Compilable } from './compilable.js';
|
|
@@ -43,5 +44,5 @@ import { Simplify } from './type-utils.js';
|
|
|
43
44
|
* ```
|
|
44
45
|
*/
|
|
45
46
|
export type InferResult<C extends Compilable<any> | CompiledQuery<any>> = C extends Compilable<infer O> ? ResolveResult<O> : C extends CompiledQuery<infer O> ? ResolveResult<O> : never;
|
|
46
|
-
type ResolveResult<O> = O extends InsertResult | UpdateResult | DeleteResult ? O : Simplify<O>[];
|
|
47
|
+
type ResolveResult<O> = O extends InsertResult | UpdateResult | DeleteResult | MergeResult ? O : Simplify<O>[];
|
|
47
48
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getJsonObjectArgs =
|
|
3
|
+
exports.getJsonObjectArgs = getJsonObjectArgs;
|
|
4
4
|
const expression_wrapper_js_1 = require("../expression/expression-wrapper.js");
|
|
5
5
|
const alias_node_js_1 = require("../operation-node/alias-node.js");
|
|
6
6
|
const column_node_js_1 = require("../operation-node/column-node.js");
|
|
@@ -26,7 +26,6 @@ function getJsonObjectArgs(node, table) {
|
|
|
26
26
|
}
|
|
27
27
|
return args;
|
|
28
28
|
}
|
|
29
|
-
exports.getJsonObjectArgs = getJsonObjectArgs;
|
|
30
29
|
function colName(col) {
|
|
31
30
|
return new expression_wrapper_js_1.ExpressionWrapper(value_node_js_1.ValueNode.createImmediate(col));
|
|
32
31
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.logOnce =
|
|
3
|
+
exports.logOnce = logOnce;
|
|
4
4
|
const LOGGED_MESSAGES = new Set();
|
|
5
5
|
/**
|
|
6
6
|
* Use for system-level logging, such as deprecation messages.
|
|
@@ -13,4 +13,3 @@ function logOnce(message) {
|
|
|
13
13
|
LOGGED_MESSAGES.add(message);
|
|
14
14
|
console.log(message);
|
|
15
15
|
}
|
|
16
|
-
exports.logOnce = logOnce;
|
|
@@ -1,6 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.isEmpty = isEmpty;
|
|
4
|
+
exports.isUndefined = isUndefined;
|
|
5
|
+
exports.isString = isString;
|
|
6
|
+
exports.isNumber = isNumber;
|
|
7
|
+
exports.isBoolean = isBoolean;
|
|
8
|
+
exports.isNull = isNull;
|
|
9
|
+
exports.isDate = isDate;
|
|
10
|
+
exports.isBigInt = isBigInt;
|
|
11
|
+
exports.isBuffer = isBuffer;
|
|
12
|
+
exports.isFunction = isFunction;
|
|
13
|
+
exports.isObject = isObject;
|
|
14
|
+
exports.isArrayBufferOrView = isArrayBufferOrView;
|
|
15
|
+
exports.isPlainObject = isPlainObject;
|
|
16
|
+
exports.getLast = getLast;
|
|
17
|
+
exports.freeze = freeze;
|
|
18
|
+
exports.asArray = asArray;
|
|
19
|
+
exports.asReadonlyArray = asReadonlyArray;
|
|
20
|
+
exports.isReadonlyArray = isReadonlyArray;
|
|
21
|
+
exports.noop = noop;
|
|
22
|
+
exports.compare = compare;
|
|
4
23
|
function isEmpty(obj) {
|
|
5
24
|
if (Array.isArray(obj) || isString(obj) || isBuffer(obj)) {
|
|
6
25
|
return obj.length === 0;
|
|
@@ -10,69 +29,60 @@ function isEmpty(obj) {
|
|
|
10
29
|
}
|
|
11
30
|
return false;
|
|
12
31
|
}
|
|
13
|
-
exports.isEmpty = isEmpty;
|
|
14
32
|
function isUndefined(obj) {
|
|
15
33
|
return typeof obj === 'undefined' || obj === undefined;
|
|
16
34
|
}
|
|
17
|
-
exports.isUndefined = isUndefined;
|
|
18
35
|
function isString(obj) {
|
|
19
36
|
return typeof obj === 'string';
|
|
20
37
|
}
|
|
21
|
-
exports.isString = isString;
|
|
22
38
|
function isNumber(obj) {
|
|
23
39
|
return typeof obj === 'number';
|
|
24
40
|
}
|
|
25
|
-
exports.isNumber = isNumber;
|
|
26
41
|
function isBoolean(obj) {
|
|
27
42
|
return typeof obj === 'boolean';
|
|
28
43
|
}
|
|
29
|
-
exports.isBoolean = isBoolean;
|
|
30
44
|
function isNull(obj) {
|
|
31
45
|
return obj === null;
|
|
32
46
|
}
|
|
33
|
-
exports.isNull = isNull;
|
|
34
47
|
function isDate(obj) {
|
|
35
48
|
return obj instanceof Date;
|
|
36
49
|
}
|
|
37
|
-
exports.isDate = isDate;
|
|
38
50
|
function isBigInt(obj) {
|
|
39
51
|
return typeof obj === 'bigint';
|
|
40
52
|
}
|
|
41
|
-
exports.isBigInt = isBigInt;
|
|
42
53
|
// Don't change the returnd type to `obj is Buffer` to not create a
|
|
43
54
|
// hard dependency to node.
|
|
44
55
|
function isBuffer(obj) {
|
|
45
56
|
return typeof Buffer !== 'undefined' && Buffer.isBuffer(obj);
|
|
46
57
|
}
|
|
47
|
-
exports.isBuffer = isBuffer;
|
|
48
58
|
function isFunction(obj) {
|
|
49
59
|
return typeof obj === 'function';
|
|
50
60
|
}
|
|
51
|
-
exports.isFunction = isFunction;
|
|
52
61
|
function isObject(obj) {
|
|
53
62
|
return typeof obj === 'object' && obj !== null;
|
|
54
63
|
}
|
|
55
|
-
exports.isObject = isObject;
|
|
56
64
|
function isArrayBufferOrView(obj) {
|
|
57
65
|
return obj instanceof ArrayBuffer || ArrayBuffer.isView(obj);
|
|
58
66
|
}
|
|
59
|
-
exports.isArrayBufferOrView = isArrayBufferOrView;
|
|
60
67
|
function isPlainObject(obj) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
68
|
+
if (!isObject(obj) || getTag(obj) !== '[object Object]') {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
if (Object.getPrototypeOf(obj) === null) {
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
let proto = obj;
|
|
75
|
+
while (Object.getPrototypeOf(proto) !== null) {
|
|
76
|
+
proto = Object.getPrototypeOf(proto);
|
|
77
|
+
}
|
|
78
|
+
return Object.getPrototypeOf(obj) === proto;
|
|
66
79
|
}
|
|
67
|
-
exports.isPlainObject = isPlainObject;
|
|
68
80
|
function getLast(arr) {
|
|
69
81
|
return arr[arr.length - 1];
|
|
70
82
|
}
|
|
71
|
-
exports.getLast = getLast;
|
|
72
83
|
function freeze(obj) {
|
|
73
84
|
return Object.freeze(obj);
|
|
74
85
|
}
|
|
75
|
-
exports.freeze = freeze;
|
|
76
86
|
function asArray(arg) {
|
|
77
87
|
if (isReadonlyArray(arg)) {
|
|
78
88
|
return arg;
|
|
@@ -81,7 +91,6 @@ function asArray(arg) {
|
|
|
81
91
|
return [arg];
|
|
82
92
|
}
|
|
83
93
|
}
|
|
84
|
-
exports.asArray = asArray;
|
|
85
94
|
function asReadonlyArray(arg) {
|
|
86
95
|
if (isReadonlyArray(arg)) {
|
|
87
96
|
return arg;
|
|
@@ -90,15 +99,12 @@ function asReadonlyArray(arg) {
|
|
|
90
99
|
return freeze([arg]);
|
|
91
100
|
}
|
|
92
101
|
}
|
|
93
|
-
exports.asReadonlyArray = asReadonlyArray;
|
|
94
102
|
function isReadonlyArray(arg) {
|
|
95
103
|
return Array.isArray(arg);
|
|
96
104
|
}
|
|
97
|
-
exports.isReadonlyArray = isReadonlyArray;
|
|
98
105
|
function noop(obj) {
|
|
99
106
|
return obj;
|
|
100
107
|
}
|
|
101
|
-
exports.noop = noop;
|
|
102
108
|
function compare(obj1, obj2) {
|
|
103
109
|
if (isReadonlyArray(obj1) && isReadonlyArray(obj2)) {
|
|
104
110
|
return compareArrays(obj1, obj2);
|
|
@@ -108,7 +114,6 @@ function compare(obj1, obj2) {
|
|
|
108
114
|
}
|
|
109
115
|
return obj1 === obj2;
|
|
110
116
|
}
|
|
111
|
-
exports.compare = compare;
|
|
112
117
|
function compareArrays(arr1, arr2) {
|
|
113
118
|
if (arr1.length !== arr2.length) {
|
|
114
119
|
return false;
|
|
@@ -148,3 +153,10 @@ function compareGenericObjects(obj1, obj2) {
|
|
|
148
153
|
}
|
|
149
154
|
return true;
|
|
150
155
|
}
|
|
156
|
+
const toString = Object.prototype.toString;
|
|
157
|
+
function getTag(value) {
|
|
158
|
+
if (value == null) {
|
|
159
|
+
return value === undefined ? '[object Undefined]' : '[object Null]';
|
|
160
|
+
}
|
|
161
|
+
return toString.call(value);
|
|
162
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.performanceNow =
|
|
3
|
+
exports.performanceNow = performanceNow;
|
|
4
4
|
const object_utils_js_1 = require("./object-utils.js");
|
|
5
5
|
function performanceNow() {
|
|
6
6
|
if (typeof performance !== 'undefined' && (0, object_utils_js_1.isFunction)(performance.now)) {
|
|
@@ -10,4 +10,3 @@ function performanceNow() {
|
|
|
10
10
|
return Date.now();
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
exports.performanceNow = performanceNow;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.preventAwait =
|
|
3
|
+
exports.preventAwait = preventAwait;
|
|
4
4
|
function preventAwait(clazz, message) {
|
|
5
5
|
Object.defineProperties(clazz.prototype, {
|
|
6
6
|
then: {
|
|
@@ -11,4 +11,3 @@ function preventAwait(clazz, message) {
|
|
|
11
11
|
},
|
|
12
12
|
});
|
|
13
13
|
}
|
|
14
|
-
exports.preventAwait = preventAwait;
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createQueryId =
|
|
3
|
+
exports.createQueryId = createQueryId;
|
|
4
4
|
const random_string_js_1 = require("./random-string.js");
|
|
5
5
|
function createQueryId() {
|
|
6
6
|
return new LazyQueryId();
|
|
7
7
|
}
|
|
8
|
-
exports.createQueryId = createQueryId;
|
|
9
8
|
class LazyQueryId {
|
|
10
9
|
#queryId;
|
|
11
10
|
get queryId() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.randomString =
|
|
3
|
+
exports.randomString = randomString;
|
|
4
4
|
const CHARS = [
|
|
5
5
|
'A',
|
|
6
6
|
'B',
|
|
@@ -72,7 +72,6 @@ function randomString(length) {
|
|
|
72
72
|
}
|
|
73
73
|
return chars;
|
|
74
74
|
}
|
|
75
|
-
exports.randomString = randomString;
|
|
76
75
|
function randomChar() {
|
|
77
76
|
return CHARS[~~(Math.random() * CHARS.length)];
|
|
78
77
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.requireAllProps =
|
|
3
|
+
exports.requireAllProps = requireAllProps;
|
|
4
4
|
/**
|
|
5
5
|
* Helper function to check listed properties according to given type. Check if all properties has been used when object is initialised.
|
|
6
6
|
*
|
|
@@ -37,4 +37,3 @@ exports.requireAllProps = void 0;
|
|
|
37
37
|
function requireAllProps(obj) {
|
|
38
38
|
return obj;
|
|
39
39
|
}
|
|
40
|
-
exports.requireAllProps = requireAllProps;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.extendStackTrace =
|
|
3
|
+
exports.extendStackTrace = extendStackTrace;
|
|
4
4
|
const object_utils_js_1 = require("./object-utils.js");
|
|
5
5
|
function extendStackTrace(err, stackError) {
|
|
6
6
|
if (isStackHolder(err) && stackError.stack) {
|
|
@@ -11,7 +11,6 @@ function extendStackTrace(err, stackError) {
|
|
|
11
11
|
}
|
|
12
12
|
return err;
|
|
13
13
|
}
|
|
14
|
-
exports.extendStackTrace = extendStackTrace;
|
|
15
14
|
function isStackHolder(obj) {
|
|
16
15
|
return (0, object_utils_js_1.isObject)(obj) && (0, object_utils_js_1.isString)(obj.stack);
|
|
17
16
|
}
|
|
@@ -2,6 +2,7 @@ import { InsertResult } from '../query-builder/insert-result.js';
|
|
|
2
2
|
import { DeleteResult } from '../query-builder/delete-result.js';
|
|
3
3
|
import { UpdateResult } from '../query-builder/update-result.js';
|
|
4
4
|
import { KyselyTypeError } from './type-error.js';
|
|
5
|
+
import { MergeResult } from '../query-builder/merge-result.js';
|
|
5
6
|
/**
|
|
6
7
|
* Given a database type and a union of table names in that db, returns
|
|
7
8
|
* a union type with all possible column names.
|
|
@@ -88,8 +89,8 @@ export type AnyAliasedColumnWithTable<DB, TB extends keyof DB> = `${AnyColumnWit
|
|
|
88
89
|
* Extracts the item type of an array.
|
|
89
90
|
*/
|
|
90
91
|
export type ArrayItemType<T> = T extends ReadonlyArray<infer I> ? I : never;
|
|
91
|
-
export type SimplifySingleResult<O> = O extends InsertResult ? O : O extends DeleteResult ? O : O extends UpdateResult ? O : Simplify<O> | undefined;
|
|
92
|
-
export type SimplifyResult<O> = O extends InsertResult ? O : O extends DeleteResult ? O : O extends UpdateResult ? O : Simplify<O>;
|
|
92
|
+
export type SimplifySingleResult<O> = O extends InsertResult ? O : O extends DeleteResult ? O : O extends UpdateResult ? O : O extends MergeResult ? O : Simplify<O> | undefined;
|
|
93
|
+
export type SimplifyResult<O> = O extends InsertResult ? O : O extends DeleteResult ? O : O extends UpdateResult ? O : O extends MergeResult ? O : Simplify<O>;
|
|
93
94
|
export type Simplify<T> = DrainOuterGeneric<{
|
|
94
95
|
[K in keyof T]: T[K];
|
|
95
96
|
} & {}>;
|