kysely 0.7.1 → 0.7.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/README.md +24 -19
- package/dist/cjs/dialect/dialect-adapter.d.ts +11 -9
- package/dist/cjs/dialect/mysql/mysql-dialect.d.ts +1 -1
- package/dist/cjs/dialect/mysql/mysql-driver.js +1 -0
- package/dist/cjs/dialect/mysql/mysql-introspector.d.ts +0 -1
- package/dist/cjs/dialect/mysql/mysql-introspector.js +2 -2
- package/dist/cjs/dialect/mysql/mysql-query-compiler.d.ts +0 -4
- package/dist/cjs/dialect/mysql/mysql-query-compiler.js +0 -18
- package/dist/cjs/dialect/postgres/postgres-introspector.d.ts +0 -1
- package/dist/cjs/dialect/postgres/postgres-introspector.js +2 -2
- package/dist/cjs/driver/database-connection.d.ts +2 -1
- package/dist/cjs/driver/driver.d.ts +1 -1
- package/dist/cjs/driver/single-connection-provider.d.ts +0 -1
- package/dist/cjs/driver/single-connection-provider.js +2 -2
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/kysely.d.ts +7 -6
- package/dist/cjs/kysely.js +8 -6
- package/dist/cjs/migration/migration.js +11 -10
- package/dist/cjs/operation-node/alter-column-node.d.ts +2 -2
- package/dist/cjs/operation-node/alter-column-node.js +2 -2
- package/dist/cjs/operation-node/alter-table-node.d.ts +2 -2
- package/dist/cjs/operation-node/alter-table-node.js +2 -2
- package/dist/cjs/operation-node/column-definition-node.d.ts +2 -2
- package/dist/cjs/operation-node/column-definition-node.js +2 -2
- package/dist/cjs/operation-node/create-index-node.d.ts +2 -2
- package/dist/cjs/operation-node/create-index-node.js +2 -2
- 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/drop-index-node.d.ts +3 -3
- package/dist/cjs/operation-node/drop-index-node.js +2 -2
- 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/insert-query-node.d.ts +5 -2
- package/dist/cjs/operation-node/insert-query-node.js +2 -9
- 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/on-conflict-node.d.ts +2 -2
- package/dist/cjs/operation-node/on-conflict-node.js +2 -2
- package/dist/cjs/operation-node/on-duplicate-key-node.d.ts +14 -0
- package/dist/cjs/operation-node/on-duplicate-key-node.js +18 -0
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +2 -0
- package/dist/cjs/operation-node/operation-node-transformer.js +12 -0
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +2 -0
- package/dist/cjs/operation-node/operation-node-visitor.js +4 -0
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/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 +34 -7
- package/dist/cjs/parser/parse-context.js +42 -34
- 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} +7 -7
- 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 +47 -8
- package/dist/cjs/query-builder/query-builder.js +163 -91
- package/dist/cjs/query-builder/type-utils.d.ts +5 -5
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +2 -1
- package/dist/cjs/query-compiler/default-query-compiler.js +26 -6
- 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 +31 -8
- package/dist/cjs/schema/alter-table-builder.js +80 -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/cjs/transformers/with-schema-transformer.d.ts +0 -5
- package/dist/cjs/transformers/with-schema-transformer.js +21 -21
- package/dist/esm/dialect/dialect-adapter.d.ts +11 -9
- package/dist/esm/dialect/mysql/mysql-dialect.d.ts +1 -1
- package/dist/esm/dialect/mysql/mysql-driver.js +1 -0
- package/dist/esm/dialect/mysql/mysql-introspector.d.ts +0 -1
- package/dist/esm/dialect/mysql/mysql-introspector.js +2 -2
- package/dist/esm/dialect/mysql/mysql-query-compiler.d.ts +0 -4
- package/dist/esm/dialect/mysql/mysql-query-compiler.js +0 -18
- package/dist/esm/dialect/postgres/postgres-introspector.d.ts +0 -1
- package/dist/esm/dialect/postgres/postgres-introspector.js +2 -2
- package/dist/esm/driver/database-connection.d.ts +2 -1
- package/dist/esm/driver/driver.d.ts +1 -1
- package/dist/esm/driver/single-connection-provider.d.ts +0 -1
- package/dist/esm/driver/single-connection-provider.js +2 -2
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/kysely.d.ts +7 -6
- package/dist/esm/kysely.js +8 -6
- package/dist/esm/migration/migration.js +12 -11
- package/dist/esm/operation-node/alter-column-node.d.ts +2 -2
- package/dist/esm/operation-node/alter-column-node.js +2 -2
- package/dist/esm/operation-node/alter-table-node.d.ts +2 -2
- package/dist/esm/operation-node/alter-table-node.js +2 -2
- package/dist/esm/operation-node/column-definition-node.d.ts +2 -2
- package/dist/esm/operation-node/column-definition-node.js +2 -2
- package/dist/esm/operation-node/create-index-node.d.ts +2 -2
- package/dist/esm/operation-node/create-index-node.js +2 -2
- 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/drop-index-node.d.ts +3 -3
- package/dist/esm/operation-node/drop-index-node.js +2 -2
- 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/insert-query-node.d.ts +5 -2
- package/dist/esm/operation-node/insert-query-node.js +2 -9
- 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/on-conflict-node.d.ts +2 -2
- package/dist/esm/operation-node/on-conflict-node.js +2 -2
- package/dist/esm/operation-node/on-duplicate-key-node.d.ts +14 -0
- package/dist/esm/operation-node/on-duplicate-key-node.js +15 -0
- package/dist/esm/operation-node/operation-node-transformer.d.ts +2 -0
- package/dist/esm/operation-node/operation-node-transformer.js +12 -0
- package/dist/esm/operation-node/operation-node-visitor.d.ts +2 -0
- package/dist/esm/operation-node/operation-node-visitor.js +4 -0
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/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 +34 -7
- package/dist/esm/parser/parse-context.js +40 -32
- 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} +7 -7
- 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 +47 -8
- package/dist/esm/query-builder/query-builder.js +165 -93
- package/dist/esm/query-builder/type-utils.d.ts +5 -5
- package/dist/esm/query-compiler/default-query-compiler.d.ts +2 -1
- package/dist/esm/query-compiler/default-query-compiler.js +27 -7
- 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 +31 -8
- package/dist/esm/schema/alter-table-builder.js +78 -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/dist/esm/transformers/with-schema-transformer.d.ts +0 -5
- package/dist/esm/transformers/with-schema-transformer.js +21 -21
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -8,45 +8,50 @@ A type-safe and autocompletion-friendly typescript SQL query builder for node.js
|
|
|
8
8
|
|
|
9
9
|

|
|
10
10
|
|
|
11
|
-
Kysely's typings
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
so much easier.
|
|
11
|
+
Kysely's typings make sure you only refer to tables and columns that are visible to the part of the query
|
|
12
|
+
you are writing. The result type only has the selected columns with correct types and aliases. This
|
|
13
|
+
allows tools like vscode autocompletion to make your life so much easier.
|
|
15
14
|
|
|
16
15
|
As you can see in the gif above, through the pure magic of modern typescript, Kysely is even able to parse
|
|
17
16
|
the alias given to `pet.name` and add the `pet_name` column to the result row type. Kysely is able to infer
|
|
18
|
-
column names and types from selected subqueries, joined subqueries, `with` statements and pretty
|
|
19
|
-
anything you can think of. Typescript is always there for you
|
|
20
|
-
|
|
17
|
+
column names, aliases and types from selected subqueries, joined subqueries, `with` statements and pretty
|
|
18
|
+
much anything you can think of. Typescript is always there for you offering completions and making sure
|
|
19
|
+
you build a valid query.
|
|
21
20
|
|
|
22
21
|
Of course there are cases where things cannot be typed at compile time, and Kysely offers escape
|
|
23
22
|
hatches for these situations. With typescript you can always cast something to `any` if the types
|
|
24
|
-
fail you.
|
|
23
|
+
fail you. With Kysely you can also explicitly tell it to ignore the typings, but the default is always
|
|
25
24
|
type-safety! See the [DynamicModule](https://koskimas.github.io/kysely/classes/DynamicModule.html#ref)
|
|
26
25
|
for more info.
|
|
27
26
|
|
|
28
|
-
Kysely is still young and some useful
|
|
29
|
-
Kysely
|
|
27
|
+
Kysely is still young and some useful features are propably not yet implemented. If you start
|
|
28
|
+
using Kysely and can't find something you'd want to use, please open an issue.
|
|
30
29
|
|
|
31
|
-
|
|
30
|
+
# Table of contents
|
|
31
|
+
|
|
32
|
+
- [Installation](#installation)
|
|
33
|
+
- [Minimal example](#minimal-example)
|
|
32
34
|
- [Migrations](#migrations)
|
|
35
|
+
- [API reference](https://koskimas.github.io/kysely/index.html)
|
|
33
36
|
|
|
34
37
|
# Installation
|
|
35
38
|
|
|
36
|
-
Kysely currently
|
|
39
|
+
Kysely currently works on PostgreSQL and MySQL. You can install it using
|
|
37
40
|
|
|
38
41
|
```
|
|
42
|
+
# postgres
|
|
39
43
|
npm install kysely pg
|
|
40
|
-
```
|
|
41
44
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
```
|
|
45
|
+
# mysql
|
|
45
46
|
npm install kysely mysql2
|
|
46
47
|
```
|
|
47
48
|
|
|
48
|
-
More dialects will be added
|
|
49
|
-
for [
|
|
49
|
+
More dialects will be added soon. Kysely also has a simple interface
|
|
50
|
+
for [3rd party dialects](https://koskimas.github.io/kysely/interfaces/Dialect.html).
|
|
51
|
+
|
|
52
|
+
3rd party dialects:
|
|
53
|
+
|
|
54
|
+
- [AWS Data API](https://github.com/serverless-stack/kysely-data-api)
|
|
50
55
|
|
|
51
56
|
# Minimal example
|
|
52
57
|
|
|
@@ -75,7 +80,7 @@ interface Movie {
|
|
|
75
80
|
stars: number
|
|
76
81
|
}
|
|
77
82
|
|
|
78
|
-
// Keys are table names.
|
|
83
|
+
// Keys of this interface are table names.
|
|
79
84
|
interface Database {
|
|
80
85
|
person: Person
|
|
81
86
|
pet: Pet
|
|
@@ -1,13 +1,5 @@
|
|
|
1
1
|
import { Kysely } from '../kysely.js';
|
|
2
|
-
|
|
3
|
-
* The `DialectAdapter` encapsulates all differences between dialects outside
|
|
4
|
-
* the `Driver` and `QueryCompiler`.
|
|
5
|
-
*
|
|
6
|
-
* For example, some databases support transactional DDL and therefore we want
|
|
7
|
-
* to run migrations inside a transaction, while other databases don't support
|
|
8
|
-
* it. For that there's a `supportsTransactionalDdl` boolean in this interface.
|
|
9
|
-
*/
|
|
10
|
-
export interface DialectAdapter {
|
|
2
|
+
export interface DialectSupports {
|
|
11
3
|
/**
|
|
12
4
|
* Whether or not this dialect supports transactional DDL.
|
|
13
5
|
*
|
|
@@ -19,6 +11,16 @@ export interface DialectAdapter {
|
|
|
19
11
|
* upates and deletes.
|
|
20
12
|
*/
|
|
21
13
|
readonly supportsReturning: boolean;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The `DialectAdapter` encapsulates all differences between dialects outside
|
|
17
|
+
* the `Driver` and `QueryCompiler`.
|
|
18
|
+
*
|
|
19
|
+
* For example, some databases support transactional DDL and therefore we want
|
|
20
|
+
* to run migrations inside a transaction, while other databases don't support
|
|
21
|
+
* it. For that there's a `supportsTransactionalDdl` boolean in this interface.
|
|
22
|
+
*/
|
|
23
|
+
export interface DialectAdapter extends DialectSupports {
|
|
22
24
|
/**
|
|
23
25
|
* This method is used to acquire a lock for the migrations so that
|
|
24
26
|
* it's not possible for two migration processes to run in parallel.
|
|
@@ -3,8 +3,8 @@ import { Kysely } from '../../kysely.js';
|
|
|
3
3
|
import { QueryCompiler } from '../../query-compiler/query-compiler.js';
|
|
4
4
|
import { Dialect } from '../dialect.js';
|
|
5
5
|
import { DatabaseIntrospector } from '../../introspection/database-introspector.js';
|
|
6
|
-
import { DatabaseConnection } from '../../index.js';
|
|
7
6
|
import { DialectAdapter } from '../dialect-adapter.js';
|
|
7
|
+
import { DatabaseConnection } from '../../driver/database-connection.js';
|
|
8
8
|
export declare class MysqlDialect implements Dialect {
|
|
9
9
|
#private;
|
|
10
10
|
constructor(config: MysqlDialectConfig);
|
|
@@ -50,6 +50,7 @@ class MysqlDriver {
|
|
|
50
50
|
}
|
|
51
51
|
async beginTransaction(connection, settings) {
|
|
52
52
|
if (settings.isolationLevel) {
|
|
53
|
+
// On mysql this sets the isolation level of the next transaction.
|
|
53
54
|
await connection.executeQuery({
|
|
54
55
|
sql: `set transaction isolation level ${settings.isolationLevel}`,
|
|
55
56
|
bindings: [],
|
|
@@ -21,10 +21,10 @@ class MysqlIntrospector {
|
|
|
21
21
|
}
|
|
22
22
|
const rawColumns = await query.execute();
|
|
23
23
|
return {
|
|
24
|
-
tables: this
|
|
24
|
+
tables: this.#parseTableMetadata(rawColumns),
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
|
-
parseTableMetadata(columns) {
|
|
27
|
+
#parseTableMetadata(columns) {
|
|
28
28
|
return columns.reduce((tables, it) => {
|
|
29
29
|
let table = tables.find((tbl) => tbl.name === it.TABLE_NAME);
|
|
30
30
|
if (!table) {
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
import { ColumnDefinitionNode } from '../../operation-node/column-definition-node.js';
|
|
2
|
-
import { InsertQueryNode } from '../../operation-node/insert-query-node.js';
|
|
3
|
-
import { OnConflictNode } from '../../operation-node/on-conflict-node.js';
|
|
4
2
|
import { DefaultQueryCompiler } from '../../query-compiler/default-query-compiler.js';
|
|
5
3
|
export declare class MysqlQueryCompiler extends DefaultQueryCompiler {
|
|
6
4
|
protected visitColumnDefinition(node: ColumnDefinitionNode): void;
|
|
7
|
-
protected visitOnConflict(node: OnConflictNode): void;
|
|
8
5
|
protected visitReturning(): void;
|
|
9
|
-
protected getInsertInto(node: InsertQueryNode): string;
|
|
10
6
|
protected getSql(): string;
|
|
11
7
|
protected getCurrentParameterPlaceholder(): string;
|
|
12
8
|
protected getLeftIdentifierWrapper(): string;
|
|
@@ -32,27 +32,9 @@ class MysqlQueryCompiler extends default_query_compiler_js_1.DefaultQueryCompile
|
|
|
32
32
|
this.visitNode(node.check);
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
visitOnConflict(node) {
|
|
36
|
-
if (node.doNothing) {
|
|
37
|
-
// This is already handled by `getInsertInto`.
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
if (node.updates) {
|
|
41
|
-
this.append('on duplicate key update ');
|
|
42
|
-
this.compileList(node.updates);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
35
|
visitReturning() {
|
|
46
36
|
// Do nothing.
|
|
47
37
|
}
|
|
48
|
-
getInsertInto(node) {
|
|
49
|
-
if (node.onConflict?.doNothing) {
|
|
50
|
-
return 'insert ignore into';
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
return 'insert into';
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
38
|
getSql() {
|
|
57
39
|
return super.getSql().trimEnd();
|
|
58
40
|
}
|
|
@@ -33,10 +33,10 @@ class PostgresIntrospector {
|
|
|
33
33
|
}
|
|
34
34
|
const rawColumns = await query.execute();
|
|
35
35
|
return {
|
|
36
|
-
tables: this
|
|
36
|
+
tables: this.#parseTableMetadata(rawColumns),
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
|
-
parseTableMetadata(columns) {
|
|
39
|
+
#parseTableMetadata(columns) {
|
|
40
40
|
return columns.reduce((tables, it) => {
|
|
41
41
|
let table = tables.find((tbl) => tbl.name === it.table && tbl.schema === it.schema);
|
|
42
42
|
if (!table) {
|
|
@@ -14,7 +14,8 @@ export interface QueryResult<O> {
|
|
|
14
14
|
*/
|
|
15
15
|
readonly insertedPrimaryKey?: number;
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
17
|
+
* The rows returned by the query. This is always defined and is
|
|
18
|
+
* empty if the query returned no rows.
|
|
18
19
|
*/
|
|
19
20
|
readonly rows: O[];
|
|
20
21
|
}
|
|
@@ -45,7 +45,7 @@ export interface Driver {
|
|
|
45
45
|
destroy(): Promise<void>;
|
|
46
46
|
}
|
|
47
47
|
export interface TransactionSettings {
|
|
48
|
-
isolationLevel?: IsolationLevel;
|
|
48
|
+
readonly isolationLevel?: IsolationLevel;
|
|
49
49
|
}
|
|
50
50
|
export declare const TRANSACTION_ISOLATION_LEVELS: readonly ["read uncommitted", "read committed", "repeatable read", "serializable"];
|
|
51
51
|
export declare type IsolationLevel = ArrayItemType<typeof TRANSACTION_ISOLATION_LEVELS>;
|
|
@@ -11,7 +11,7 @@ class SingleConnectionProvider {
|
|
|
11
11
|
while (this.#runningPromise) {
|
|
12
12
|
await this.#runningPromise;
|
|
13
13
|
}
|
|
14
|
-
const promise = this
|
|
14
|
+
const promise = this.#run(runner);
|
|
15
15
|
this.#runningPromise = promise
|
|
16
16
|
.then(() => {
|
|
17
17
|
this.#runningPromise = undefined;
|
|
@@ -23,7 +23,7 @@ class SingleConnectionProvider {
|
|
|
23
23
|
}
|
|
24
24
|
// Run the runner in an async function to make sure it doesn't
|
|
25
25
|
// throw synchronous errors.
|
|
26
|
-
async run(runner) {
|
|
26
|
+
async #run(runner) {
|
|
27
27
|
return await runner(this.#connection);
|
|
28
28
|
}
|
|
29
29
|
}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export * from './kysely.js';
|
|
|
2
2
|
export * from './query-creator.js';
|
|
3
3
|
export * from './query-builder/query-builder.js';
|
|
4
4
|
export * from './query-builder/join-builder.js';
|
|
5
|
-
export * from './query-builder/
|
|
5
|
+
export * from './query-builder/expression-builder.js';
|
|
6
6
|
export * from './raw-builder/raw-builder.js';
|
|
7
7
|
export * from './query-executor/query-executor.js';
|
|
8
8
|
export * from './query-executor/default-query-executor.js';
|
|
@@ -17,6 +17,7 @@ export * from './schema/drop-index-builder.js';
|
|
|
17
17
|
export * from './schema/create-schema-builder.js';
|
|
18
18
|
export * from './schema/drop-schema-builder.js';
|
|
19
19
|
export * from './schema/column-definition-builder.js';
|
|
20
|
+
export * from './schema/foreign-key-constraint-builder.js';
|
|
20
21
|
export * from './schema/alter-table-builder.js';
|
|
21
22
|
export * from './dynamic/dynamic.js';
|
|
22
23
|
export * from './driver/driver.js';
|
package/dist/cjs/index.js
CHANGED
|
@@ -14,7 +14,7 @@ __exportStar(require("./kysely.js"), exports);
|
|
|
14
14
|
__exportStar(require("./query-creator.js"), exports);
|
|
15
15
|
__exportStar(require("./query-builder/query-builder.js"), exports);
|
|
16
16
|
__exportStar(require("./query-builder/join-builder.js"), exports);
|
|
17
|
-
__exportStar(require("./query-builder/
|
|
17
|
+
__exportStar(require("./query-builder/expression-builder.js"), exports);
|
|
18
18
|
__exportStar(require("./raw-builder/raw-builder.js"), exports);
|
|
19
19
|
__exportStar(require("./query-executor/query-executor.js"), exports);
|
|
20
20
|
__exportStar(require("./query-executor/default-query-executor.js"), exports);
|
|
@@ -29,6 +29,7 @@ __exportStar(require("./schema/drop-index-builder.js"), exports);
|
|
|
29
29
|
__exportStar(require("./schema/create-schema-builder.js"), exports);
|
|
30
30
|
__exportStar(require("./schema/drop-schema-builder.js"), exports);
|
|
31
31
|
__exportStar(require("./schema/column-definition-builder.js"), exports);
|
|
32
|
+
__exportStar(require("./schema/foreign-key-constraint-builder.js"), exports);
|
|
32
33
|
__exportStar(require("./schema/alter-table-builder.js"), exports);
|
|
33
34
|
__exportStar(require("./dynamic/dynamic.js"), exports);
|
|
34
35
|
__exportStar(require("./driver/driver.js"), exports);
|
package/dist/cjs/kysely.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import { KyselyPlugin } from './plugin/kysely-plugin.js';
|
|
|
8
8
|
import { GeneratedPlaceholder } from './query-builder/type-utils.js';
|
|
9
9
|
import { DatabaseIntrospector } from './introspection/database-introspector.js';
|
|
10
10
|
import { Driver, IsolationLevel } from './driver/driver.js';
|
|
11
|
-
import {
|
|
11
|
+
import { ParseContext } from './parser/parse-context.js';
|
|
12
12
|
/**
|
|
13
13
|
* The main Kysely class.
|
|
14
14
|
*
|
|
@@ -152,7 +152,7 @@ export declare class Kysely<DB> extends QueryCreator<DB> {
|
|
|
152
152
|
* .execute(async (db) => {
|
|
153
153
|
* // `db` is an instance of `Kysely` that's bound to a single
|
|
154
154
|
* // database connection. All queries executed through `db` use
|
|
155
|
-
* // the same
|
|
155
|
+
* // the same connection.
|
|
156
156
|
* await doStuff(db)
|
|
157
157
|
* })
|
|
158
158
|
* ```
|
|
@@ -186,7 +186,7 @@ export interface KyselyProps {
|
|
|
186
186
|
readonly driver: Driver;
|
|
187
187
|
readonly executor: QueryExecutor;
|
|
188
188
|
readonly dialect: Dialect;
|
|
189
|
-
readonly
|
|
189
|
+
readonly parseContext: ParseContext;
|
|
190
190
|
}
|
|
191
191
|
export declare function isKyselyProps(obj: unknown): obj is KyselyProps;
|
|
192
192
|
export interface KyselyConfig {
|
|
@@ -198,14 +198,15 @@ export declare class ConnectionBuilder<DB> {
|
|
|
198
198
|
constructor(props: ConnectionBuilderProps);
|
|
199
199
|
execute<T>(callback: (db: Kysely<DB>) => Promise<T>): Promise<T>;
|
|
200
200
|
}
|
|
201
|
-
|
|
201
|
+
interface ConnectionBuilderProps extends KyselyProps {
|
|
202
202
|
}
|
|
203
203
|
export declare class TransactionBuilder<DB> {
|
|
204
204
|
#private;
|
|
205
|
-
constructor(props:
|
|
205
|
+
constructor(props: TransactionBuilderProps);
|
|
206
206
|
setIsolationLevel(isolationLevel: IsolationLevel): TransactionBuilder<DB>;
|
|
207
207
|
execute<T>(callback: (trx: Transaction<DB>) => Promise<T>): Promise<T>;
|
|
208
208
|
}
|
|
209
|
-
|
|
209
|
+
interface TransactionBuilderProps extends KyselyProps {
|
|
210
210
|
readonly isolationLevel?: IsolationLevel;
|
|
211
211
|
}
|
|
212
|
+
export {};
|
package/dist/cjs/kysely.js
CHANGED
|
@@ -13,6 +13,7 @@ const runtime_driver_js_1 = require("./driver/runtime-driver.js");
|
|
|
13
13
|
const single_connection_provider_js_1 = require("./driver/single-connection-provider.js");
|
|
14
14
|
const driver_js_1 = require("./driver/driver.js");
|
|
15
15
|
const prevent_await_js_1 = require("./util/prevent-await.js");
|
|
16
|
+
const parse_context_js_1 = require("./parser/parse-context.js");
|
|
16
17
|
/**
|
|
17
18
|
* The main Kysely class.
|
|
18
19
|
*
|
|
@@ -57,7 +58,7 @@ class Kysely extends query_creator_js_1.QueryCreator {
|
|
|
57
58
|
#props;
|
|
58
59
|
constructor(args) {
|
|
59
60
|
if (isKyselyProps(args)) {
|
|
60
|
-
super({ executor: args.executor,
|
|
61
|
+
super({ executor: args.executor, parseContext: args.parseContext });
|
|
61
62
|
this.#props = (0, object_utils_js_1.freeze)(args);
|
|
62
63
|
}
|
|
63
64
|
else {
|
|
@@ -65,16 +66,17 @@ class Kysely extends query_creator_js_1.QueryCreator {
|
|
|
65
66
|
const driver = dialect.createDriver();
|
|
66
67
|
const compiler = dialect.createQueryCompiler();
|
|
67
68
|
const adapter = dialect.createAdapter();
|
|
69
|
+
const parseContext = new parse_context_js_1.DefaultParseContext(adapter);
|
|
68
70
|
const runtimeDriver = new runtime_driver_js_1.RuntimeDriver(driver);
|
|
69
71
|
const connectionProvider = new default_connection_provider_js_1.DefaultConnectionProvider(runtimeDriver);
|
|
70
72
|
const executor = new default_query_executor_js_1.DefaultQueryExecutor(compiler, connectionProvider, args.plugins ?? []);
|
|
71
|
-
super({ executor,
|
|
73
|
+
super({ executor, parseContext });
|
|
72
74
|
this.#props = (0, object_utils_js_1.freeze)({
|
|
73
75
|
config: args,
|
|
74
76
|
executor,
|
|
75
|
-
adapter,
|
|
76
77
|
dialect,
|
|
77
78
|
driver,
|
|
79
|
+
parseContext,
|
|
78
80
|
});
|
|
79
81
|
}
|
|
80
82
|
}
|
|
@@ -88,7 +90,7 @@ class Kysely extends query_creator_js_1.QueryCreator {
|
|
|
88
90
|
* Returns the {@link MigrationModule} module for managing and running migrations.
|
|
89
91
|
*/
|
|
90
92
|
get migration() {
|
|
91
|
-
return new migration_js_1.MigrationModule(this, this.#props.adapter);
|
|
93
|
+
return new migration_js_1.MigrationModule(this, this.#props.parseContext.adapter);
|
|
92
94
|
}
|
|
93
95
|
/**
|
|
94
96
|
* Returns a the {@link DynamicModule} module.
|
|
@@ -189,7 +191,7 @@ class Kysely extends query_creator_js_1.QueryCreator {
|
|
|
189
191
|
* .execute(async (db) => {
|
|
190
192
|
* // `db` is an instance of `Kysely` that's bound to a single
|
|
191
193
|
* // database connection. All queries executed through `db` use
|
|
192
|
-
* // the same
|
|
194
|
+
* // the same connection.
|
|
193
195
|
* await doStuff(db)
|
|
194
196
|
* })
|
|
195
197
|
* ```
|
|
@@ -248,7 +250,7 @@ function isKyselyProps(obj) {
|
|
|
248
250
|
(0, object_utils_js_1.isObject)(obj.driver) &&
|
|
249
251
|
(0, object_utils_js_1.isObject)(obj.executor) &&
|
|
250
252
|
(0, object_utils_js_1.isObject)(obj.dialect) &&
|
|
251
|
-
(0, object_utils_js_1.isObject)(obj.
|
|
253
|
+
(0, object_utils_js_1.isObject)(obj.parseContext));
|
|
252
254
|
}
|
|
253
255
|
exports.isKyselyProps = isKyselyProps;
|
|
254
256
|
class ConnectionBuilder {
|
|
@@ -14,20 +14,21 @@ class MigrationModule {
|
|
|
14
14
|
this.#db = db;
|
|
15
15
|
this.#adapter = adapter;
|
|
16
16
|
}
|
|
17
|
-
async migrateToLatest(
|
|
17
|
+
async migrateToLatest(migrationsOrFolderPath) {
|
|
18
18
|
await ensureMigrationTablesExists(this.#db);
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
const allMigrations = await this.#getAllMigrations(migrationsOrFolderPath);
|
|
20
|
+
await this.#migrateToLatest(allMigrations);
|
|
21
|
+
}
|
|
22
|
+
async #getAllMigrations(migrationsOrFolderPath) {
|
|
23
|
+
return (0, object_utils_js_1.isString)(migrationsOrFolderPath)
|
|
24
|
+
? await readMigrationsFromFolder(migrationsOrFolderPath)
|
|
25
|
+
: migrationsOrFolderPath;
|
|
25
26
|
}
|
|
26
|
-
async #migrateToLatest(
|
|
27
|
+
async #migrateToLatest(allMigrations) {
|
|
27
28
|
const run = async (db) => {
|
|
28
29
|
try {
|
|
29
30
|
await this.#adapter.acquireMigrationLock(db);
|
|
30
|
-
await runNewMigrations(db,
|
|
31
|
+
await runNewMigrations(db, allMigrations);
|
|
31
32
|
}
|
|
32
33
|
finally {
|
|
33
34
|
await this.#adapter.releaseMigrationLock(db);
|
|
@@ -182,5 +183,5 @@ function ensureMigrationsAreNotCorrupted(executedMigrationNames, oldMigrationNam
|
|
|
182
183
|
}
|
|
183
184
|
}
|
|
184
185
|
function isMigration(obj) {
|
|
185
|
-
return obj && (0, object_utils_js_1.isFunction)(obj.up) && (0, object_utils_js_1.isFunction)(obj.down);
|
|
186
|
+
return (0, object_utils_js_1.isObject)(obj) && (0, object_utils_js_1.isFunction)(obj.up) && (0, object_utils_js_1.isFunction)(obj.down);
|
|
186
187
|
}
|
|
@@ -3,7 +3,7 @@ import { ColumnNode } from './column-node.js';
|
|
|
3
3
|
import { DataTypeNode } from './data-type-node.js';
|
|
4
4
|
import { ValueNode } from './value-node.js';
|
|
5
5
|
import { RawNode } from './raw-node.js';
|
|
6
|
-
export declare type
|
|
6
|
+
export declare type AlterColumnNodeProps = Omit<AlterColumnNode, 'kind' | 'column'>;
|
|
7
7
|
export interface AlterColumnNode extends OperationNode {
|
|
8
8
|
readonly kind: 'AlterColumnNode';
|
|
9
9
|
readonly column: ColumnNode;
|
|
@@ -20,5 +20,5 @@ export interface AlterColumnNode extends OperationNode {
|
|
|
20
20
|
export declare const AlterColumnNode: Readonly<{
|
|
21
21
|
is(node: OperationNode): node is AlterColumnNode;
|
|
22
22
|
create(column: string): AlterColumnNode;
|
|
23
|
-
cloneWith(node: AlterColumnNode,
|
|
23
|
+
cloneWith(node: AlterColumnNode, props: AlterColumnNodeProps): AlterColumnNode;
|
|
24
24
|
}>;
|
|
@@ -16,10 +16,10 @@ exports.AlterColumnNode = (0, object_utils_js_1.freeze)({
|
|
|
16
16
|
column: column_node_js_1.ColumnNode.create(column),
|
|
17
17
|
});
|
|
18
18
|
},
|
|
19
|
-
cloneWith(node,
|
|
19
|
+
cloneWith(node, props) {
|
|
20
20
|
return (0, object_utils_js_1.freeze)({
|
|
21
21
|
...node,
|
|
22
|
-
...
|
|
22
|
+
...props,
|
|
23
23
|
});
|
|
24
24
|
},
|
|
25
25
|
});
|
|
@@ -8,7 +8,7 @@ import { AlterColumnNode } from './alter-column-node.js';
|
|
|
8
8
|
import { AddConstraintNode } from './add-constraint-node.js';
|
|
9
9
|
import { DropConstraintNode } from './drop-constraint-node.js';
|
|
10
10
|
import { ModifyColumnNode } from './modify-column-node.js';
|
|
11
|
-
export declare type
|
|
11
|
+
export declare type AlterTableNodeProps = Omit<AlterTableNode, 'kind' | 'table'>;
|
|
12
12
|
export interface AlterTableNode extends OperationNode {
|
|
13
13
|
readonly kind: 'AlterTableNode';
|
|
14
14
|
readonly table: TableNode;
|
|
@@ -28,5 +28,5 @@ export interface AlterTableNode extends OperationNode {
|
|
|
28
28
|
export declare const AlterTableNode: Readonly<{
|
|
29
29
|
is(node: OperationNode): node is AlterTableNode;
|
|
30
30
|
create(table: string): AlterTableNode;
|
|
31
|
-
cloneWith(node: AlterTableNode,
|
|
31
|
+
cloneWith(node: AlterTableNode, props: AlterTableNodeProps): AlterTableNode;
|
|
32
32
|
}>;
|
|
@@ -16,10 +16,10 @@ exports.AlterTableNode = (0, object_utils_js_1.freeze)({
|
|
|
16
16
|
table: table_node_js_1.TableNode.create(table),
|
|
17
17
|
});
|
|
18
18
|
},
|
|
19
|
-
cloneWith(node,
|
|
19
|
+
cloneWith(node, props) {
|
|
20
20
|
return (0, object_utils_js_1.freeze)({
|
|
21
21
|
...node,
|
|
22
|
-
...
|
|
22
|
+
...props,
|
|
23
23
|
});
|
|
24
24
|
},
|
|
25
25
|
});
|
|
@@ -5,7 +5,7 @@ import { OperationNode } from './operation-node.js';
|
|
|
5
5
|
import { RawNode } from './raw-node.js';
|
|
6
6
|
import { ReferencesNode } from './references-node.js';
|
|
7
7
|
import { ValueNode } from './value-node.js';
|
|
8
|
-
export declare type
|
|
8
|
+
export declare type ColumnDefinitionNodeProps = Omit<Partial<ColumnDefinitionNode>, 'kind'>;
|
|
9
9
|
export declare type ColumnDataTypeNode = DataTypeNode | RawNode;
|
|
10
10
|
export interface ColumnDefinitionNode extends OperationNode {
|
|
11
11
|
readonly kind: 'ColumnDefinitionNode';
|
|
@@ -25,5 +25,5 @@ export interface ColumnDefinitionNode extends OperationNode {
|
|
|
25
25
|
export declare const ColumnDefinitionNode: Readonly<{
|
|
26
26
|
is(node: OperationNode): node is ColumnDefinitionNode;
|
|
27
27
|
create(column: string, dataType: ColumnDataTypeNode): ColumnDefinitionNode;
|
|
28
|
-
cloneWith(node: ColumnDefinitionNode,
|
|
28
|
+
cloneWith(node: ColumnDefinitionNode, props: ColumnDefinitionNodeProps): ColumnDefinitionNode;
|
|
29
29
|
}>;
|
|
@@ -21,10 +21,10 @@ exports.ColumnDefinitionNode = (0, object_utils_js_1.freeze)({
|
|
|
21
21
|
isNullable: true,
|
|
22
22
|
});
|
|
23
23
|
},
|
|
24
|
-
cloneWith(node,
|
|
24
|
+
cloneWith(node, props) {
|
|
25
25
|
return (0, object_utils_js_1.freeze)({
|
|
26
26
|
...node,
|
|
27
|
-
...
|
|
27
|
+
...props,
|
|
28
28
|
});
|
|
29
29
|
},
|
|
30
30
|
});
|
|
@@ -4,7 +4,7 @@ import { ListNode } from './list-node.js';
|
|
|
4
4
|
import { OperationNode } from './operation-node.js';
|
|
5
5
|
import { RawNode } from './raw-node.js';
|
|
6
6
|
import { TableNode } from './table-node.js';
|
|
7
|
-
export declare type
|
|
7
|
+
export declare type CreateIndexNodeProps = Omit<CreateIndexNode, 'kind' | 'name'>;
|
|
8
8
|
export declare type IndexType = 'btree' | 'hash' | 'gist' | 'gin';
|
|
9
9
|
export interface CreateIndexNode extends OperationNode {
|
|
10
10
|
readonly kind: 'CreateIndexNode';
|
|
@@ -20,5 +20,5 @@ export interface CreateIndexNode extends OperationNode {
|
|
|
20
20
|
export declare const CreateIndexNode: Readonly<{
|
|
21
21
|
is(node: OperationNode): node is CreateIndexNode;
|
|
22
22
|
create(name: string): CreateIndexNode;
|
|
23
|
-
cloneWith(node: CreateIndexNode,
|
|
23
|
+
cloneWith(node: CreateIndexNode, props: CreateIndexNodeProps): CreateIndexNode;
|
|
24
24
|
}>;
|
|
@@ -16,10 +16,10 @@ exports.CreateIndexNode = (0, object_utils_js_1.freeze)({
|
|
|
16
16
|
name: identifier_node_js_1.IdentifierNode.create(name),
|
|
17
17
|
});
|
|
18
18
|
},
|
|
19
|
-
cloneWith(node,
|
|
19
|
+
cloneWith(node, props) {
|
|
20
20
|
return (0, object_utils_js_1.freeze)({
|
|
21
21
|
...node,
|
|
22
|
-
...
|
|
22
|
+
...props,
|
|
23
23
|
});
|
|
24
24
|
},
|
|
25
25
|
});
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
2
|
import { TableNode } from './table-node.js';
|
|
3
|
+
import { ForeignKeyConstraintNode } from './foreign-key-constraint-node.js';
|
|
3
4
|
import { ConstraintNode } from './constraint-node.js';
|
|
4
5
|
import { ColumnDefinitionNode } from './column-definition-node.js';
|
|
5
6
|
export declare type CreateTableNodeModifier = 'IfNotExists';
|
|
@@ -21,5 +22,5 @@ export declare const CreateTableNode: Readonly<{
|
|
|
21
22
|
cloneWithPrimaryKeyConstraint(createTable: CreateTableNode, constraintName: string, columns: string[]): CreateTableNode;
|
|
22
23
|
cloneWithUniqueConstraint(createTable: CreateTableNode, constraintName: string, columns: string[]): CreateTableNode;
|
|
23
24
|
cloneWithCheckConstraint(createTable: CreateTableNode, constraintName: string, sql: string): CreateTableNode;
|
|
24
|
-
cloneWithForeignKeyConstraint(createTable: CreateTableNode,
|
|
25
|
+
cloneWithForeignKeyConstraint(createTable: CreateTableNode, constraint: ForeignKeyConstraintNode): CreateTableNode;
|
|
25
26
|
}>;
|
|
@@ -3,11 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.CreateTableNode = void 0;
|
|
4
4
|
const object_utils_js_1 = require("../util/object-utils.js");
|
|
5
5
|
const check_constraint_node_js_1 = require("./check-constraint-node.js");
|
|
6
|
-
const table_node_js_1 = require("./table-node.js");
|
|
7
6
|
const primary_constraint_node_js_1 = require("./primary-constraint-node.js");
|
|
8
7
|
const unique_constraint_node_js_1 = require("./unique-constraint-node.js");
|
|
9
|
-
const foreign_key_constraint_node_js_1 = require("./foreign-key-constraint-node.js");
|
|
10
|
-
const column_node_js_1 = require("./column-node.js");
|
|
11
8
|
/**
|
|
12
9
|
* @internal
|
|
13
10
|
*/
|
|
@@ -61,8 +58,7 @@ exports.CreateTableNode = (0, object_utils_js_1.freeze)({
|
|
|
61
58
|
: (0, object_utils_js_1.freeze)([constraint]),
|
|
62
59
|
});
|
|
63
60
|
},
|
|
64
|
-
cloneWithForeignKeyConstraint(createTable,
|
|
65
|
-
const constraint = foreign_key_constraint_node_js_1.ForeignKeyConstraintNode.create(sourceColumns.map(column_node_js_1.ColumnNode.create), table_node_js_1.TableNode.create(targetTable), targetColumns.map(column_node_js_1.ColumnNode.create), constraintName);
|
|
61
|
+
cloneWithForeignKeyConstraint(createTable, constraint) {
|
|
66
62
|
return (0, object_utils_js_1.freeze)({
|
|
67
63
|
...createTable,
|
|
68
64
|
constraints: createTable.constraints
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IdentifierNode } from './identifier-node.js';
|
|
2
2
|
import { OperationNode } from './operation-node.js';
|
|
3
3
|
import { TableNode } from './table-node.js';
|
|
4
|
-
export declare type
|
|
4
|
+
export declare type DropIndexNodeProps = Omit<DropIndexNode, 'kind' | 'name'>;
|
|
5
5
|
export declare type DropIndexNodeModifier = 'IfExists';
|
|
6
6
|
export interface DropIndexNode extends OperationNode {
|
|
7
7
|
readonly kind: 'DropIndexNode';
|
|
@@ -14,6 +14,6 @@ export interface DropIndexNode extends OperationNode {
|
|
|
14
14
|
*/
|
|
15
15
|
export declare const DropIndexNode: Readonly<{
|
|
16
16
|
is(node: OperationNode): node is DropIndexNode;
|
|
17
|
-
create(name: string, params?:
|
|
18
|
-
cloneWith(dropIndex: DropIndexNode,
|
|
17
|
+
create(name: string, params?: DropIndexNodeProps | undefined): DropIndexNode;
|
|
18
|
+
cloneWith(dropIndex: DropIndexNode, props: DropIndexNodeProps): DropIndexNode;
|
|
19
19
|
}>;
|