kysely 0.7.2 → 0.7.6
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 +9 -5
- package/dist/cjs/dialect/dialect-adapter.d.ts +11 -9
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/kysely.d.ts +2 -2
- package/dist/cjs/kysely.js +9 -7
- package/dist/cjs/operation-node/create-table-node.d.ts +2 -1
- package/dist/cjs/operation-node/create-table-node.js +1 -5
- package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +12 -1
- package/dist/cjs/operation-node/foreign-key-constraint-node.js +6 -0
- package/dist/cjs/operation-node/join-node.d.ts +1 -0
- package/dist/cjs/operation-node/join-node.js +8 -0
- package/dist/cjs/operation-node/operation-node-transformer.js +3 -0
- package/dist/cjs/operation-node/references-node.d.ts +5 -3
- package/dist/cjs/operation-node/references-node.js +6 -0
- package/dist/cjs/operation-node/table-node.js +2 -2
- package/dist/cjs/parser/data-type-parser.d.ts +5 -0
- package/dist/cjs/parser/data-type-parser.js +11 -0
- package/dist/cjs/parser/default-value-parser.d.ts +6 -0
- package/dist/cjs/parser/default-value-parser.js +11 -0
- package/dist/cjs/parser/filter-parser.d.ts +2 -2
- package/dist/cjs/parser/filter-parser.js +34 -36
- package/dist/cjs/parser/join-parser.d.ts +1 -1
- package/dist/cjs/parser/join-parser.js +9 -11
- package/dist/cjs/parser/parse-context.d.ts +33 -6
- package/dist/cjs/parser/parse-context.js +40 -33
- package/dist/cjs/parser/reference-parser.d.ts +2 -2
- package/dist/cjs/parser/reference-parser.js +16 -12
- package/dist/cjs/parser/select-parser.d.ts +1 -2
- package/dist/cjs/parser/select-parser.js +4 -5
- package/dist/cjs/parser/table-parser.js +11 -6
- package/dist/cjs/parser/update-set-parser.js +1 -1
- package/dist/cjs/parser/value-parser.js +1 -1
- package/dist/cjs/query-builder/{sub-query-builder.d.ts → expression-builder.d.ts} +6 -6
- package/dist/cjs/query-builder/{sub-query-builder.js → expression-builder.js} +6 -10
- package/dist/cjs/query-builder/join-builder.d.ts +2 -2
- package/dist/cjs/query-builder/join-builder.js +8 -12
- package/dist/cjs/query-builder/query-builder.d.ts +2 -2
- package/dist/cjs/query-builder/query-builder.js +34 -36
- package/dist/cjs/query-builder/type-utils.d.ts +5 -5
- package/dist/cjs/query-compiler/default-query-compiler.js +13 -1
- package/dist/cjs/query-creator.d.ts +2 -2
- package/dist/cjs/query-creator.js +8 -12
- package/dist/cjs/schema/alter-table-builder.d.ts +26 -8
- package/dist/cjs/schema/alter-table-builder.js +75 -7
- package/dist/cjs/schema/column-definition-builder.d.ts +10 -4
- package/dist/cjs/schema/column-definition-builder.js +11 -6
- package/dist/cjs/schema/create-index-builder.d.ts +5 -5
- package/dist/cjs/schema/create-index-builder.js +19 -28
- package/dist/cjs/schema/create-schema-builder.d.ts +5 -5
- package/dist/cjs/schema/create-schema-builder.js +9 -13
- package/dist/cjs/schema/create-table-builder.d.ts +22 -10
- package/dist/cjs/schema/create-table-builder.js +41 -34
- package/dist/cjs/schema/drop-index-builder.d.ts +5 -5
- package/dist/cjs/schema/drop-index-builder.js +11 -16
- package/dist/cjs/schema/drop-schema-builder.d.ts +5 -5
- package/dist/cjs/schema/drop-schema-builder.js +9 -13
- package/dist/cjs/schema/drop-table-builder.d.ts +5 -5
- package/dist/cjs/schema/drop-table-builder.js +9 -13
- package/dist/cjs/schema/foreign-key-constraint-builder.d.ts +14 -0
- package/dist/cjs/schema/foreign-key-constraint-builder.js +26 -0
- package/dist/esm/dialect/dialect-adapter.d.ts +11 -9
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/kysely.d.ts +2 -2
- package/dist/esm/kysely.js +9 -7
- package/dist/esm/operation-node/create-table-node.d.ts +2 -1
- package/dist/esm/operation-node/create-table-node.js +1 -5
- package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +12 -1
- package/dist/esm/operation-node/foreign-key-constraint-node.js +6 -0
- package/dist/esm/operation-node/join-node.d.ts +1 -0
- package/dist/esm/operation-node/join-node.js +8 -0
- package/dist/esm/operation-node/operation-node-transformer.js +3 -0
- package/dist/esm/operation-node/references-node.d.ts +5 -3
- package/dist/esm/operation-node/references-node.js +6 -0
- package/dist/esm/operation-node/table-node.js +2 -2
- package/dist/esm/parser/data-type-parser.d.ts +5 -0
- package/dist/esm/parser/data-type-parser.js +7 -0
- package/dist/esm/parser/default-value-parser.d.ts +6 -0
- package/dist/esm/parser/default-value-parser.js +7 -0
- package/dist/esm/parser/filter-parser.d.ts +2 -2
- package/dist/esm/parser/filter-parser.js +31 -33
- package/dist/esm/parser/join-parser.d.ts +1 -1
- package/dist/esm/parser/join-parser.js +7 -9
- package/dist/esm/parser/parse-context.d.ts +33 -6
- package/dist/esm/parser/parse-context.js +38 -31
- package/dist/esm/parser/reference-parser.d.ts +2 -2
- package/dist/esm/parser/reference-parser.js +16 -12
- package/dist/esm/parser/select-parser.d.ts +1 -2
- package/dist/esm/parser/select-parser.js +3 -3
- package/dist/esm/parser/table-parser.js +11 -6
- package/dist/esm/parser/update-set-parser.js +1 -1
- package/dist/esm/parser/value-parser.js +1 -1
- package/dist/esm/query-builder/{sub-query-builder.d.ts → expression-builder.d.ts} +6 -6
- package/dist/esm/query-builder/{sub-query-builder.js → expression-builder.js} +4 -8
- package/dist/esm/query-builder/join-builder.d.ts +2 -2
- package/dist/esm/query-builder/join-builder.js +9 -13
- package/dist/esm/query-builder/query-builder.d.ts +2 -2
- package/dist/esm/query-builder/query-builder.js +37 -39
- package/dist/esm/query-builder/type-utils.d.ts +5 -5
- package/dist/esm/query-compiler/default-query-compiler.js +14 -2
- package/dist/esm/query-creator.d.ts +2 -2
- package/dist/esm/query-creator.js +8 -12
- package/dist/esm/schema/alter-table-builder.d.ts +26 -8
- package/dist/esm/schema/alter-table-builder.js +73 -6
- package/dist/esm/schema/column-definition-builder.d.ts +10 -4
- package/dist/esm/schema/column-definition-builder.js +12 -7
- package/dist/esm/schema/create-index-builder.d.ts +5 -5
- package/dist/esm/schema/create-index-builder.js +19 -28
- package/dist/esm/schema/create-schema-builder.d.ts +5 -5
- package/dist/esm/schema/create-schema-builder.js +9 -13
- package/dist/esm/schema/create-table-builder.d.ts +22 -10
- package/dist/esm/schema/create-table-builder.js +41 -34
- package/dist/esm/schema/drop-index-builder.d.ts +5 -5
- package/dist/esm/schema/drop-index-builder.js +11 -16
- package/dist/esm/schema/drop-schema-builder.d.ts +5 -5
- package/dist/esm/schema/drop-schema-builder.js +9 -13
- package/dist/esm/schema/drop-table-builder.d.ts +5 -5
- package/dist/esm/schema/drop-table-builder.js +9 -13
- package/dist/esm/schema/foreign-key-constraint-builder.d.ts +14 -0
- package/dist/esm/schema/foreign-key-constraint-builder.js +22 -0
- package/package.json +1 -1
|
@@ -1,43 +1,50 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.DefaultParseContext = void 0;
|
|
4
4
|
const join_node_js_1 = require("../operation-node/join-node.js");
|
|
5
5
|
const select_query_node_js_1 = require("../operation-node/select-query-node.js");
|
|
6
6
|
const join_builder_js_1 = require("../query-builder/join-builder.js");
|
|
7
7
|
const query_builder_js_1 = require("../query-builder/query-builder.js");
|
|
8
|
-
const
|
|
8
|
+
const expression_builder_js_1 = require("../query-builder/expression-builder.js");
|
|
9
9
|
const query_creator_js_1 = require("../query-creator.js");
|
|
10
10
|
const noop_query_executor_js_1 = require("../query-executor/noop-query-executor.js");
|
|
11
|
-
const object_utils_js_1 = require("../util/object-utils.js");
|
|
12
11
|
const query_id_js_1 = require("../util/query-id.js");
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
12
|
+
const table_parser_js_1 = require("./table-parser.js");
|
|
13
|
+
class DefaultParseContext {
|
|
14
|
+
#adapter;
|
|
15
|
+
#noopExecutor;
|
|
16
|
+
constructor(adapter) {
|
|
17
|
+
this.#adapter = adapter;
|
|
18
|
+
this.#noopExecutor = new noop_query_executor_js_1.NoopQueryExecutor();
|
|
19
|
+
}
|
|
20
|
+
get adapter() {
|
|
21
|
+
return this.#adapter;
|
|
22
|
+
}
|
|
23
|
+
createSelectQueryBuilder(tables) {
|
|
24
|
+
return new query_builder_js_1.QueryBuilder({
|
|
25
|
+
queryId: (0, query_id_js_1.createQueryId)(),
|
|
26
|
+
executor: this.#noopExecutor,
|
|
27
|
+
parseContext: this,
|
|
28
|
+
queryNode: select_query_node_js_1.SelectQueryNode.create((0, table_parser_js_1.parseTableExpressionOrList)(this, tables)),
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
createJoinBuilder(joinType, table) {
|
|
32
|
+
return new join_builder_js_1.JoinBuilder({
|
|
33
|
+
joinNode: join_node_js_1.JoinNode.create(joinType, (0, table_parser_js_1.parseTableExpression)(this, table)),
|
|
34
|
+
parseContext: this,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
createExpressionBuilder() {
|
|
38
|
+
return new expression_builder_js_1.ExpressionBuilder({
|
|
39
|
+
executor: this.#noopExecutor,
|
|
40
|
+
parseContext: this,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
createQueryCreator() {
|
|
44
|
+
return new query_creator_js_1.QueryCreator({
|
|
45
|
+
executor: this.#noopExecutor,
|
|
46
|
+
parseContext: this,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
42
49
|
}
|
|
43
|
-
exports.
|
|
50
|
+
exports.DefaultParseContext = DefaultParseContext;
|
|
@@ -14,7 +14,7 @@ export declare type ExtractTypeFromReferenceExpression<DB, TB extends keyof DB,
|
|
|
14
14
|
declare type ExtractTypeFromStringReference<DB, TB extends keyof DB, S extends string, R = RowType<DB, TB>> = S extends `${infer SC}.${infer T}.${infer C}` ? `${SC}.${T}` extends TB ? C extends keyof DB[`${SC}.${T}`] ? DB[`${SC}.${T}`][C] : never : never : S extends `${infer T}.${infer C}` ? T extends TB ? C extends keyof DB[T] ? DB[T][C] : never : never : S extends keyof R ? R[S] : PrimitiveValue;
|
|
15
15
|
export declare function parseReferenceExpressionOrList(ctx: ParseContext, arg: ReferenceExpressionOrList<any, any>): ReferenceExpressionNode[];
|
|
16
16
|
export declare function parseReferenceExpression(ctx: ParseContext, arg: ReferenceExpression<any, any>): ReferenceExpressionNode;
|
|
17
|
-
export declare function parseStringReference(
|
|
18
|
-
export declare function parseAliasedStringReference(
|
|
17
|
+
export declare function parseStringReference(ref: string): ColumnNode | ReferenceNode;
|
|
18
|
+
export declare function parseAliasedStringReference(ref: string): ColumnNode | ReferenceNode | AliasNode;
|
|
19
19
|
export declare function parseColumnName(column: AnyColumn<any, any>): ColumnNode;
|
|
20
20
|
export {};
|
|
@@ -28,7 +28,7 @@ function parseReferenceExpression(ctx, arg) {
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
else if ((0, object_utils_js_1.isFunction)(arg)) {
|
|
31
|
-
const node = arg(ctx.
|
|
31
|
+
const node = arg(ctx.createExpressionBuilder()).toOperationNode();
|
|
32
32
|
if (!query_node_js_1.QueryNode.isMutating(node)) {
|
|
33
33
|
return node;
|
|
34
34
|
}
|
|
@@ -36,9 +36,10 @@ function parseReferenceExpression(ctx, arg) {
|
|
|
36
36
|
throw new Error(`invalid reference expression ${JSON.stringify(arg)}`);
|
|
37
37
|
}
|
|
38
38
|
exports.parseReferenceExpression = parseReferenceExpression;
|
|
39
|
-
function parseStringReference(
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
function parseStringReference(ref) {
|
|
40
|
+
const COLUMN_SEPARATOR = '.';
|
|
41
|
+
if (ref.includes(COLUMN_SEPARATOR)) {
|
|
42
|
+
const parts = ref.split(COLUMN_SEPARATOR).map(trim);
|
|
42
43
|
if (parts.length === 3) {
|
|
43
44
|
return parseStringReferenceWithTableAndSchema(parts);
|
|
44
45
|
}
|
|
@@ -46,22 +47,22 @@ function parseStringReference(str) {
|
|
|
46
47
|
return parseStringReferenceWithTable(parts);
|
|
47
48
|
}
|
|
48
49
|
else {
|
|
49
|
-
throw new Error(`invalid column reference ${
|
|
50
|
+
throw new Error(`invalid column reference ${ref}`);
|
|
50
51
|
}
|
|
51
52
|
}
|
|
52
53
|
else {
|
|
53
|
-
return column_node_js_1.ColumnNode.create(
|
|
54
|
+
return column_node_js_1.ColumnNode.create(ref);
|
|
54
55
|
}
|
|
55
56
|
}
|
|
56
57
|
exports.parseStringReference = parseStringReference;
|
|
57
|
-
function parseAliasedStringReference(
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
const
|
|
61
|
-
return alias_node_js_1.AliasNode.create(
|
|
58
|
+
function parseAliasedStringReference(ref) {
|
|
59
|
+
const ALIAS_SEPARATOR = ' as ';
|
|
60
|
+
if (ref.includes(ALIAS_SEPARATOR)) {
|
|
61
|
+
const [columnRef, alias] = ref.split(ALIAS_SEPARATOR).map(trim);
|
|
62
|
+
return alias_node_js_1.AliasNode.create(parseStringReference(columnRef), alias);
|
|
62
63
|
}
|
|
63
64
|
else {
|
|
64
|
-
return parseStringReference(
|
|
65
|
+
return parseStringReference(ref);
|
|
65
66
|
}
|
|
66
67
|
}
|
|
67
68
|
exports.parseAliasedStringReference = parseAliasedStringReference;
|
|
@@ -77,3 +78,6 @@ function parseStringReferenceWithTable(parts) {
|
|
|
77
78
|
const [table, column] = parts;
|
|
78
79
|
return reference_node_js_1.ReferenceNode.create(table_node_js_1.TableNode.create(table), column_node_js_1.ColumnNode.create(column));
|
|
79
80
|
}
|
|
81
|
+
function trim(str) {
|
|
82
|
+
return str.trim();
|
|
83
|
+
}
|
|
@@ -26,6 +26,5 @@ declare type ExtractAliasFromStringSelectExpression<S extends string> = S extend
|
|
|
26
26
|
declare type ExtractTypeFromSelectExpression<DB, TB extends keyof DB, S, A extends keyof any> = S extends string ? ExtractTypeFromStringSelectExpression<DB, TB, S, A> : S extends AliasedRawBuilder<infer O, infer RA> ? RA extends A ? O : never : S extends (qb: any) => AliasedRawBuilder<infer O, infer RA> ? RA extends A ? O : never : S extends AliasedQueryBuilder<any, any, infer O, infer QA> ? QA extends A ? ValueType<O> : never : S extends (qb: any) => AliasedQueryBuilder<any, any, infer O, infer QA> ? QA extends A ? ValueType<O> : never : S extends DynamicReferenceBuilder<infer RA> ? A extends ExtractAliasFromStringSelectExpression<RA> ? ExtractTypeFromStringSelectExpression<DB, TB, RA, A> | undefined : never : never;
|
|
27
27
|
declare type ExtractTypeFromStringSelectExpression<DB, TB extends keyof DB, S extends string, A extends keyof any, R = RowType<DB, TB>> = S extends `${infer SC}.${infer T}.${infer C} as ${infer RA}` ? RA extends A ? `${SC}.${T}` extends TB ? C extends keyof DB[`${SC}.${T}`] ? DB[`${SC}.${T}`][C] : never : never : never : S extends `${infer T}.${infer C} as ${infer RA}` ? RA extends A ? T extends TB ? C extends keyof DB[T] ? DB[T][C] : never : never : never : S extends `${infer C} as ${infer RA}` ? RA extends A ? C extends keyof R ? R[C] : never : never : S extends `${infer SC}.${infer T}.${infer C}` ? C extends A ? `${SC}.${T}` extends TB ? C extends keyof DB[`${SC}.${T}`] ? DB[`${SC}.${T}`][C] : never : never : never : S extends `${infer T}.${infer C}` ? C extends A ? T extends TB ? C extends keyof DB[T] ? DB[T][C] : never : never : never : S extends A ? S extends keyof R ? R[S] : never : never;
|
|
28
28
|
export declare function parseSelectExpressionOrList(ctx: ParseContext, selection: SelectExpressionOrList<any, any>): SelectionNode[];
|
|
29
|
-
export declare function
|
|
30
|
-
export declare function parseSelectAllArg(table: string): SelectionNode;
|
|
29
|
+
export declare function parseSelectAll(table?: string | string[]): SelectionNode[];
|
|
31
30
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.parseSelectAll = exports.parseSelectExpressionOrList = void 0;
|
|
4
4
|
const operation_node_source_js_1 = require("../operation-node/operation-node-source.js");
|
|
5
5
|
const object_utils_js_1 = require("../util/object-utils.js");
|
|
6
6
|
const selection_node_js_1 = require("../operation-node/selection-node.js");
|
|
@@ -22,13 +22,13 @@ function parseSelectExpression(ctx, selection) {
|
|
|
22
22
|
return selection_node_js_1.SelectionNode.create(selection.toOperationNode());
|
|
23
23
|
}
|
|
24
24
|
else if ((0, object_utils_js_1.isFunction)(selection)) {
|
|
25
|
-
return selection_node_js_1.SelectionNode.create(selection(ctx.
|
|
25
|
+
return selection_node_js_1.SelectionNode.create(selection(ctx.createExpressionBuilder()).toOperationNode());
|
|
26
26
|
}
|
|
27
27
|
else {
|
|
28
28
|
throw new Error(`invalid value passed to select method: ${JSON.stringify(selection)}`);
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
-
function
|
|
31
|
+
function parseSelectAll(table) {
|
|
32
32
|
if (!table) {
|
|
33
33
|
return [selection_node_js_1.SelectionNode.createSelectAll()];
|
|
34
34
|
}
|
|
@@ -39,7 +39,7 @@ function parseSelectAllArgs(table) {
|
|
|
39
39
|
return [parseSelectAllArg(table)];
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
-
exports.
|
|
42
|
+
exports.parseSelectAll = parseSelectAll;
|
|
43
43
|
function parseSelectAllArg(table) {
|
|
44
44
|
if ((0, object_utils_js_1.isString)(table)) {
|
|
45
45
|
return selection_node_js_1.SelectionNode.createSelectAllFromTable(table);
|
|
@@ -48,4 +48,3 @@ function parseSelectAllArg(table) {
|
|
|
48
48
|
throw new Error(`invalid value passed to selectAll method: ${JSON.stringify(table)}`);
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
exports.parseSelectAllArg = parseSelectAllArg;
|
|
@@ -22,7 +22,7 @@ function parseTableExpression(ctx, table) {
|
|
|
22
22
|
return table.toOperationNode();
|
|
23
23
|
}
|
|
24
24
|
else if ((0, object_utils_js_1.isFunction)(table)) {
|
|
25
|
-
return table(ctx.
|
|
25
|
+
return table(ctx.createExpressionBuilder()).toOperationNode();
|
|
26
26
|
}
|
|
27
27
|
else {
|
|
28
28
|
throw new Error(`invalid table expression ${JSON.stringify(table)}`);
|
|
@@ -30,18 +30,20 @@ function parseTableExpression(ctx, table) {
|
|
|
30
30
|
}
|
|
31
31
|
exports.parseTableExpression = parseTableExpression;
|
|
32
32
|
function parseAliasedTable(from) {
|
|
33
|
-
const
|
|
34
|
-
if (
|
|
33
|
+
const ALIAS_SEPARATOR = ' as ';
|
|
34
|
+
if (from.includes(ALIAS_SEPARATOR)) {
|
|
35
|
+
const [table, alias] = from.split(ALIAS_SEPARATOR).map(trim);
|
|
35
36
|
return alias_node_js_1.AliasNode.create(parseTable(table), alias);
|
|
36
37
|
}
|
|
37
38
|
else {
|
|
38
|
-
return parseTable(
|
|
39
|
+
return parseTable(from);
|
|
39
40
|
}
|
|
40
41
|
}
|
|
41
42
|
exports.parseAliasedTable = parseAliasedTable;
|
|
42
43
|
function parseTable(from) {
|
|
43
|
-
|
|
44
|
-
|
|
44
|
+
const SCHEMA_SEPARATOR = '.';
|
|
45
|
+
if (from.includes(SCHEMA_SEPARATOR)) {
|
|
46
|
+
const [schema, table] = from.split(SCHEMA_SEPARATOR).map(trim);
|
|
45
47
|
return table_node_js_1.TableNode.createWithSchema(schema, table);
|
|
46
48
|
}
|
|
47
49
|
else {
|
|
@@ -49,3 +51,6 @@ function parseTable(from) {
|
|
|
49
51
|
}
|
|
50
52
|
}
|
|
51
53
|
exports.parseTable = parseTable;
|
|
54
|
+
function trim(str) {
|
|
55
|
+
return str.trim();
|
|
56
|
+
}
|
|
@@ -24,7 +24,7 @@ function parseMutationValueExpression(ctx, value) {
|
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
else if ((0, object_utils_js_1.isFunction)(value)) {
|
|
27
|
-
const node = value(ctx.
|
|
27
|
+
const node = value(ctx.createExpressionBuilder()).toOperationNode();
|
|
28
28
|
if (!query_node_js_1.QueryNode.isMutating(node)) {
|
|
29
29
|
return node;
|
|
30
30
|
}
|
|
@@ -28,7 +28,7 @@ function parseValueExpression(ctx, arg) {
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
else if ((0, object_utils_js_1.isFunction)(arg)) {
|
|
31
|
-
const node = arg(ctx.
|
|
31
|
+
const node = arg(ctx.createExpressionBuilder()).toOperationNode();
|
|
32
32
|
if (!query_node_js_1.QueryNode.isMutating(node)) {
|
|
33
33
|
return node;
|
|
34
34
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { TableExpression, QueryBuilderWithTable } from '../parser/table-parser.js';
|
|
2
2
|
import { NoopQueryExecutor } from '../query-executor/noop-query-executor.js';
|
|
3
|
-
import {
|
|
4
|
-
export declare class
|
|
3
|
+
import { ParseContext } from '../parser/parse-context.js';
|
|
4
|
+
export declare class ExpressionBuilder<DB, TB extends keyof DB> {
|
|
5
5
|
#private;
|
|
6
|
-
constructor(props:
|
|
6
|
+
constructor(props: ExpressionBuilderProps);
|
|
7
7
|
/**
|
|
8
8
|
* Creates a subquery.
|
|
9
9
|
*
|
|
@@ -50,9 +50,9 @@ export declare class SubQueryBuilder<DB, TB extends keyof DB> {
|
|
|
50
50
|
/**
|
|
51
51
|
* See {@link QueryCreator.withSchema}
|
|
52
52
|
*/
|
|
53
|
-
withSchema(schema: string):
|
|
53
|
+
withSchema(schema: string): ExpressionBuilder<DB, TB>;
|
|
54
54
|
}
|
|
55
|
-
export interface
|
|
55
|
+
export interface ExpressionBuilderProps {
|
|
56
56
|
readonly executor: NoopQueryExecutor;
|
|
57
|
-
readonly
|
|
57
|
+
readonly parseContext: ParseContext;
|
|
58
58
|
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.ExpressionBuilder = void 0;
|
|
4
4
|
const query_builder_js_1 = require("./query-builder.js");
|
|
5
5
|
const select_query_node_js_1 = require("../operation-node/select-query-node.js");
|
|
6
6
|
const table_parser_js_1 = require("../parser/table-parser.js");
|
|
7
7
|
const with_schema_plugin_js_1 = require("../plugin/with-schema/with-schema-plugin.js");
|
|
8
8
|
const query_id_js_1 = require("../util/query-id.js");
|
|
9
9
|
const object_utils_js_1 = require("../util/object-utils.js");
|
|
10
|
-
|
|
11
|
-
class SubQueryBuilder {
|
|
10
|
+
class ExpressionBuilder {
|
|
12
11
|
#props;
|
|
13
12
|
constructor(props) {
|
|
14
13
|
this.#props = (0, object_utils_js_1.freeze)(props);
|
|
@@ -17,21 +16,18 @@ class SubQueryBuilder {
|
|
|
17
16
|
return new query_builder_js_1.QueryBuilder({
|
|
18
17
|
queryId: (0, query_id_js_1.createQueryId)(),
|
|
19
18
|
executor: this.#props.executor,
|
|
20
|
-
|
|
21
|
-
queryNode: select_query_node_js_1.SelectQueryNode.create((0, table_parser_js_1.parseTableExpressionOrList)(this.#parseContext, table)),
|
|
19
|
+
parseContext: this.#props.parseContext,
|
|
20
|
+
queryNode: select_query_node_js_1.SelectQueryNode.create((0, table_parser_js_1.parseTableExpressionOrList)(this.#props.parseContext, table)),
|
|
22
21
|
});
|
|
23
22
|
}
|
|
24
23
|
/**
|
|
25
24
|
* See {@link QueryCreator.withSchema}
|
|
26
25
|
*/
|
|
27
26
|
withSchema(schema) {
|
|
28
|
-
return new
|
|
27
|
+
return new ExpressionBuilder({
|
|
29
28
|
...this.#props,
|
|
30
29
|
executor: this.#props.executor.withPluginAtFront(new with_schema_plugin_js_1.WithSchemaPlugin(schema)),
|
|
31
30
|
});
|
|
32
31
|
}
|
|
33
|
-
get #parseContext() {
|
|
34
|
-
return (0, parse_context_js_1.createParseContext)(this.#props.adapter);
|
|
35
|
-
}
|
|
36
32
|
}
|
|
37
|
-
exports.
|
|
33
|
+
exports.ExpressionBuilder = ExpressionBuilder;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { DialectAdapter } from '../dialect/dialect-adapter.js';
|
|
2
1
|
import { JoinNode } from '../operation-node/join-node.js';
|
|
3
2
|
import { OperationNodeSource } from '../operation-node/operation-node-source.js';
|
|
4
3
|
import { ExistsExpression, FilterOperator } from '../parser/filter-parser.js';
|
|
4
|
+
import { ParseContext } from '../parser/parse-context.js';
|
|
5
5
|
import { ReferenceExpression } from '../parser/reference-parser.js';
|
|
6
6
|
import { ValueExpressionOrList } from '../parser/value-parser.js';
|
|
7
7
|
export declare class JoinBuilder<DB, TB extends keyof DB> implements OperationNodeSource {
|
|
@@ -69,5 +69,5 @@ export declare class JoinBuilder<DB, TB extends keyof DB> implements OperationNo
|
|
|
69
69
|
}
|
|
70
70
|
export interface JoinBuilderProps {
|
|
71
71
|
readonly joinNode: JoinNode;
|
|
72
|
-
readonly
|
|
72
|
+
readonly parseContext: ParseContext;
|
|
73
73
|
}
|
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.JoinBuilder = void 0;
|
|
4
4
|
const join_node_js_1 = require("../operation-node/join-node.js");
|
|
5
5
|
const filter_parser_js_1 = require("../parser/filter-parser.js");
|
|
6
|
-
const parse_context_js_1 = require("../parser/parse-context.js");
|
|
7
6
|
const object_utils_js_1 = require("../util/object-utils.js");
|
|
8
7
|
const prevent_await_js_1 = require("../util/prevent-await.js");
|
|
9
8
|
class JoinBuilder {
|
|
@@ -14,13 +13,13 @@ class JoinBuilder {
|
|
|
14
13
|
on(...args) {
|
|
15
14
|
return new JoinBuilder({
|
|
16
15
|
...this.#props,
|
|
17
|
-
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, 'And', (0, filter_parser_js_1.parseOnFilter)(this.#parseContext, args)),
|
|
16
|
+
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, 'And', (0, filter_parser_js_1.parseOnFilter)(this.#props.parseContext, args)),
|
|
18
17
|
});
|
|
19
18
|
}
|
|
20
19
|
orOn(...args) {
|
|
21
20
|
return new JoinBuilder({
|
|
22
21
|
...this.#props,
|
|
23
|
-
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, 'Or', (0, filter_parser_js_1.parseOnFilter)(this.#parseContext, args)),
|
|
22
|
+
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, 'Or', (0, filter_parser_js_1.parseOnFilter)(this.#props.parseContext, args)),
|
|
24
23
|
});
|
|
25
24
|
}
|
|
26
25
|
/**
|
|
@@ -32,7 +31,7 @@ class JoinBuilder {
|
|
|
32
31
|
onRef(lhs, op, rhs) {
|
|
33
32
|
return new JoinBuilder({
|
|
34
33
|
...this.#props,
|
|
35
|
-
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, 'And', (0, filter_parser_js_1.parseReferenceFilter)(this.#parseContext, lhs, op, rhs)),
|
|
34
|
+
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, 'And', (0, filter_parser_js_1.parseReferenceFilter)(this.#props.parseContext, lhs, op, rhs)),
|
|
36
35
|
});
|
|
37
36
|
}
|
|
38
37
|
/**
|
|
@@ -44,7 +43,7 @@ class JoinBuilder {
|
|
|
44
43
|
orOnRef(lhs, op, rhs) {
|
|
45
44
|
return new JoinBuilder({
|
|
46
45
|
...this.#props,
|
|
47
|
-
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, 'Or', (0, filter_parser_js_1.parseReferenceFilter)(this.#parseContext, lhs, op, rhs)),
|
|
46
|
+
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, 'Or', (0, filter_parser_js_1.parseReferenceFilter)(this.#props.parseContext, lhs, op, rhs)),
|
|
48
47
|
});
|
|
49
48
|
}
|
|
50
49
|
/**
|
|
@@ -56,7 +55,7 @@ class JoinBuilder {
|
|
|
56
55
|
onExists(arg) {
|
|
57
56
|
return new JoinBuilder({
|
|
58
57
|
...this.#props,
|
|
59
|
-
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, 'And', (0, filter_parser_js_1.
|
|
58
|
+
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, 'And', (0, filter_parser_js_1.parseExistFilter)(this.#props.parseContext, arg)),
|
|
60
59
|
});
|
|
61
60
|
}
|
|
62
61
|
/**
|
|
@@ -68,7 +67,7 @@ class JoinBuilder {
|
|
|
68
67
|
onNotExists(arg) {
|
|
69
68
|
return new JoinBuilder({
|
|
70
69
|
...this.#props,
|
|
71
|
-
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, 'And', (0, filter_parser_js_1.
|
|
70
|
+
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, 'And', (0, filter_parser_js_1.parseNotExistFilter)(this.#props.parseContext, arg)),
|
|
72
71
|
});
|
|
73
72
|
}
|
|
74
73
|
/**
|
|
@@ -80,7 +79,7 @@ class JoinBuilder {
|
|
|
80
79
|
orOnExists(arg) {
|
|
81
80
|
return new JoinBuilder({
|
|
82
81
|
...this.#props,
|
|
83
|
-
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, 'Or', (0, filter_parser_js_1.
|
|
82
|
+
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, 'Or', (0, filter_parser_js_1.parseExistFilter)(this.#props.parseContext, arg)),
|
|
84
83
|
});
|
|
85
84
|
}
|
|
86
85
|
/**
|
|
@@ -92,15 +91,12 @@ class JoinBuilder {
|
|
|
92
91
|
orOnNotExists(arg) {
|
|
93
92
|
return new JoinBuilder({
|
|
94
93
|
...this.#props,
|
|
95
|
-
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, 'Or', (0, filter_parser_js_1.
|
|
94
|
+
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, 'Or', (0, filter_parser_js_1.parseNotExistFilter)(this.#props.parseContext, arg)),
|
|
96
95
|
});
|
|
97
96
|
}
|
|
98
97
|
toOperationNode() {
|
|
99
98
|
return this.#props.joinNode;
|
|
100
99
|
}
|
|
101
|
-
get #parseContext() {
|
|
102
|
-
return (0, parse_context_js_1.createParseContext)(this.#props.adapter);
|
|
103
|
-
}
|
|
104
100
|
}
|
|
105
101
|
exports.JoinBuilder = JoinBuilder;
|
|
106
102
|
(0, prevent_await_js_1.preventAwait)(JoinBuilder, "don't await JoinBuilder instances. They are never executed directly and are always just a part of a query.");
|
|
@@ -18,7 +18,7 @@ import { Compilable } from '../util/compilable.js';
|
|
|
18
18
|
import { QueryExecutor } from '../query-executor/query-executor.js';
|
|
19
19
|
import { QueryId } from '../util/query-id.js';
|
|
20
20
|
import { OnConflictConstraintTarget } from '../parser/on-conflict-parser.js';
|
|
21
|
-
import {
|
|
21
|
+
import { ParseContext } from '../parser/parse-context.js';
|
|
22
22
|
/**
|
|
23
23
|
* The main query builder class.
|
|
24
24
|
*
|
|
@@ -1605,7 +1605,7 @@ export interface QueryBuilderProps {
|
|
|
1605
1605
|
readonly queryId: QueryId;
|
|
1606
1606
|
readonly queryNode: QueryNode;
|
|
1607
1607
|
readonly executor: QueryExecutor;
|
|
1608
|
-
readonly
|
|
1608
|
+
readonly parseContext: ParseContext;
|
|
1609
1609
|
}
|
|
1610
1610
|
/**
|
|
1611
1611
|
* {@link QueryBuilder} with an alias. The result of calling {@link QueryBuilder.as}.
|