kysely 0.21.0 → 0.21.3
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 +1 -1
- package/dist/cjs/dialect/mysql/mysql-introspector.js +7 -7
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +1 -1
- package/dist/cjs/operation-node/operation-node-transformer.js +1 -1
- package/dist/cjs/parser/group-by-parser.d.ts +4 -2
- package/dist/cjs/plugin/with-schema/with-schema-transformer.d.ts +2 -0
- package/dist/cjs/plugin/with-schema/with-schema-transformer.js +12 -4
- package/dist/cjs/query-builder/select-query-builder.d.ts +3 -2
- package/dist/esm/dialect/mysql/mysql-introspector.js +7 -7
- package/dist/esm/operation-node/operation-node-transformer.d.ts +1 -1
- package/dist/esm/operation-node/operation-node-transformer.js +1 -1
- package/dist/esm/parser/group-by-parser.d.ts +4 -2
- package/dist/esm/plugin/with-schema/with-schema-transformer.d.ts +2 -0
- package/dist/esm/plugin/with-schema/with-schema-transformer.js +12 -4
- package/dist/esm/query-builder/select-query-builder.d.ts +3 -2
- package/dist/esm/query-builder/select-query-builder.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@ column names, aliases and types from selected subqueries, joined subqueries, `wi
|
|
|
21
21
|
much anything you can think of.
|
|
22
22
|
|
|
23
23
|
Of course there are cases where things cannot be typed at compile time, and Kysely offers escape
|
|
24
|
-
hatches for these situations. See the [sql template tag](https://koskimas.github.io/kysely/functions/sql.html)
|
|
24
|
+
hatches for these situations. See the [sql template tag](https://koskimas.github.io/kysely/functions/sql-1.html)
|
|
25
25
|
and the [DynamicModule](https://koskimas.github.io/kysely/classes/DynamicModule.html#ref) for more info.
|
|
26
26
|
|
|
27
27
|
If you start using Kysely and can't find something you'd want to use, please open an issue or join our
|
|
@@ -21,13 +21,13 @@ class MysqlIntrospector {
|
|
|
21
21
|
let query = this.#db
|
|
22
22
|
.selectFrom('information_schema.columns')
|
|
23
23
|
.select([
|
|
24
|
-
'
|
|
25
|
-
'
|
|
26
|
-
'
|
|
27
|
-
'
|
|
28
|
-
'
|
|
29
|
-
'
|
|
30
|
-
'
|
|
24
|
+
'COLUMN_NAME',
|
|
25
|
+
'COLUMN_DEFAULT',
|
|
26
|
+
'TABLE_NAME',
|
|
27
|
+
'TABLE_SCHEMA',
|
|
28
|
+
'IS_NULLABLE',
|
|
29
|
+
'DATA_TYPE',
|
|
30
|
+
'EXTRA',
|
|
31
31
|
])
|
|
32
32
|
.where('table_schema', '=', (0, sql_js_1.sql) `database()`)
|
|
33
33
|
.orderBy('table_name')
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import { GroupByItemNode } from '../operation-node/group-by-item-node.js';
|
|
2
|
-
import {
|
|
3
|
-
export declare
|
|
2
|
+
import { ReferenceExpression } from './reference-parser.js';
|
|
3
|
+
export declare type GroupByExpression<DB, TB extends keyof DB, O> = ReferenceExpression<DB, TB> | (keyof O & string);
|
|
4
|
+
export declare type GroupByExpressionOrList<DB, TB extends keyof DB, O> = ReadonlyArray<GroupByExpression<DB, TB, O>> | GroupByExpression<DB, TB, O>;
|
|
5
|
+
export declare function parseGroupBy(orderBy: GroupByExpressionOrList<any, any, any>): GroupByItemNode[];
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { OperationNodeTransformer } from '../../operation-node/operation-node-transformer.js';
|
|
2
2
|
import { OperationNode } from '../../operation-node/operation-node.js';
|
|
3
|
+
import { ReferencesNode } from '../../operation-node/references-node.js';
|
|
3
4
|
import { SchemableIdentifierNode } from '../../operation-node/schemable-identifier-node.js';
|
|
4
5
|
export declare class WithSchemaTransformer extends OperationNodeTransformer {
|
|
5
6
|
#private;
|
|
6
7
|
constructor(schema: string);
|
|
7
8
|
protected transformNodeImpl<T extends OperationNode>(node: T): T;
|
|
8
9
|
protected transformSchemableIdentifier(node: SchemableIdentifierNode): SchemableIdentifierNode;
|
|
10
|
+
protected transformReferences(node: ReferencesNode): ReferencesNode;
|
|
9
11
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.WithSchemaTransformer = void 0;
|
|
4
4
|
const alias_node_js_1 = require("../../operation-node/alias-node.js");
|
|
5
|
+
const identifier_node_js_1 = require("../../operation-node/identifier-node.js");
|
|
5
6
|
const operation_node_transformer_js_1 = require("../../operation-node/operation-node-transformer.js");
|
|
6
7
|
const schemable_identifier_node_js_1 = require("../../operation-node/schemable-identifier-node.js");
|
|
7
8
|
const table_node_js_1 = require("../../operation-node/table-node.js");
|
|
@@ -57,10 +58,17 @@ class WithSchemaTransformer extends operation_node_transformer_js_1.OperationNod
|
|
|
57
58
|
}
|
|
58
59
|
return {
|
|
59
60
|
...transformed,
|
|
60
|
-
schema: (
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
schema: identifier_node_js_1.IdentifierNode.create(this.#schema),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
transformReferences(node) {
|
|
65
|
+
const transformed = super.transformReferences(node);
|
|
66
|
+
if (transformed.table.table.schema) {
|
|
67
|
+
return transformed;
|
|
68
|
+
}
|
|
69
|
+
return {
|
|
70
|
+
...transformed,
|
|
71
|
+
table: table_node_js_1.TableNode.createWithSchema(this.#schema, transformed.table.table.identifier.name),
|
|
64
72
|
};
|
|
65
73
|
}
|
|
66
74
|
#isRootOperationNode(node) {
|
|
@@ -12,6 +12,7 @@ import { OrderByDirectionExpression, OrderByExpression } from '../parser/order-b
|
|
|
12
12
|
import { Compilable } from '../util/compilable.js';
|
|
13
13
|
import { QueryExecutor } from '../query-executor/query-executor.js';
|
|
14
14
|
import { QueryId } from '../util/query-id.js';
|
|
15
|
+
import { GroupByExpression } from '../parser/group-by-parser.js';
|
|
15
16
|
import { UnionExpression } from '../parser/union-parser.js';
|
|
16
17
|
import { KyselyPlugin } from '../plugin/kysely-plugin.js';
|
|
17
18
|
import { WhereInterface } from './where-interface.js';
|
|
@@ -1144,8 +1145,8 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
1144
1145
|
* group by "first_name"
|
|
1145
1146
|
* ```
|
|
1146
1147
|
*/
|
|
1147
|
-
groupBy(groupBy: ReadonlyArray<
|
|
1148
|
-
groupBy(groupBy:
|
|
1148
|
+
groupBy(groupBy: ReadonlyArray<GroupByExpression<DB, TB, O>>): SelectQueryBuilder<DB, TB, O>;
|
|
1149
|
+
groupBy(groupBy: GroupByExpression<DB, TB, O>): SelectQueryBuilder<DB, TB, O>;
|
|
1149
1150
|
/**
|
|
1150
1151
|
* Adds a limit clause to the query.
|
|
1151
1152
|
*
|
|
@@ -19,13 +19,13 @@ export class MysqlIntrospector {
|
|
|
19
19
|
let query = this.#db
|
|
20
20
|
.selectFrom('information_schema.columns')
|
|
21
21
|
.select([
|
|
22
|
-
'
|
|
23
|
-
'
|
|
24
|
-
'
|
|
25
|
-
'
|
|
26
|
-
'
|
|
27
|
-
'
|
|
28
|
-
'
|
|
22
|
+
'COLUMN_NAME',
|
|
23
|
+
'COLUMN_DEFAULT',
|
|
24
|
+
'TABLE_NAME',
|
|
25
|
+
'TABLE_SCHEMA',
|
|
26
|
+
'IS_NULLABLE',
|
|
27
|
+
'DATA_TYPE',
|
|
28
|
+
'EXTRA',
|
|
29
29
|
])
|
|
30
30
|
.where('table_schema', '=', sql `database()`)
|
|
31
31
|
.orderBy('table_name')
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import { GroupByItemNode } from '../operation-node/group-by-item-node.js';
|
|
2
|
-
import {
|
|
3
|
-
export declare
|
|
2
|
+
import { ReferenceExpression } from './reference-parser.js';
|
|
3
|
+
export declare type GroupByExpression<DB, TB extends keyof DB, O> = ReferenceExpression<DB, TB> | (keyof O & string);
|
|
4
|
+
export declare type GroupByExpressionOrList<DB, TB extends keyof DB, O> = ReadonlyArray<GroupByExpression<DB, TB, O>> | GroupByExpression<DB, TB, O>;
|
|
5
|
+
export declare function parseGroupBy(orderBy: GroupByExpressionOrList<any, any, any>): GroupByItemNode[];
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { OperationNodeTransformer } from '../../operation-node/operation-node-transformer.js';
|
|
2
2
|
import { OperationNode } from '../../operation-node/operation-node.js';
|
|
3
|
+
import { ReferencesNode } from '../../operation-node/references-node.js';
|
|
3
4
|
import { SchemableIdentifierNode } from '../../operation-node/schemable-identifier-node.js';
|
|
4
5
|
export declare class WithSchemaTransformer extends OperationNodeTransformer {
|
|
5
6
|
#private;
|
|
6
7
|
constructor(schema: string);
|
|
7
8
|
protected transformNodeImpl<T extends OperationNode>(node: T): T;
|
|
8
9
|
protected transformSchemableIdentifier(node: SchemableIdentifierNode): SchemableIdentifierNode;
|
|
10
|
+
protected transformReferences(node: ReferencesNode): ReferencesNode;
|
|
9
11
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="./with-schema-transformer.d.ts" />
|
|
2
2
|
import { AliasNode } from '../../operation-node/alias-node.js';
|
|
3
|
+
import { IdentifierNode } from '../../operation-node/identifier-node.js';
|
|
3
4
|
import { OperationNodeTransformer } from '../../operation-node/operation-node-transformer.js';
|
|
4
5
|
import { SchemableIdentifierNode } from '../../operation-node/schemable-identifier-node.js';
|
|
5
6
|
import { TableNode } from '../../operation-node/table-node.js';
|
|
@@ -55,10 +56,17 @@ export class WithSchemaTransformer extends OperationNodeTransformer {
|
|
|
55
56
|
}
|
|
56
57
|
return {
|
|
57
58
|
...transformed,
|
|
58
|
-
schema:
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
schema: IdentifierNode.create(this.#schema),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
transformReferences(node) {
|
|
63
|
+
const transformed = super.transformReferences(node);
|
|
64
|
+
if (transformed.table.table.schema) {
|
|
65
|
+
return transformed;
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
...transformed,
|
|
69
|
+
table: TableNode.createWithSchema(this.#schema, transformed.table.table.identifier.name),
|
|
62
70
|
};
|
|
63
71
|
}
|
|
64
72
|
#isRootOperationNode(node) {
|
|
@@ -12,6 +12,7 @@ import { OrderByDirectionExpression, OrderByExpression } from '../parser/order-b
|
|
|
12
12
|
import { Compilable } from '../util/compilable.js';
|
|
13
13
|
import { QueryExecutor } from '../query-executor/query-executor.js';
|
|
14
14
|
import { QueryId } from '../util/query-id.js';
|
|
15
|
+
import { GroupByExpression } from '../parser/group-by-parser.js';
|
|
15
16
|
import { UnionExpression } from '../parser/union-parser.js';
|
|
16
17
|
import { KyselyPlugin } from '../plugin/kysely-plugin.js';
|
|
17
18
|
import { WhereInterface } from './where-interface.js';
|
|
@@ -1144,8 +1145,8 @@ export declare class SelectQueryBuilder<DB, TB extends keyof DB, O> implements W
|
|
|
1144
1145
|
* group by "first_name"
|
|
1145
1146
|
* ```
|
|
1146
1147
|
*/
|
|
1147
|
-
groupBy(groupBy: ReadonlyArray<
|
|
1148
|
-
groupBy(groupBy:
|
|
1148
|
+
groupBy(groupBy: ReadonlyArray<GroupByExpression<DB, TB, O>>): SelectQueryBuilder<DB, TB, O>;
|
|
1149
|
+
groupBy(groupBy: GroupByExpression<DB, TB, O>): SelectQueryBuilder<DB, TB, O>;
|
|
1149
1150
|
/**
|
|
1150
1151
|
* Adds a limit clause to the query.
|
|
1151
1152
|
*
|
|
@@ -11,7 +11,7 @@ import { preventAwait } from '../util/prevent-await.js';
|
|
|
11
11
|
import { LimitNode } from '../operation-node/limit-node.js';
|
|
12
12
|
import { OffsetNode } from '../operation-node/offset-node.js';
|
|
13
13
|
import { freeze } from '../util/object-utils.js';
|
|
14
|
-
import { parseGroupBy } from '../parser/group-by-parser.js';
|
|
14
|
+
import { parseGroupBy, } from '../parser/group-by-parser.js';
|
|
15
15
|
import { parseUnion } from '../parser/union-parser.js';
|
|
16
16
|
import { NoResultError } from './no-result-error.js';
|
|
17
17
|
import { IdentifierNode } from '../operation-node/identifier-node.js';
|