kysely 0.27.3 → 0.27.5
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/.renovaterc.json +3 -0
- package/CONTRIBUTING.md +2 -2
- package/README.md +7 -7
- package/deno.check.d.ts +86 -0
- package/deno.check.json +21 -0
- package/dist/cjs/dialect/dialect-adapter-base.d.ts +13 -3
- package/dist/cjs/dialect/dialect-adapter-base.js +4 -1
- package/dist/cjs/dialect/dialect-adapter.d.ts +16 -2
- package/dist/cjs/dialect/mssql/mssql-adapter.d.ts +12 -7
- package/dist/cjs/dialect/mssql/mssql-adapter.js +2 -4
- package/dist/cjs/dialect/mssql/mssql-dialect-config.d.ts +83 -55
- package/dist/cjs/dialect/mssql/mssql-driver.d.ts +1 -0
- package/dist/cjs/dialect/mssql/mssql-driver.js +114 -48
- package/dist/cjs/dialect/mysql/mysql-adapter.d.ts +11 -2
- package/dist/cjs/dialect/mysql/mysql-dialect-config.d.ts +4 -0
- package/dist/cjs/dialect/mysql/mysql-driver.js +3 -0
- package/dist/cjs/dialect/postgres/postgres-adapter.d.ts +11 -2
- package/dist/cjs/dialect/postgres/postgres-dialect-config.d.ts +10 -3
- package/dist/cjs/dialect/postgres/postgres-driver.js +3 -0
- package/dist/cjs/dialect/postgres/postgres-introspector.js +5 -1
- package/dist/cjs/dialect/sqlite/sqlite-adapter.d.ts +11 -2
- package/dist/cjs/driver/database-connection.d.ts +3 -1
- package/dist/cjs/driver/dummy-driver.d.ts +13 -12
- package/dist/cjs/driver/dummy-driver.js +13 -12
- package/dist/cjs/dynamic/dynamic-reference-builder.js +2 -2
- package/dist/cjs/dynamic/dynamic.d.ts +7 -7
- package/dist/cjs/dynamic/dynamic.js +7 -7
- package/dist/cjs/expression/expression-builder.d.ts +153 -62
- package/dist/cjs/expression/expression-builder.js +2 -3
- package/dist/cjs/expression/expression-wrapper.d.ts +92 -23
- package/dist/cjs/expression/expression.d.ts +40 -5
- package/dist/cjs/expression/expression.js +2 -3
- package/dist/cjs/helpers/mssql.d.ts +74 -14
- package/dist/cjs/helpers/mssql.js +77 -18
- package/dist/cjs/helpers/mysql.d.ts +17 -13
- package/dist/cjs/helpers/mysql.js +20 -17
- package/dist/cjs/helpers/postgres.d.ts +11 -8
- package/dist/cjs/helpers/postgres.js +14 -12
- package/dist/cjs/helpers/sqlite.d.ts +41 -16
- package/dist/cjs/helpers/sqlite.js +44 -20
- package/dist/cjs/index.d.ts +28 -21
- package/dist/cjs/index.js +28 -21
- package/dist/cjs/kysely.d.ts +100 -42
- package/dist/cjs/kysely.js +63 -39
- package/dist/cjs/migration/file-migration-provider.d.ts +2 -2
- package/dist/cjs/migration/file-migration-provider.js +2 -2
- package/dist/cjs/migration/migrator.d.ts +82 -14
- package/dist/cjs/migration/migrator.js +82 -14
- package/dist/cjs/operation-node/aggregate-function-node.d.ts +4 -0
- package/dist/cjs/operation-node/aggregate-function-node.js +9 -0
- 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/column-definition-node.d.ts +1 -0
- package/dist/cjs/operation-node/data-type-node.d.ts +2 -2
- package/dist/cjs/operation-node/data-type-node.js +17 -3
- package/dist/cjs/operation-node/delete-query-node.d.ts +3 -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 +3 -0
- package/dist/cjs/operation-node/merge-query-node.d.ts +3 -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 +11 -3
- package/dist/cjs/operation-node/operation-node-transformer.js +26 -3
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +2 -0
- package/dist/cjs/operation-node/operation-node-visitor.js +1 -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 +15 -6
- package/dist/cjs/operation-node/query-node.js +17 -0
- package/dist/cjs/operation-node/select-query-node.d.ts +1 -1
- package/dist/cjs/operation-node/select-query-node.js +6 -8
- package/dist/cjs/operation-node/update-query-node.d.ts +3 -0
- package/dist/cjs/operation-node/where-node.d.ts +1 -1
- package/dist/cjs/parser/binary-operation-parser.js +5 -6
- package/dist/cjs/parser/data-type-parser.js +1 -2
- 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.js +1 -2
- 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.js +1 -2
- package/dist/cjs/parser/join-parser.js +1 -2
- package/dist/cjs/parser/merge-parser.js +2 -3
- 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.js +4 -5
- package/dist/cjs/parser/top-parser.js +1 -2
- 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 +54 -27
- package/dist/cjs/plugin/camel-case/camel-case-plugin.js +26 -21
- package/dist/cjs/plugin/camel-case/camel-case.js +2 -3
- package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +29 -7
- package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
- package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-transformer.js +2 -2
- package/dist/cjs/plugin/immediate-value/immediate-value-plugin.d.ts +28 -6
- package/dist/cjs/plugin/kysely-plugin.d.ts +28 -6
- package/dist/cjs/plugin/noop-plugin.d.ts +28 -6
- package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.d.ts +80 -9
- package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.js +53 -14
- package/dist/cjs/plugin/with-schema/with-schema-plugin.d.ts +28 -6
- package/dist/cjs/query-builder/aggregate-function-builder.d.ts +43 -1
- package/dist/cjs/query-builder/aggregate-function-builder.js +30 -0
- package/dist/cjs/query-builder/delete-query-builder.d.ts +219 -43
- package/dist/cjs/query-builder/delete-query-builder.js +95 -31
- package/dist/cjs/query-builder/function-module.d.ts +40 -93
- package/dist/cjs/query-builder/function-module.js +1 -2
- package/dist/cjs/query-builder/insert-query-builder.d.ts +326 -67
- package/dist/cjs/query-builder/insert-query-builder.js +212 -61
- package/dist/cjs/query-builder/insert-result.d.ts +10 -5
- package/dist/cjs/query-builder/insert-result.js +10 -5
- package/dist/cjs/query-builder/json-path-builder.d.ts +33 -9
- package/dist/cjs/query-builder/json-path-builder.js +8 -5
- package/dist/cjs/query-builder/merge-query-builder.d.ts +312 -10
- package/dist/cjs/query-builder/merge-query-builder.js +98 -7
- package/dist/cjs/query-builder/no-result-error.js +2 -2
- package/dist/cjs/query-builder/on-conflict-builder.d.ts +53 -20
- package/dist/cjs/query-builder/on-conflict-builder.js +41 -16
- package/dist/cjs/query-builder/output-interface.d.ts +138 -0
- package/dist/cjs/query-builder/output-interface.js +2 -0
- package/dist/cjs/query-builder/returning-interface.d.ts +7 -5
- package/dist/cjs/query-builder/select-query-builder-expression.d.ts +8 -0
- package/dist/cjs/query-builder/select-query-builder.d.ts +370 -73
- package/dist/cjs/query-builder/select-query-builder.js +14 -9
- package/dist/cjs/query-builder/update-query-builder.d.ts +225 -31
- package/dist/cjs/query-builder/update-query-builder.js +96 -17
- 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 +6 -2
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +2 -0
- package/dist/cjs/query-compiler/default-query-compiler.js +45 -1
- package/dist/cjs/query-creator.d.ts +122 -21
- package/dist/cjs/query-creator.js +56 -3
- package/dist/cjs/raw-builder/raw-builder.d.ts +29 -7
- package/dist/cjs/raw-builder/raw-builder.js +1 -2
- package/dist/cjs/raw-builder/sql.d.ts +31 -12
- package/dist/cjs/schema/alter-column-builder.d.ts +17 -3
- package/dist/cjs/schema/alter-column-builder.js +20 -3
- package/dist/cjs/schema/alter-table-add-index-builder.d.ts +44 -10
- package/dist/cjs/schema/alter-table-add-index-builder.js +27 -10
- package/dist/cjs/schema/alter-table-builder.js +1 -2
- package/dist/cjs/schema/column-definition-builder.d.ts +286 -24
- package/dist/cjs/schema/column-definition-builder.js +288 -24
- package/dist/cjs/schema/create-table-builder.d.ts +86 -33
- package/dist/cjs/schema/create-table-builder.js +86 -33
- package/dist/cjs/util/assert.js +2 -3
- package/dist/cjs/util/column-type.d.ts +5 -9
- package/dist/cjs/util/compilable.js +1 -2
- 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.d.ts +4 -2
- package/dist/cjs/util/require-all-props.js +5 -4
- package/dist/cjs/util/stack-trace-utils.js +1 -2
- package/dist/cjs/util/streamable.d.ts +1 -1
- package/dist/cjs/util/type-utils.d.ts +4 -2
- package/dist/esm/dialect/dialect-adapter-base.d.ts +13 -3
- package/dist/esm/dialect/dialect-adapter-base.js +4 -1
- package/dist/esm/dialect/dialect-adapter.d.ts +16 -2
- package/dist/esm/dialect/mssql/mssql-adapter.d.ts +12 -7
- package/dist/esm/dialect/mssql/mssql-adapter.js +2 -4
- package/dist/esm/dialect/mssql/mssql-dialect-config.d.ts +83 -55
- package/dist/esm/dialect/mssql/mssql-driver.d.ts +1 -0
- package/dist/esm/dialect/mssql/mssql-driver.js +114 -48
- package/dist/esm/dialect/mysql/mysql-adapter.d.ts +11 -2
- package/dist/esm/dialect/mysql/mysql-dialect-config.d.ts +4 -0
- package/dist/esm/dialect/mysql/mysql-driver.js +3 -0
- package/dist/esm/dialect/postgres/postgres-adapter.d.ts +11 -2
- package/dist/esm/dialect/postgres/postgres-dialect-config.d.ts +10 -3
- package/dist/esm/dialect/postgres/postgres-driver.js +3 -0
- package/dist/esm/dialect/postgres/postgres-introspector.js +5 -1
- package/dist/esm/dialect/sqlite/sqlite-adapter.d.ts +11 -2
- package/dist/esm/driver/database-connection.d.ts +3 -1
- package/dist/esm/driver/dummy-driver.d.ts +13 -12
- package/dist/esm/driver/dummy-driver.js +13 -12
- package/dist/esm/dynamic/dynamic.d.ts +7 -7
- package/dist/esm/dynamic/dynamic.js +7 -7
- package/dist/esm/expression/expression-builder.d.ts +153 -62
- package/dist/esm/expression/expression-wrapper.d.ts +92 -23
- package/dist/esm/expression/expression.d.ts +40 -5
- package/dist/esm/helpers/mssql.d.ts +74 -14
- package/dist/esm/helpers/mssql.js +74 -14
- package/dist/esm/helpers/mysql.d.ts +17 -13
- package/dist/esm/helpers/mysql.js +17 -13
- package/dist/esm/helpers/postgres.d.ts +11 -8
- package/dist/esm/helpers/postgres.js +11 -8
- package/dist/esm/helpers/sqlite.d.ts +41 -16
- package/dist/esm/helpers/sqlite.js +41 -16
- package/dist/esm/index.d.ts +28 -21
- package/dist/esm/index.js +28 -21
- package/dist/esm/kysely.d.ts +100 -42
- package/dist/esm/kysely.js +61 -37
- package/dist/esm/migration/file-migration-provider.d.ts +2 -2
- package/dist/esm/migration/file-migration-provider.js +2 -2
- package/dist/esm/migration/migrator.d.ts +82 -14
- package/dist/esm/migration/migrator.js +82 -14
- package/dist/esm/operation-node/aggregate-function-node.d.ts +4 -0
- package/dist/esm/operation-node/aggregate-function-node.js +9 -0
- 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/column-definition-node.d.ts +1 -0
- package/dist/esm/operation-node/data-type-node.d.ts +2 -2
- package/dist/esm/operation-node/data-type-node.js +15 -1
- package/dist/esm/operation-node/delete-query-node.d.ts +3 -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 +3 -0
- package/dist/esm/operation-node/merge-query-node.d.ts +3 -0
- package/dist/esm/operation-node/on-node.d.ts +1 -1
- package/dist/esm/operation-node/operation-node-transformer.d.ts +11 -3
- package/dist/esm/operation-node/operation-node-transformer.js +26 -3
- package/dist/esm/operation-node/operation-node-visitor.d.ts +2 -0
- package/dist/esm/operation-node/operation-node-visitor.js +1 -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 +15 -6
- package/dist/esm/operation-node/query-node.js +17 -0
- package/dist/esm/operation-node/select-query-node.d.ts +1 -1
- package/dist/esm/operation-node/select-query-node.js +6 -8
- package/dist/esm/operation-node/update-query-node.d.ts +3 -0
- package/dist/esm/operation-node/where-node.d.ts +1 -1
- package/dist/esm/parser/returning-parser.d.ts +4 -3
- package/dist/esm/plugin/camel-case/camel-case-plugin.d.ts +54 -27
- package/dist/esm/plugin/camel-case/camel-case-plugin.js +26 -21
- package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +29 -7
- package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
- package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-transformer.js +2 -2
- package/dist/esm/plugin/immediate-value/immediate-value-plugin.d.ts +28 -6
- package/dist/esm/plugin/kysely-plugin.d.ts +28 -6
- package/dist/esm/plugin/noop-plugin.d.ts +28 -6
- package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.d.ts +80 -9
- package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.js +53 -14
- package/dist/esm/plugin/with-schema/with-schema-plugin.d.ts +28 -6
- package/dist/esm/query-builder/aggregate-function-builder.d.ts +43 -1
- package/dist/esm/query-builder/aggregate-function-builder.js +30 -0
- package/dist/esm/query-builder/delete-query-builder.d.ts +219 -43
- package/dist/esm/query-builder/delete-query-builder.js +95 -31
- package/dist/esm/query-builder/function-module.d.ts +40 -93
- package/dist/esm/query-builder/insert-query-builder.d.ts +326 -67
- package/dist/esm/query-builder/insert-query-builder.js +212 -61
- package/dist/esm/query-builder/insert-result.d.ts +10 -5
- package/dist/esm/query-builder/insert-result.js +10 -5
- package/dist/esm/query-builder/json-path-builder.d.ts +33 -9
- package/dist/esm/query-builder/json-path-builder.js +8 -5
- package/dist/esm/query-builder/merge-query-builder.d.ts +312 -10
- package/dist/esm/query-builder/merge-query-builder.js +98 -7
- package/dist/esm/query-builder/on-conflict-builder.d.ts +53 -20
- package/dist/esm/query-builder/on-conflict-builder.js +41 -16
- package/dist/esm/query-builder/output-interface.d.ts +138 -0
- package/dist/esm/query-builder/output-interface.js +2 -0
- package/dist/esm/query-builder/returning-interface.d.ts +7 -5
- package/dist/esm/query-builder/select-query-builder-expression.d.ts +8 -0
- package/dist/esm/query-builder/select-query-builder.d.ts +370 -73
- package/dist/esm/query-builder/select-query-builder.js +13 -7
- package/dist/esm/query-builder/update-query-builder.d.ts +225 -31
- package/dist/esm/query-builder/update-query-builder.js +96 -17
- 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 +6 -2
- package/dist/esm/query-compiler/default-query-compiler.d.ts +2 -0
- package/dist/esm/query-compiler/default-query-compiler.js +45 -1
- package/dist/esm/query-creator.d.ts +122 -21
- package/dist/esm/query-creator.js +56 -3
- package/dist/esm/raw-builder/raw-builder.d.ts +29 -7
- package/dist/esm/raw-builder/sql.d.ts +31 -12
- package/dist/esm/schema/alter-column-builder.d.ts +17 -3
- package/dist/esm/schema/alter-column-builder.js +20 -3
- package/dist/esm/schema/alter-table-add-index-builder.d.ts +44 -10
- package/dist/esm/schema/alter-table-add-index-builder.js +27 -10
- package/dist/esm/schema/alter-table-builder.js +1 -2
- package/dist/esm/schema/column-definition-builder.d.ts +286 -24
- package/dist/esm/schema/column-definition-builder.js +288 -24
- package/dist/esm/schema/create-table-builder.d.ts +86 -33
- package/dist/esm/schema/create-table-builder.js +86 -33
- package/dist/esm/util/column-type.d.ts +5 -9
- package/dist/esm/util/object-utils.js +18 -5
- package/dist/esm/util/require-all-props.d.ts +4 -2
- package/dist/esm/util/require-all-props.js +4 -2
- package/dist/esm/util/streamable.d.ts +1 -1
- package/dist/esm/util/type-utils.d.ts +4 -2
- package/package.json +30 -24
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.parseTableExpressionOrList = parseTableExpressionOrList;
|
|
4
|
+
exports.parseTableExpression = parseTableExpression;
|
|
5
|
+
exports.parseAliasedTable = parseAliasedTable;
|
|
6
|
+
exports.parseTable = parseTable;
|
|
4
7
|
const object_utils_js_1 = require("../util/object-utils.js");
|
|
5
8
|
const alias_node_js_1 = require("../operation-node/alias-node.js");
|
|
6
9
|
const table_node_js_1 = require("../operation-node/table-node.js");
|
|
@@ -14,7 +17,6 @@ function parseTableExpressionOrList(table) {
|
|
|
14
17
|
return [parseTableExpression(table)];
|
|
15
18
|
}
|
|
16
19
|
}
|
|
17
|
-
exports.parseTableExpressionOrList = parseTableExpressionOrList;
|
|
18
20
|
function parseTableExpression(table) {
|
|
19
21
|
if ((0, object_utils_js_1.isString)(table)) {
|
|
20
22
|
return parseAliasedTable(table);
|
|
@@ -23,7 +25,6 @@ function parseTableExpression(table) {
|
|
|
23
25
|
return (0, expression_parser_js_1.parseAliasedExpression)(table);
|
|
24
26
|
}
|
|
25
27
|
}
|
|
26
|
-
exports.parseTableExpression = parseTableExpression;
|
|
27
28
|
function parseAliasedTable(from) {
|
|
28
29
|
const ALIAS_SEPARATOR = ' as ';
|
|
29
30
|
if (from.includes(ALIAS_SEPARATOR)) {
|
|
@@ -34,7 +35,6 @@ function parseAliasedTable(from) {
|
|
|
34
35
|
return parseTable(from);
|
|
35
36
|
}
|
|
36
37
|
}
|
|
37
|
-
exports.parseAliasedTable = parseAliasedTable;
|
|
38
38
|
function parseTable(from) {
|
|
39
39
|
const SCHEMA_SEPARATOR = '.';
|
|
40
40
|
if (from.includes(SCHEMA_SEPARATOR)) {
|
|
@@ -45,7 +45,6 @@ function parseTable(from) {
|
|
|
45
45
|
return table_node_js_1.TableNode.create(from);
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
|
-
exports.parseTable = parseTable;
|
|
49
48
|
function trim(str) {
|
|
50
49
|
return str.trim();
|
|
51
50
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseTop =
|
|
3
|
+
exports.parseTop = parseTop;
|
|
4
4
|
const top_node_js_1 = require("../operation-node/top-node.js");
|
|
5
5
|
const object_utils_js_1 = require("../util/object-utils.js");
|
|
6
6
|
function parseTop(expression, modifiers) {
|
|
@@ -12,7 +12,6 @@ function parseTop(expression, modifiers) {
|
|
|
12
12
|
}
|
|
13
13
|
return top_node_js_1.TopNode.create(expression, modifiers);
|
|
14
14
|
}
|
|
15
|
-
exports.parseTop = parseTop;
|
|
16
15
|
function isTopModifiers(modifiers) {
|
|
17
16
|
return (modifiers === 'percent' ||
|
|
18
17
|
modifiers === 'with ties' ||
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.parseExists = parseExists;
|
|
4
|
+
exports.parseNotExists = parseNotExists;
|
|
5
|
+
exports.parseUnaryOperation = parseUnaryOperation;
|
|
4
6
|
const operator_node_js_1 = require("../operation-node/operator-node.js");
|
|
5
7
|
const unary_operation_node_js_1 = require("../operation-node/unary-operation-node.js");
|
|
6
8
|
const reference_parser_js_1 = require("./reference-parser.js");
|
|
7
9
|
function parseExists(operand) {
|
|
8
10
|
return parseUnaryOperation('exists', operand);
|
|
9
11
|
}
|
|
10
|
-
exports.parseExists = parseExists;
|
|
11
12
|
function parseNotExists(operand) {
|
|
12
13
|
return parseUnaryOperation('not exists', operand);
|
|
13
14
|
}
|
|
14
|
-
exports.parseNotExists = parseNotExists;
|
|
15
15
|
function parseUnaryOperation(operator, operand) {
|
|
16
16
|
return unary_operation_node_js_1.UnaryOperationNode.create(operator_node_js_1.OperatorNode.create(operator), (0, reference_parser_js_1.parseReferenceExpression)(operand));
|
|
17
17
|
}
|
|
18
|
-
exports.parseUnaryOperation = parseUnaryOperation;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.parseUpdate = parseUpdate;
|
|
4
|
+
exports.parseUpdateObjectExpression = parseUpdateObjectExpression;
|
|
4
5
|
const column_node_js_1 = require("../operation-node/column-node.js");
|
|
5
6
|
const column_update_node_js_1 = require("../operation-node/column-update-node.js");
|
|
6
7
|
const expression_builder_js_1 = require("../expression/expression-builder.js");
|
|
@@ -15,7 +16,6 @@ function parseUpdate(...args) {
|
|
|
15
16
|
}
|
|
16
17
|
return parseUpdateObjectExpression(args[0]);
|
|
17
18
|
}
|
|
18
|
-
exports.parseUpdate = parseUpdate;
|
|
19
19
|
function parseUpdateObjectExpression(update) {
|
|
20
20
|
const updateObj = (0, object_utils_js_1.isFunction)(update) ? update((0, expression_builder_js_1.expressionBuilder)()) : update;
|
|
21
21
|
return Object.entries(updateObj)
|
|
@@ -24,4 +24,3 @@ function parseUpdateObjectExpression(update) {
|
|
|
24
24
|
return column_update_node_js_1.ColumnUpdateNode.create(column_node_js_1.ColumnNode.create(key), (0, value_parser_js_1.parseValueExpression)(value));
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
|
-
exports.parseUpdateObjectExpression = parseUpdateObjectExpression;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.parseValueExpressionOrList = parseValueExpressionOrList;
|
|
4
|
+
exports.parseValueExpression = parseValueExpression;
|
|
5
|
+
exports.isSafeImmediateValue = isSafeImmediateValue;
|
|
6
|
+
exports.parseSafeImmediateValue = parseSafeImmediateValue;
|
|
4
7
|
const primitive_value_list_node_js_1 = require("../operation-node/primitive-value-list-node.js");
|
|
5
8
|
const value_list_node_js_1 = require("../operation-node/value-list-node.js");
|
|
6
9
|
const value_node_js_1 = require("../operation-node/value-node.js");
|
|
@@ -12,25 +15,21 @@ function parseValueExpressionOrList(arg) {
|
|
|
12
15
|
}
|
|
13
16
|
return parseValueExpression(arg);
|
|
14
17
|
}
|
|
15
|
-
exports.parseValueExpressionOrList = parseValueExpressionOrList;
|
|
16
18
|
function parseValueExpression(exp) {
|
|
17
19
|
if ((0, expression_parser_js_1.isExpressionOrFactory)(exp)) {
|
|
18
20
|
return (0, expression_parser_js_1.parseExpression)(exp);
|
|
19
21
|
}
|
|
20
22
|
return value_node_js_1.ValueNode.create(exp);
|
|
21
23
|
}
|
|
22
|
-
exports.parseValueExpression = parseValueExpression;
|
|
23
24
|
function isSafeImmediateValue(value) {
|
|
24
25
|
return (0, object_utils_js_1.isNumber)(value) || (0, object_utils_js_1.isBoolean)(value) || (0, object_utils_js_1.isNull)(value);
|
|
25
26
|
}
|
|
26
|
-
exports.isSafeImmediateValue = isSafeImmediateValue;
|
|
27
27
|
function parseSafeImmediateValue(value) {
|
|
28
28
|
if (!isSafeImmediateValue(value)) {
|
|
29
29
|
throw new Error(`unsafe immediate value ${JSON.stringify(value)}`);
|
|
30
30
|
}
|
|
31
31
|
return value_node_js_1.ValueNode.createImmediate(value);
|
|
32
32
|
}
|
|
33
|
-
exports.parseSafeImmediateValue = parseSafeImmediateValue;
|
|
34
33
|
function parseValueExpressionList(arg) {
|
|
35
34
|
if (arg.some(expression_parser_js_1.isExpressionOrFactory)) {
|
|
36
35
|
return value_list_node_js_1.ValueListNode.create(arg.map((it) => parseValueExpression(it)));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseCommonTableExpression =
|
|
3
|
+
exports.parseCommonTableExpression = parseCommonTableExpression;
|
|
4
4
|
const common_table_expression_name_node_js_1 = require("../operation-node/common-table-expression-name-node.js");
|
|
5
5
|
const parse_utils_js_1 = require("./parse-utils.js");
|
|
6
6
|
const object_utils_js_1 = require("../util/object-utils.js");
|
|
@@ -13,7 +13,6 @@ function parseCommonTableExpression(nameOrBuilderCallback, expression) {
|
|
|
13
13
|
}
|
|
14
14
|
return common_table_expression_node_js_1.CommonTableExpressionNode.create(parseCommonTableExpressionName(nameOrBuilderCallback), expressionNode);
|
|
15
15
|
}
|
|
16
|
-
exports.parseCommonTableExpression = parseCommonTableExpression;
|
|
17
16
|
function cteBuilderFactory(expressionNode) {
|
|
18
17
|
return (name) => {
|
|
19
18
|
return new cte_builder_js_1.CTEBuilder({
|
|
@@ -35,47 +35,48 @@ export interface CamelCasePluginOptions {
|
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
37
|
* A plugin that converts snake_case identifiers in the database into
|
|
38
|
-
* camelCase in the
|
|
38
|
+
* camelCase in the JavaScript side.
|
|
39
39
|
*
|
|
40
40
|
* For example let's assume we have a table called `person_table`
|
|
41
41
|
* with columns `first_name` and `last_name` in the database. When
|
|
42
42
|
* using `CamelCasePlugin` we would setup Kysely like this:
|
|
43
43
|
*
|
|
44
44
|
* ```ts
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
* lastName: string
|
|
48
|
-
* }
|
|
45
|
+
* import * as Sqlite from 'better-sqlite3'
|
|
46
|
+
* import { CamelCasePlugin, Kysely, SqliteDialect } from 'kysely'
|
|
49
47
|
*
|
|
50
|
-
* interface
|
|
51
|
-
*
|
|
48
|
+
* interface CamelCasedDatabase {
|
|
49
|
+
* userMetadata: {
|
|
50
|
+
* firstName: string
|
|
51
|
+
* lastName: string
|
|
52
|
+
* }
|
|
52
53
|
* }
|
|
53
54
|
*
|
|
54
|
-
* const db = new Kysely<
|
|
55
|
-
* dialect: new
|
|
56
|
-
* database: '
|
|
57
|
-
* host: 'localhost',
|
|
55
|
+
* const db = new Kysely<CamelCasedDatabase>({
|
|
56
|
+
* dialect: new SqliteDialect({
|
|
57
|
+
* database: new Sqlite(':memory:'),
|
|
58
58
|
* }),
|
|
59
|
-
* plugins: [
|
|
60
|
-
* new CamelCasePlugin()
|
|
61
|
-
* ]
|
|
59
|
+
* plugins: [new CamelCasePlugin()],
|
|
62
60
|
* })
|
|
63
61
|
*
|
|
64
|
-
* const person = await db.selectFrom('
|
|
62
|
+
* const person = await db.selectFrom('userMetadata')
|
|
65
63
|
* .where('firstName', '=', 'Arnold')
|
|
66
64
|
* .select(['firstName', 'lastName'])
|
|
67
65
|
* .executeTakeFirst()
|
|
68
66
|
*
|
|
69
|
-
* // generated sql:
|
|
70
|
-
* // select first_name, last_name from person_table where first_name = $1
|
|
71
|
-
*
|
|
72
67
|
* if (person) {
|
|
73
68
|
* console.log(person.firstName)
|
|
74
69
|
* }
|
|
75
70
|
* ```
|
|
76
71
|
*
|
|
72
|
+
* The generated SQL (SQLite):
|
|
73
|
+
*
|
|
74
|
+
* ```sql
|
|
75
|
+
* select "first_name", "last_name" from "user_metadata" where "first_name" = ?
|
|
76
|
+
* ```
|
|
77
|
+
*
|
|
77
78
|
* As you can see from the example, __everything__ needs to be defined
|
|
78
|
-
* in camelCase in the
|
|
79
|
+
* in camelCase in the TypeScript code: table names, columns, schemas,
|
|
79
80
|
* __everything__. When using the `CamelCasePlugin` Kysely works as if
|
|
80
81
|
* the database was defined in camelCase.
|
|
81
82
|
*
|
|
@@ -88,11 +89,15 @@ export interface CamelCasePluginOptions {
|
|
|
88
89
|
* ```ts
|
|
89
90
|
* class MyCamelCasePlugin extends CamelCasePlugin {
|
|
90
91
|
* protected override snakeCase(str: string): string {
|
|
91
|
-
*
|
|
92
|
+
* // ...
|
|
93
|
+
*
|
|
94
|
+
* return str
|
|
92
95
|
* }
|
|
93
96
|
*
|
|
94
97
|
* protected override camelCase(str: string): string {
|
|
95
|
-
*
|
|
98
|
+
* // ...
|
|
99
|
+
*
|
|
100
|
+
* return str
|
|
96
101
|
* }
|
|
97
102
|
* }
|
|
98
103
|
* ```
|
|
@@ -111,19 +116,41 @@ export declare class CamelCasePlugin implements KyselyPlugin {
|
|
|
111
116
|
* can use a `WeakMap` with {@link PluginTransformQueryArgs.queryId | args.queryId} as the key:
|
|
112
117
|
*
|
|
113
118
|
* ```ts
|
|
114
|
-
*
|
|
115
|
-
*
|
|
119
|
+
* import type {
|
|
120
|
+
* KyselyPlugin,
|
|
121
|
+
* QueryResult,
|
|
122
|
+
* RootOperationNode,
|
|
123
|
+
* UnknownRow
|
|
124
|
+
* } from 'kysely'
|
|
125
|
+
*
|
|
126
|
+
* interface MyData {
|
|
127
|
+
* // ...
|
|
128
|
+
* }
|
|
129
|
+
* const data = new WeakMap<any, MyData>()
|
|
116
130
|
*
|
|
131
|
+
* const plugin = {
|
|
117
132
|
* transformQuery(args: PluginTransformQueryArgs): RootOperationNode {
|
|
118
|
-
*
|
|
133
|
+
* const something: MyData = {}
|
|
134
|
+
*
|
|
135
|
+
* // ...
|
|
136
|
+
*
|
|
137
|
+
* data.set(args.queryId, something)
|
|
138
|
+
*
|
|
139
|
+
* // ...
|
|
140
|
+
*
|
|
119
141
|
* return args.node
|
|
120
142
|
* },
|
|
121
143
|
*
|
|
122
|
-
* transformResult(args: PluginTransformResultArgs): QueryResult<UnknownRow
|
|
123
|
-
*
|
|
144
|
+
* async transformResult(args: PluginTransformResultArgs): Promise<QueryResult<UnknownRow>> {
|
|
145
|
+
* // ...
|
|
146
|
+
*
|
|
147
|
+
* const something = data.get(args.queryId)
|
|
148
|
+
*
|
|
149
|
+
* // ...
|
|
150
|
+
*
|
|
124
151
|
* return args.result
|
|
125
152
|
* }
|
|
126
|
-
* }
|
|
153
|
+
* } satisfies KyselyPlugin
|
|
127
154
|
* ```
|
|
128
155
|
*
|
|
129
156
|
* You should use a `WeakMap` instead of a `Map` or some other strong references because `transformQuery`
|
|
@@ -6,47 +6,48 @@ const camel_case_transformer_js_1 = require("./camel-case-transformer.js");
|
|
|
6
6
|
const camel_case_js_1 = require("./camel-case.js");
|
|
7
7
|
/**
|
|
8
8
|
* A plugin that converts snake_case identifiers in the database into
|
|
9
|
-
* camelCase in the
|
|
9
|
+
* camelCase in the JavaScript side.
|
|
10
10
|
*
|
|
11
11
|
* For example let's assume we have a table called `person_table`
|
|
12
12
|
* with columns `first_name` and `last_name` in the database. When
|
|
13
13
|
* using `CamelCasePlugin` we would setup Kysely like this:
|
|
14
14
|
*
|
|
15
15
|
* ```ts
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* lastName: string
|
|
19
|
-
* }
|
|
16
|
+
* import * as Sqlite from 'better-sqlite3'
|
|
17
|
+
* import { CamelCasePlugin, Kysely, SqliteDialect } from 'kysely'
|
|
20
18
|
*
|
|
21
|
-
* interface
|
|
22
|
-
*
|
|
19
|
+
* interface CamelCasedDatabase {
|
|
20
|
+
* userMetadata: {
|
|
21
|
+
* firstName: string
|
|
22
|
+
* lastName: string
|
|
23
|
+
* }
|
|
23
24
|
* }
|
|
24
25
|
*
|
|
25
|
-
* const db = new Kysely<
|
|
26
|
-
* dialect: new
|
|
27
|
-
* database: '
|
|
28
|
-
* host: 'localhost',
|
|
26
|
+
* const db = new Kysely<CamelCasedDatabase>({
|
|
27
|
+
* dialect: new SqliteDialect({
|
|
28
|
+
* database: new Sqlite(':memory:'),
|
|
29
29
|
* }),
|
|
30
|
-
* plugins: [
|
|
31
|
-
* new CamelCasePlugin()
|
|
32
|
-
* ]
|
|
30
|
+
* plugins: [new CamelCasePlugin()],
|
|
33
31
|
* })
|
|
34
32
|
*
|
|
35
|
-
* const person = await db.selectFrom('
|
|
33
|
+
* const person = await db.selectFrom('userMetadata')
|
|
36
34
|
* .where('firstName', '=', 'Arnold')
|
|
37
35
|
* .select(['firstName', 'lastName'])
|
|
38
36
|
* .executeTakeFirst()
|
|
39
37
|
*
|
|
40
|
-
* // generated sql:
|
|
41
|
-
* // select first_name, last_name from person_table where first_name = $1
|
|
42
|
-
*
|
|
43
38
|
* if (person) {
|
|
44
39
|
* console.log(person.firstName)
|
|
45
40
|
* }
|
|
46
41
|
* ```
|
|
47
42
|
*
|
|
43
|
+
* The generated SQL (SQLite):
|
|
44
|
+
*
|
|
45
|
+
* ```sql
|
|
46
|
+
* select "first_name", "last_name" from "user_metadata" where "first_name" = ?
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
48
49
|
* As you can see from the example, __everything__ needs to be defined
|
|
49
|
-
* in camelCase in the
|
|
50
|
+
* in camelCase in the TypeScript code: table names, columns, schemas,
|
|
50
51
|
* __everything__. When using the `CamelCasePlugin` Kysely works as if
|
|
51
52
|
* the database was defined in camelCase.
|
|
52
53
|
*
|
|
@@ -59,11 +60,15 @@ const camel_case_js_1 = require("./camel-case.js");
|
|
|
59
60
|
* ```ts
|
|
60
61
|
* class MyCamelCasePlugin extends CamelCasePlugin {
|
|
61
62
|
* protected override snakeCase(str: string): string {
|
|
62
|
-
*
|
|
63
|
+
* // ...
|
|
64
|
+
*
|
|
65
|
+
* return str
|
|
63
66
|
* }
|
|
64
67
|
*
|
|
65
68
|
* protected override camelCase(str: string): string {
|
|
66
|
-
*
|
|
69
|
+
* // ...
|
|
70
|
+
*
|
|
71
|
+
* return str
|
|
67
72
|
* }
|
|
68
73
|
* }
|
|
69
74
|
* ```
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.createSnakeCaseMapper = createSnakeCaseMapper;
|
|
4
|
+
exports.createCamelCaseMapper = createCamelCaseMapper;
|
|
4
5
|
/**
|
|
5
6
|
* Creates a function that transforms camel case strings to snake case.
|
|
6
7
|
*/
|
|
@@ -52,7 +53,6 @@ function createSnakeCaseMapper({ upperCase = false, underscoreBeforeDigits = fal
|
|
|
52
53
|
}
|
|
53
54
|
});
|
|
54
55
|
}
|
|
55
|
-
exports.createSnakeCaseMapper = createSnakeCaseMapper;
|
|
56
56
|
/**
|
|
57
57
|
* Creates a function that transforms snake case strings to camel case.
|
|
58
58
|
*/
|
|
@@ -83,7 +83,6 @@ function createCamelCaseMapper({ upperCase = false, } = {}) {
|
|
|
83
83
|
return out;
|
|
84
84
|
});
|
|
85
85
|
}
|
|
86
|
-
exports.createCamelCaseMapper = createCamelCaseMapper;
|
|
87
86
|
function isAllUpperCaseSnakeCase(str) {
|
|
88
87
|
for (let i = 1, l = str.length; i < l; ++i) {
|
|
89
88
|
const char = str[i];
|
|
@@ -5,7 +5,7 @@ import { KyselyPlugin, PluginTransformQueryArgs, PluginTransformResultArgs } fro
|
|
|
5
5
|
/**
|
|
6
6
|
* Plugin that removes duplicate joins from queries.
|
|
7
7
|
*
|
|
8
|
-
* See [this recipe](https://github.com/
|
|
8
|
+
* See [this recipe](https://github.com/kysely-org/kysely/blob/master/site/docs/recipes/0008-deduplicate-joins.md)
|
|
9
9
|
*/
|
|
10
10
|
export declare class DeduplicateJoinsPlugin implements KyselyPlugin {
|
|
11
11
|
#private;
|
|
@@ -19,19 +19,41 @@ export declare class DeduplicateJoinsPlugin implements KyselyPlugin {
|
|
|
19
19
|
* can use a `WeakMap` with {@link PluginTransformQueryArgs.queryId | args.queryId} as the key:
|
|
20
20
|
*
|
|
21
21
|
* ```ts
|
|
22
|
-
*
|
|
23
|
-
*
|
|
22
|
+
* import type {
|
|
23
|
+
* KyselyPlugin,
|
|
24
|
+
* QueryResult,
|
|
25
|
+
* RootOperationNode,
|
|
26
|
+
* UnknownRow
|
|
27
|
+
* } from 'kysely'
|
|
28
|
+
*
|
|
29
|
+
* interface MyData {
|
|
30
|
+
* // ...
|
|
31
|
+
* }
|
|
32
|
+
* const data = new WeakMap<any, MyData>()
|
|
24
33
|
*
|
|
34
|
+
* const plugin = {
|
|
25
35
|
* transformQuery(args: PluginTransformQueryArgs): RootOperationNode {
|
|
26
|
-
*
|
|
36
|
+
* const something: MyData = {}
|
|
37
|
+
*
|
|
38
|
+
* // ...
|
|
39
|
+
*
|
|
40
|
+
* data.set(args.queryId, something)
|
|
41
|
+
*
|
|
42
|
+
* // ...
|
|
43
|
+
*
|
|
27
44
|
* return args.node
|
|
28
45
|
* },
|
|
29
46
|
*
|
|
30
|
-
* transformResult(args: PluginTransformResultArgs): QueryResult<UnknownRow
|
|
31
|
-
*
|
|
47
|
+
* async transformResult(args: PluginTransformResultArgs): Promise<QueryResult<UnknownRow>> {
|
|
48
|
+
* // ...
|
|
49
|
+
*
|
|
50
|
+
* const something = data.get(args.queryId)
|
|
51
|
+
*
|
|
52
|
+
* // ...
|
|
53
|
+
*
|
|
32
54
|
* return args.result
|
|
33
55
|
* }
|
|
34
|
-
* }
|
|
56
|
+
* } satisfies KyselyPlugin
|
|
35
57
|
* ```
|
|
36
58
|
*
|
|
37
59
|
* You should use a `WeakMap` instead of a `Map` or some other strong references because `transformQuery`
|
|
@@ -5,7 +5,7 @@ const deduplicate_joins_transformer_js_1 = require("./deduplicate-joins-transfor
|
|
|
5
5
|
/**
|
|
6
6
|
* Plugin that removes duplicate joins from queries.
|
|
7
7
|
*
|
|
8
|
-
* See [this recipe](https://github.com/
|
|
8
|
+
* See [this recipe](https://github.com/kysely-org/kysely/blob/master/site/docs/recipes/0008-deduplicate-joins.md)
|
|
9
9
|
*/
|
|
10
10
|
class DeduplicateJoinsPlugin {
|
|
11
11
|
#transformer = new deduplicate_joins_transformer_js_1.DeduplicateJoinsTransformer();
|
|
@@ -26,8 +26,8 @@ class DeduplicateJoinsTransformer extends operation_node_transformer_js_1.Operat
|
|
|
26
26
|
const out = [];
|
|
27
27
|
for (let i = 0; i < joins.length; ++i) {
|
|
28
28
|
let foundDuplicate = false;
|
|
29
|
-
for (let j =
|
|
30
|
-
if ((0, object_utils_js_1.compare)(joins[i],
|
|
29
|
+
for (let j = 0; j < out.length; ++j) {
|
|
30
|
+
if ((0, object_utils_js_1.compare)(joins[i], out[j])) {
|
|
31
31
|
foundDuplicate = true;
|
|
32
32
|
break;
|
|
33
33
|
}
|
|
@@ -22,19 +22,41 @@ export declare class ImmediateValuePlugin implements KyselyPlugin {
|
|
|
22
22
|
* can use a `WeakMap` with {@link PluginTransformQueryArgs.queryId | args.queryId} as the key:
|
|
23
23
|
*
|
|
24
24
|
* ```ts
|
|
25
|
-
*
|
|
26
|
-
*
|
|
25
|
+
* import type {
|
|
26
|
+
* KyselyPlugin,
|
|
27
|
+
* QueryResult,
|
|
28
|
+
* RootOperationNode,
|
|
29
|
+
* UnknownRow
|
|
30
|
+
* } from 'kysely'
|
|
31
|
+
*
|
|
32
|
+
* interface MyData {
|
|
33
|
+
* // ...
|
|
34
|
+
* }
|
|
35
|
+
* const data = new WeakMap<any, MyData>()
|
|
27
36
|
*
|
|
37
|
+
* const plugin = {
|
|
28
38
|
* transformQuery(args: PluginTransformQueryArgs): RootOperationNode {
|
|
29
|
-
*
|
|
39
|
+
* const something: MyData = {}
|
|
40
|
+
*
|
|
41
|
+
* // ...
|
|
42
|
+
*
|
|
43
|
+
* data.set(args.queryId, something)
|
|
44
|
+
*
|
|
45
|
+
* // ...
|
|
46
|
+
*
|
|
30
47
|
* return args.node
|
|
31
48
|
* },
|
|
32
49
|
*
|
|
33
|
-
* transformResult(args: PluginTransformResultArgs): QueryResult<UnknownRow
|
|
34
|
-
*
|
|
50
|
+
* async transformResult(args: PluginTransformResultArgs): Promise<QueryResult<UnknownRow>> {
|
|
51
|
+
* // ...
|
|
52
|
+
*
|
|
53
|
+
* const something = data.get(args.queryId)
|
|
54
|
+
*
|
|
55
|
+
* // ...
|
|
56
|
+
*
|
|
35
57
|
* return args.result
|
|
36
58
|
* }
|
|
37
|
-
* }
|
|
59
|
+
* } satisfies KyselyPlugin
|
|
38
60
|
* ```
|
|
39
61
|
*
|
|
40
62
|
* You should use a `WeakMap` instead of a `Map` or some other strong references because `transformQuery`
|
|
@@ -13,19 +13,41 @@ export interface KyselyPlugin {
|
|
|
13
13
|
* can use a `WeakMap` with {@link PluginTransformQueryArgs.queryId | args.queryId} as the key:
|
|
14
14
|
*
|
|
15
15
|
* ```ts
|
|
16
|
-
*
|
|
17
|
-
*
|
|
16
|
+
* import type {
|
|
17
|
+
* KyselyPlugin,
|
|
18
|
+
* QueryResult,
|
|
19
|
+
* RootOperationNode,
|
|
20
|
+
* UnknownRow
|
|
21
|
+
* } from 'kysely'
|
|
22
|
+
*
|
|
23
|
+
* interface MyData {
|
|
24
|
+
* // ...
|
|
25
|
+
* }
|
|
26
|
+
* const data = new WeakMap<any, MyData>()
|
|
18
27
|
*
|
|
28
|
+
* const plugin = {
|
|
19
29
|
* transformQuery(args: PluginTransformQueryArgs): RootOperationNode {
|
|
20
|
-
*
|
|
30
|
+
* const something: MyData = {}
|
|
31
|
+
*
|
|
32
|
+
* // ...
|
|
33
|
+
*
|
|
34
|
+
* data.set(args.queryId, something)
|
|
35
|
+
*
|
|
36
|
+
* // ...
|
|
37
|
+
*
|
|
21
38
|
* return args.node
|
|
22
39
|
* },
|
|
23
40
|
*
|
|
24
|
-
* transformResult(args: PluginTransformResultArgs): QueryResult<UnknownRow
|
|
25
|
-
*
|
|
41
|
+
* async transformResult(args: PluginTransformResultArgs): Promise<QueryResult<UnknownRow>> {
|
|
42
|
+
* // ...
|
|
43
|
+
*
|
|
44
|
+
* const something = data.get(args.queryId)
|
|
45
|
+
*
|
|
46
|
+
* // ...
|
|
47
|
+
*
|
|
26
48
|
* return args.result
|
|
27
49
|
* }
|
|
28
|
-
* }
|
|
50
|
+
* } satisfies KyselyPlugin
|
|
29
51
|
* ```
|
|
30
52
|
*
|
|
31
53
|
* You should use a `WeakMap` instead of a `Map` or some other strong references because `transformQuery`
|
|
@@ -13,19 +13,41 @@ export declare class NoopPlugin implements KyselyPlugin {
|
|
|
13
13
|
* can use a `WeakMap` with {@link PluginTransformQueryArgs.queryId | args.queryId} as the key:
|
|
14
14
|
*
|
|
15
15
|
* ```ts
|
|
16
|
-
*
|
|
17
|
-
*
|
|
16
|
+
* import type {
|
|
17
|
+
* KyselyPlugin,
|
|
18
|
+
* QueryResult,
|
|
19
|
+
* RootOperationNode,
|
|
20
|
+
* UnknownRow
|
|
21
|
+
* } from 'kysely'
|
|
22
|
+
*
|
|
23
|
+
* interface MyData {
|
|
24
|
+
* // ...
|
|
25
|
+
* }
|
|
26
|
+
* const data = new WeakMap<any, MyData>()
|
|
18
27
|
*
|
|
28
|
+
* const plugin = {
|
|
19
29
|
* transformQuery(args: PluginTransformQueryArgs): RootOperationNode {
|
|
20
|
-
*
|
|
30
|
+
* const something: MyData = {}
|
|
31
|
+
*
|
|
32
|
+
* // ...
|
|
33
|
+
*
|
|
34
|
+
* data.set(args.queryId, something)
|
|
35
|
+
*
|
|
36
|
+
* // ...
|
|
37
|
+
*
|
|
21
38
|
* return args.node
|
|
22
39
|
* },
|
|
23
40
|
*
|
|
24
|
-
* transformResult(args: PluginTransformResultArgs): QueryResult<UnknownRow
|
|
25
|
-
*
|
|
41
|
+
* async transformResult(args: PluginTransformResultArgs): Promise<QueryResult<UnknownRow>> {
|
|
42
|
+
* // ...
|
|
43
|
+
*
|
|
44
|
+
* const something = data.get(args.queryId)
|
|
45
|
+
*
|
|
46
|
+
* // ...
|
|
47
|
+
*
|
|
26
48
|
* return args.result
|
|
27
49
|
* }
|
|
28
|
-
* }
|
|
50
|
+
* } satisfies KyselyPlugin
|
|
29
51
|
* ```
|
|
30
52
|
*
|
|
31
53
|
* You should use a `WeakMap` instead of a `Map` or some other strong references because `transformQuery`
|