kysely 0.11.0 → 0.11.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/dialect/mysql/mysql-query-compiler.d.ts +0 -2
- package/dist/cjs/dialect/mysql/mysql-query-compiler.js +0 -6
- package/dist/cjs/dialect/postgres/postgres-query-compiler.d.ts +3 -0
- package/dist/cjs/dialect/postgres/postgres-query-compiler.js +9 -1
- package/dist/cjs/dialect/sqlite/sqlite-adapter.js +6 -2
- package/dist/cjs/dialect/sqlite/sqlite-driver.js +7 -7
- package/dist/cjs/dialect/sqlite/sqlite-introspector.js +19 -6
- package/dist/cjs/dialect/sqlite/sqlite-query-compiler.d.ts +2 -2
- package/dist/cjs/dialect/sqlite/sqlite-query-compiler.js +6 -6
- package/dist/cjs/driver/runtime-driver.js +1 -1
- package/dist/cjs/index.d.ts +38 -30
- package/dist/cjs/index.js +37 -29
- package/dist/cjs/kysely.d.ts +22 -6
- package/dist/cjs/operation-node/alias-node.d.ts +1 -1
- package/dist/cjs/operation-node/operation-node-utils.d.ts +1 -1
- package/dist/cjs/parser/filter-parser.d.ts +1 -0
- package/dist/cjs/parser/filter-parser.js +49 -52
- package/dist/cjs/parser/insert-values-parser.d.ts +6 -5
- package/dist/cjs/parser/insert-values-parser.js +11 -5
- package/dist/cjs/query-builder/join-builder.d.ts +3 -0
- package/dist/cjs/query-builder/query-builder.d.ts +22 -1
- package/dist/cjs/query-builder/query-builder.js +1 -1
- package/dist/cjs/util/dynamic-import.js +1 -1
- package/dist/cjs/util/log.d.ts +10 -8
- package/dist/cjs/util/log.js +29 -9
- package/dist/esm/dialect/mysql/mysql-query-compiler.d.ts +0 -2
- package/dist/esm/dialect/mysql/mysql-query-compiler.js +0 -6
- package/dist/esm/dialect/postgres/postgres-query-compiler.d.ts +3 -0
- package/dist/esm/dialect/postgres/postgres-query-compiler.js +9 -1
- package/dist/esm/dialect/sqlite/sqlite-adapter.js +6 -2
- package/dist/esm/dialect/sqlite/sqlite-driver.js +7 -7
- package/dist/esm/dialect/sqlite/sqlite-introspector.js +19 -6
- package/dist/esm/dialect/sqlite/sqlite-query-compiler.d.ts +2 -2
- package/dist/esm/dialect/sqlite/sqlite-query-compiler.js +6 -6
- package/dist/esm/driver/runtime-driver.js +1 -1
- package/dist/esm/index.d.ts +38 -30
- package/dist/esm/index.js +37 -29
- package/dist/esm/kysely.d.ts +22 -6
- package/dist/esm/operation-node/alias-node.d.ts +1 -1
- package/dist/esm/operation-node/operation-node-utils.d.ts +1 -1
- package/dist/esm/parser/filter-parser.d.ts +1 -0
- package/dist/esm/parser/filter-parser.js +48 -52
- package/dist/esm/parser/insert-values-parser.d.ts +6 -5
- package/dist/esm/parser/insert-values-parser.js +12 -6
- package/dist/esm/query-builder/join-builder.d.ts +3 -0
- package/dist/esm/query-builder/query-builder.d.ts +22 -1
- package/dist/esm/query-builder/query-builder.js +1 -1
- package/dist/esm/util/dynamic-import.js +1 -1
- package/dist/esm/util/log.d.ts +10 -8
- package/dist/esm/util/log.js +30 -10
- package/package.json +1 -1
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { DefaultQueryCompiler } from '../../query-compiler/default-query-compiler.js';
|
|
2
2
|
export declare class MysqlQueryCompiler extends DefaultQueryCompiler {
|
|
3
|
-
protected visitReturning(): void;
|
|
4
|
-
protected getSql(): string;
|
|
5
3
|
protected getCurrentParameterPlaceholder(): string;
|
|
6
4
|
protected getLeftIdentifierWrapper(): string;
|
|
7
5
|
protected getRightIdentifierWrapper(): string;
|
|
@@ -3,12 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.MysqlQueryCompiler = void 0;
|
|
4
4
|
const default_query_compiler_js_1 = require("../../query-compiler/default-query-compiler.js");
|
|
5
5
|
class MysqlQueryCompiler extends default_query_compiler_js_1.DefaultQueryCompiler {
|
|
6
|
-
visitReturning() {
|
|
7
|
-
// Do nothing.
|
|
8
|
-
}
|
|
9
|
-
getSql() {
|
|
10
|
-
return super.getSql().trimEnd();
|
|
11
|
-
}
|
|
12
6
|
getCurrentParameterPlaceholder() {
|
|
13
7
|
return '?';
|
|
14
8
|
}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import { DefaultQueryCompiler } from '../../query-compiler/default-query-compiler.js';
|
|
2
2
|
export declare class PostgresQueryCompiler extends DefaultQueryCompiler {
|
|
3
|
+
protected getCurrentParameterPlaceholder(): string;
|
|
4
|
+
protected getLeftIdentifierWrapper(): string;
|
|
5
|
+
protected getRightIdentifierWrapper(): string;
|
|
3
6
|
}
|
|
@@ -2,7 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PostgresQueryCompiler = void 0;
|
|
4
4
|
const default_query_compiler_js_1 = require("../../query-compiler/default-query-compiler.js");
|
|
5
|
-
// The default query compiler is for PostgreSQL.
|
|
6
5
|
class PostgresQueryCompiler extends default_query_compiler_js_1.DefaultQueryCompiler {
|
|
6
|
+
getCurrentParameterPlaceholder() {
|
|
7
|
+
return '$' + this.numParameters;
|
|
8
|
+
}
|
|
9
|
+
getLeftIdentifierWrapper() {
|
|
10
|
+
return '"';
|
|
11
|
+
}
|
|
12
|
+
getRightIdentifierWrapper() {
|
|
13
|
+
return '"';
|
|
14
|
+
}
|
|
7
15
|
}
|
|
8
16
|
exports.PostgresQueryCompiler = PostgresQueryCompiler;
|
|
@@ -9,10 +9,14 @@ class SqliteAdapter {
|
|
|
9
9
|
return false;
|
|
10
10
|
}
|
|
11
11
|
async acquireMigrationLock() {
|
|
12
|
-
//
|
|
12
|
+
// SQLite only has one connection that's reserved by the migration system
|
|
13
|
+
// for the whole time between acquireMigrationLock and releaseMigrationLock.
|
|
14
|
+
// We don't need to do anything here.
|
|
13
15
|
}
|
|
14
16
|
async releaseMigrationLock() {
|
|
15
|
-
//
|
|
17
|
+
// SQLite only has one connection that's reserved by the migration system
|
|
18
|
+
// for the whole time between acquireMigrationLock and releaseMigrationLock.
|
|
19
|
+
// We don't need to do anything here.
|
|
16
20
|
}
|
|
17
21
|
}
|
|
18
22
|
exports.SqliteAdapter = SqliteAdapter;
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.SqliteDriver = void 0;
|
|
4
4
|
const compiled_query_js_1 = require("../../query-compiler/compiled-query.js");
|
|
5
5
|
const dynamic_import_js_1 = require("../../util/dynamic-import.js");
|
|
6
|
+
const object_utils_js_1 = require("../../util/object-utils.js");
|
|
6
7
|
class SqliteDriver {
|
|
7
8
|
#config;
|
|
8
9
|
#connectionMutex = new ConnectionMutex();
|
|
@@ -19,16 +20,16 @@ class SqliteDriver {
|
|
|
19
20
|
// into javascript. You can check the built javascript code.
|
|
20
21
|
const DatabaseConstructor = await importBetterSqlite3Database();
|
|
21
22
|
const options = {};
|
|
22
|
-
if (
|
|
23
|
+
if ((0, object_utils_js_1.isBoolean)(this.#config.readonly)) {
|
|
23
24
|
options.readonly = this.#config.readonly;
|
|
24
25
|
}
|
|
25
|
-
if (
|
|
26
|
+
if ((0, object_utils_js_1.isBoolean)(this.#config.fileMustExist)) {
|
|
26
27
|
options.fileMustExist = this.#config.fileMustExist;
|
|
27
28
|
}
|
|
28
|
-
if (
|
|
29
|
+
if ((0, object_utils_js_1.isNumber)(this.#config.timeout)) {
|
|
29
30
|
options.timeout = this.#config.timeout;
|
|
30
31
|
}
|
|
31
|
-
if (
|
|
32
|
+
if ((0, object_utils_js_1.isFunction)(this.#config.verbose)) {
|
|
32
33
|
options.verbose = this.#config.verbose;
|
|
33
34
|
}
|
|
34
35
|
this.#db = new DatabaseConstructor(this.#config.databasePath, options);
|
|
@@ -38,8 +39,8 @@ class SqliteDriver {
|
|
|
38
39
|
}
|
|
39
40
|
}
|
|
40
41
|
async acquireConnection() {
|
|
41
|
-
//
|
|
42
|
-
//
|
|
42
|
+
// SQLite only has one single connection. We use a mutex here to wait
|
|
43
|
+
// until the single connection has been released.
|
|
43
44
|
await this.#connectionMutex.lock();
|
|
44
45
|
return this.#connection;
|
|
45
46
|
}
|
|
@@ -65,7 +66,6 @@ async function importBetterSqlite3Database() {
|
|
|
65
66
|
return await (0, dynamic_import_js_1.importFunction)('better-sqlite3');
|
|
66
67
|
}
|
|
67
68
|
catch (error) {
|
|
68
|
-
console.error(error);
|
|
69
69
|
throw new Error('SQLite client not installed. Please run `npm install better-sqlite3`');
|
|
70
70
|
}
|
|
71
71
|
}
|
|
@@ -12,18 +12,31 @@ class SqliteIntrospector {
|
|
|
12
12
|
.selectFrom('sqlite_schema')
|
|
13
13
|
.where('type', '=', 'table')
|
|
14
14
|
.where('name', 'not like', 'sqlite_%')
|
|
15
|
-
.select('name')
|
|
15
|
+
.select('name')
|
|
16
|
+
.castTo();
|
|
16
17
|
if (!options.withInternalKyselyTables) {
|
|
17
18
|
query = query
|
|
18
19
|
.where('name', '!=', migration_js_1.MIGRATION_TABLE)
|
|
19
20
|
.where('name', '!=', migration_js_1.MIGRATION_LOCK_TABLE);
|
|
20
21
|
}
|
|
21
|
-
const
|
|
22
|
+
const tables = await query.execute();
|
|
22
23
|
return {
|
|
23
|
-
tables:
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
tables: await Promise.all(tables.map(({ name }) => this.#getTableMetadata(name))),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
async #getTableMetadata(table) {
|
|
28
|
+
const db = this.#db;
|
|
29
|
+
const columns = await db
|
|
30
|
+
.selectFrom(db.raw(`PRAGMA_TABLE_INFO(?)`, [table]).as('table_info'))
|
|
31
|
+
.select(['name', 'type', 'notnull'])
|
|
32
|
+
.castTo()
|
|
33
|
+
.execute();
|
|
34
|
+
return {
|
|
35
|
+
name: table,
|
|
36
|
+
columns: columns.map((col) => ({
|
|
37
|
+
name: col.name,
|
|
38
|
+
dataType: col.type,
|
|
39
|
+
isNullable: !col.notnull,
|
|
27
40
|
})),
|
|
28
41
|
};
|
|
29
42
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DefaultQueryCompiler } from '../../query-compiler/default-query-compiler.js';
|
|
2
2
|
export declare class SqliteQueryCompiler extends DefaultQueryCompiler {
|
|
3
|
-
protected visitReturning(): void;
|
|
4
|
-
protected getSql(): string;
|
|
5
3
|
protected getCurrentParameterPlaceholder(): string;
|
|
4
|
+
protected getLeftIdentifierWrapper(): string;
|
|
5
|
+
protected getRightIdentifierWrapper(): string;
|
|
6
6
|
protected getAutoIncrement(): string;
|
|
7
7
|
}
|
|
@@ -3,15 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.SqliteQueryCompiler = void 0;
|
|
4
4
|
const default_query_compiler_js_1 = require("../../query-compiler/default-query-compiler.js");
|
|
5
5
|
class SqliteQueryCompiler extends default_query_compiler_js_1.DefaultQueryCompiler {
|
|
6
|
-
visitReturning() {
|
|
7
|
-
// Do nothing.
|
|
8
|
-
}
|
|
9
|
-
getSql() {
|
|
10
|
-
return super.getSql().trimEnd();
|
|
11
|
-
}
|
|
12
6
|
getCurrentParameterPlaceholder() {
|
|
13
7
|
return '?';
|
|
14
8
|
}
|
|
9
|
+
getLeftIdentifierWrapper() {
|
|
10
|
+
return '"';
|
|
11
|
+
}
|
|
12
|
+
getRightIdentifierWrapper() {
|
|
13
|
+
return '"';
|
|
14
|
+
}
|
|
15
15
|
getAutoIncrement() {
|
|
16
16
|
return 'autoincrement';
|
|
17
17
|
}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -51,35 +51,8 @@ export * from './migration/migration.js';
|
|
|
51
51
|
export * from './dialect/dialect.js';
|
|
52
52
|
export * from './dialect/dialect-adapter.js';
|
|
53
53
|
export * from './dialect/dialect-adapter-base.js';
|
|
54
|
-
export * from './operation-node/operation-node-transformer.js';
|
|
55
|
-
export * from './operation-node/operation-node-visitor.js';
|
|
56
54
|
export * from './plugin/kysely-plugin.js';
|
|
57
55
|
export * from './plugin/camel-case/camel-case-plugin.js';
|
|
58
|
-
export * from './operation-node/operation-node-transformer.js';
|
|
59
|
-
export * from './operation-node/operation-node-visitor.js';
|
|
60
|
-
export * from './operation-node/operator-node.js';
|
|
61
|
-
export * from './operation-node/or-node.js';
|
|
62
|
-
export * from './operation-node/order-by-item-node.js';
|
|
63
|
-
export * from './operation-node/order-by-node.js';
|
|
64
|
-
export * from './operation-node/parens-node.js';
|
|
65
|
-
export * from './operation-node/primary-constraint-node.js';
|
|
66
|
-
export * from './operation-node/primitive-value-list-node.js';
|
|
67
|
-
export * from './operation-node/query-node.js';
|
|
68
|
-
export * from './operation-node/raw-node.js';
|
|
69
|
-
export * from './operation-node/reference-node.js';
|
|
70
|
-
export * from './operation-node/references-node.js';
|
|
71
|
-
export * from './operation-node/rename-column-node.js';
|
|
72
|
-
export * from './operation-node/returning-node.js';
|
|
73
|
-
export * from './operation-node/select-all-node.js';
|
|
74
|
-
export * from './operation-node/select-query-node.js';
|
|
75
|
-
export * from './operation-node/selection-node.js';
|
|
76
|
-
export * from './operation-node/table-node.js';
|
|
77
|
-
export * from './operation-node/unique-constraint-node.js';
|
|
78
|
-
export * from './operation-node/update-query-node.js';
|
|
79
|
-
export * from './operation-node/value-list-node.js';
|
|
80
|
-
export * from './operation-node/value-node.js';
|
|
81
|
-
export * from './operation-node/where-node.js';
|
|
82
|
-
export * from './operation-node/with-node.js';
|
|
83
56
|
export * from './operation-node/add-column-node.js';
|
|
84
57
|
export * from './operation-node/add-constraint-node.js';
|
|
85
58
|
export * from './operation-node/alias-node.js';
|
|
@@ -95,16 +68,20 @@ export * from './operation-node/constraint-node.js';
|
|
|
95
68
|
export * from './operation-node/create-index-node.js';
|
|
96
69
|
export * from './operation-node/create-schema-node.js';
|
|
97
70
|
export * from './operation-node/create-table-node.js';
|
|
71
|
+
export * from './operation-node/create-view-node.js';
|
|
98
72
|
export * from './operation-node/data-type-node.js';
|
|
73
|
+
export * from './operation-node/default-value-node.js';
|
|
99
74
|
export * from './operation-node/delete-query-node.js';
|
|
100
75
|
export * from './operation-node/drop-column-node.js';
|
|
101
76
|
export * from './operation-node/drop-constraint-node.js';
|
|
102
77
|
export * from './operation-node/drop-index-node.js';
|
|
103
78
|
export * from './operation-node/drop-schema-node.js';
|
|
104
79
|
export * from './operation-node/drop-table-node.js';
|
|
80
|
+
export * from './operation-node/drop-view-node.js';
|
|
105
81
|
export * from './operation-node/filter-node.js';
|
|
106
82
|
export * from './operation-node/foreign-key-constraint-node.js';
|
|
107
83
|
export * from './operation-node/from-node.js';
|
|
84
|
+
export * from './operation-node/generated-always-as-node.js';
|
|
108
85
|
export * from './operation-node/group-by-item-node.js';
|
|
109
86
|
export * from './operation-node/group-by-node.js';
|
|
110
87
|
export * from './operation-node/having-node.js';
|
|
@@ -113,19 +90,50 @@ export * from './operation-node/insert-query-node.js';
|
|
|
113
90
|
export * from './operation-node/join-node.js';
|
|
114
91
|
export * from './operation-node/limit-node.js';
|
|
115
92
|
export * from './operation-node/list-node.js';
|
|
93
|
+
export * from './operation-node/modify-column-node.js';
|
|
116
94
|
export * from './operation-node/offset-node.js';
|
|
117
|
-
export * from './operation-node
|
|
118
|
-
export * from './operation-node/
|
|
95
|
+
export * from './operation-node/on-conflict-node.js';
|
|
96
|
+
export * from './operation-node/on-duplicate-key-node.js';
|
|
97
|
+
export * from './operation-node/on-node.js';
|
|
119
98
|
export * from './operation-node/operation-node-source.js';
|
|
99
|
+
export * from './operation-node/operation-node-transformer.js';
|
|
100
|
+
export * from './operation-node/operation-node-utils.js';
|
|
101
|
+
export * from './operation-node/operation-node-visitor.js';
|
|
102
|
+
export * from './operation-node/operation-node.js';
|
|
103
|
+
export * from './operation-node/operator-node.js';
|
|
104
|
+
export * from './operation-node/or-node.js';
|
|
105
|
+
export * from './operation-node/order-by-item-node.js';
|
|
120
106
|
export * from './operation-node/order-by-node.js';
|
|
107
|
+
export * from './operation-node/parens-node.js';
|
|
108
|
+
export * from './operation-node/primary-constraint-node.js';
|
|
109
|
+
export * from './operation-node/primitive-value-list-node.js';
|
|
110
|
+
export * from './operation-node/query-node.js';
|
|
111
|
+
export * from './operation-node/raw-node.js';
|
|
112
|
+
export * from './operation-node/reference-node.js';
|
|
113
|
+
export * from './operation-node/references-node.js';
|
|
114
|
+
export * from './operation-node/rename-column-node.js';
|
|
115
|
+
export * from './operation-node/returning-node.js';
|
|
116
|
+
export * from './operation-node/select-all-node.js';
|
|
117
|
+
export * from './operation-node/select-query-node.js';
|
|
118
|
+
export * from './operation-node/select-query-node.js';
|
|
119
|
+
export * from './operation-node/selection-node.js';
|
|
120
|
+
export * from './operation-node/table-node.js';
|
|
121
|
+
export * from './operation-node/union-node.js';
|
|
122
|
+
export * from './operation-node/unique-constraint-node.js';
|
|
123
|
+
export * from './operation-node/update-query-node.js';
|
|
124
|
+
export * from './operation-node/value-list-node.js';
|
|
125
|
+
export * from './operation-node/value-node.js';
|
|
126
|
+
export * from './operation-node/where-node.js';
|
|
127
|
+
export * from './operation-node/with-node.js';
|
|
121
128
|
export * from './introspection/database-introspector.js';
|
|
122
129
|
export * from './util/compilable.js';
|
|
130
|
+
export * from './util/log.js';
|
|
123
131
|
export { AnyColumn, UnknownRow, AnyQueryBuilder } from './util/type-utils.js';
|
|
124
132
|
export { SelectExpression, SelectExpressionOrList, } from './parser/select-parser.js';
|
|
125
133
|
export { ReferenceExpression, ReferenceExpressionOrList, } from './parser/reference-parser.js';
|
|
126
134
|
export { ValueExpression, ValueExpressionOrList, } from './parser/value-parser.js';
|
|
127
135
|
export { ExistsExpression, FilterOperator } from './parser/filter-parser.js';
|
|
128
|
-
export { TableExpression } from './parser/table-parser.js';
|
|
136
|
+
export { TableExpression, TableExpressionOrList, } from './parser/table-parser.js';
|
|
129
137
|
export { JoinReferenceExpression, JoinCallbackExpression, } from './parser/join-parser.js';
|
|
130
138
|
export { InsertObject } from './parser/insert-values-parser.js';
|
|
131
139
|
export { MutationObject } from './parser/update-set-parser.js';
|
package/dist/cjs/index.js
CHANGED
|
@@ -63,35 +63,8 @@ __exportStar(require("./migration/migration.js"), exports);
|
|
|
63
63
|
__exportStar(require("./dialect/dialect.js"), exports);
|
|
64
64
|
__exportStar(require("./dialect/dialect-adapter.js"), exports);
|
|
65
65
|
__exportStar(require("./dialect/dialect-adapter-base.js"), exports);
|
|
66
|
-
__exportStar(require("./operation-node/operation-node-transformer.js"), exports);
|
|
67
|
-
__exportStar(require("./operation-node/operation-node-visitor.js"), exports);
|
|
68
66
|
__exportStar(require("./plugin/kysely-plugin.js"), exports);
|
|
69
67
|
__exportStar(require("./plugin/camel-case/camel-case-plugin.js"), exports);
|
|
70
|
-
__exportStar(require("./operation-node/operation-node-transformer.js"), exports);
|
|
71
|
-
__exportStar(require("./operation-node/operation-node-visitor.js"), exports);
|
|
72
|
-
__exportStar(require("./operation-node/operator-node.js"), exports);
|
|
73
|
-
__exportStar(require("./operation-node/or-node.js"), exports);
|
|
74
|
-
__exportStar(require("./operation-node/order-by-item-node.js"), exports);
|
|
75
|
-
__exportStar(require("./operation-node/order-by-node.js"), exports);
|
|
76
|
-
__exportStar(require("./operation-node/parens-node.js"), exports);
|
|
77
|
-
__exportStar(require("./operation-node/primary-constraint-node.js"), exports);
|
|
78
|
-
__exportStar(require("./operation-node/primitive-value-list-node.js"), exports);
|
|
79
|
-
__exportStar(require("./operation-node/query-node.js"), exports);
|
|
80
|
-
__exportStar(require("./operation-node/raw-node.js"), exports);
|
|
81
|
-
__exportStar(require("./operation-node/reference-node.js"), exports);
|
|
82
|
-
__exportStar(require("./operation-node/references-node.js"), exports);
|
|
83
|
-
__exportStar(require("./operation-node/rename-column-node.js"), exports);
|
|
84
|
-
__exportStar(require("./operation-node/returning-node.js"), exports);
|
|
85
|
-
__exportStar(require("./operation-node/select-all-node.js"), exports);
|
|
86
|
-
__exportStar(require("./operation-node/select-query-node.js"), exports);
|
|
87
|
-
__exportStar(require("./operation-node/selection-node.js"), exports);
|
|
88
|
-
__exportStar(require("./operation-node/table-node.js"), exports);
|
|
89
|
-
__exportStar(require("./operation-node/unique-constraint-node.js"), exports);
|
|
90
|
-
__exportStar(require("./operation-node/update-query-node.js"), exports);
|
|
91
|
-
__exportStar(require("./operation-node/value-list-node.js"), exports);
|
|
92
|
-
__exportStar(require("./operation-node/value-node.js"), exports);
|
|
93
|
-
__exportStar(require("./operation-node/where-node.js"), exports);
|
|
94
|
-
__exportStar(require("./operation-node/with-node.js"), exports);
|
|
95
68
|
__exportStar(require("./operation-node/add-column-node.js"), exports);
|
|
96
69
|
__exportStar(require("./operation-node/add-constraint-node.js"), exports);
|
|
97
70
|
__exportStar(require("./operation-node/alias-node.js"), exports);
|
|
@@ -107,16 +80,20 @@ __exportStar(require("./operation-node/constraint-node.js"), exports);
|
|
|
107
80
|
__exportStar(require("./operation-node/create-index-node.js"), exports);
|
|
108
81
|
__exportStar(require("./operation-node/create-schema-node.js"), exports);
|
|
109
82
|
__exportStar(require("./operation-node/create-table-node.js"), exports);
|
|
83
|
+
__exportStar(require("./operation-node/create-view-node.js"), exports);
|
|
110
84
|
__exportStar(require("./operation-node/data-type-node.js"), exports);
|
|
85
|
+
__exportStar(require("./operation-node/default-value-node.js"), exports);
|
|
111
86
|
__exportStar(require("./operation-node/delete-query-node.js"), exports);
|
|
112
87
|
__exportStar(require("./operation-node/drop-column-node.js"), exports);
|
|
113
88
|
__exportStar(require("./operation-node/drop-constraint-node.js"), exports);
|
|
114
89
|
__exportStar(require("./operation-node/drop-index-node.js"), exports);
|
|
115
90
|
__exportStar(require("./operation-node/drop-schema-node.js"), exports);
|
|
116
91
|
__exportStar(require("./operation-node/drop-table-node.js"), exports);
|
|
92
|
+
__exportStar(require("./operation-node/drop-view-node.js"), exports);
|
|
117
93
|
__exportStar(require("./operation-node/filter-node.js"), exports);
|
|
118
94
|
__exportStar(require("./operation-node/foreign-key-constraint-node.js"), exports);
|
|
119
95
|
__exportStar(require("./operation-node/from-node.js"), exports);
|
|
96
|
+
__exportStar(require("./operation-node/generated-always-as-node.js"), exports);
|
|
120
97
|
__exportStar(require("./operation-node/group-by-item-node.js"), exports);
|
|
121
98
|
__exportStar(require("./operation-node/group-by-node.js"), exports);
|
|
122
99
|
__exportStar(require("./operation-node/having-node.js"), exports);
|
|
@@ -125,10 +102,41 @@ __exportStar(require("./operation-node/insert-query-node.js"), exports);
|
|
|
125
102
|
__exportStar(require("./operation-node/join-node.js"), exports);
|
|
126
103
|
__exportStar(require("./operation-node/limit-node.js"), exports);
|
|
127
104
|
__exportStar(require("./operation-node/list-node.js"), exports);
|
|
105
|
+
__exportStar(require("./operation-node/modify-column-node.js"), exports);
|
|
128
106
|
__exportStar(require("./operation-node/offset-node.js"), exports);
|
|
129
|
-
__exportStar(require("./operation-node
|
|
130
|
-
__exportStar(require("./operation-node/
|
|
107
|
+
__exportStar(require("./operation-node/on-conflict-node.js"), exports);
|
|
108
|
+
__exportStar(require("./operation-node/on-duplicate-key-node.js"), exports);
|
|
109
|
+
__exportStar(require("./operation-node/on-node.js"), exports);
|
|
131
110
|
__exportStar(require("./operation-node/operation-node-source.js"), exports);
|
|
111
|
+
__exportStar(require("./operation-node/operation-node-transformer.js"), exports);
|
|
112
|
+
__exportStar(require("./operation-node/operation-node-utils.js"), exports);
|
|
113
|
+
__exportStar(require("./operation-node/operation-node-visitor.js"), exports);
|
|
114
|
+
__exportStar(require("./operation-node/operation-node.js"), exports);
|
|
115
|
+
__exportStar(require("./operation-node/operator-node.js"), exports);
|
|
116
|
+
__exportStar(require("./operation-node/or-node.js"), exports);
|
|
117
|
+
__exportStar(require("./operation-node/order-by-item-node.js"), exports);
|
|
132
118
|
__exportStar(require("./operation-node/order-by-node.js"), exports);
|
|
119
|
+
__exportStar(require("./operation-node/parens-node.js"), exports);
|
|
120
|
+
__exportStar(require("./operation-node/primary-constraint-node.js"), exports);
|
|
121
|
+
__exportStar(require("./operation-node/primitive-value-list-node.js"), exports);
|
|
122
|
+
__exportStar(require("./operation-node/query-node.js"), exports);
|
|
123
|
+
__exportStar(require("./operation-node/raw-node.js"), exports);
|
|
124
|
+
__exportStar(require("./operation-node/reference-node.js"), exports);
|
|
125
|
+
__exportStar(require("./operation-node/references-node.js"), exports);
|
|
126
|
+
__exportStar(require("./operation-node/rename-column-node.js"), exports);
|
|
127
|
+
__exportStar(require("./operation-node/returning-node.js"), exports);
|
|
128
|
+
__exportStar(require("./operation-node/select-all-node.js"), exports);
|
|
129
|
+
__exportStar(require("./operation-node/select-query-node.js"), exports);
|
|
130
|
+
__exportStar(require("./operation-node/select-query-node.js"), exports);
|
|
131
|
+
__exportStar(require("./operation-node/selection-node.js"), exports);
|
|
132
|
+
__exportStar(require("./operation-node/table-node.js"), exports);
|
|
133
|
+
__exportStar(require("./operation-node/union-node.js"), exports);
|
|
134
|
+
__exportStar(require("./operation-node/unique-constraint-node.js"), exports);
|
|
135
|
+
__exportStar(require("./operation-node/update-query-node.js"), exports);
|
|
136
|
+
__exportStar(require("./operation-node/value-list-node.js"), exports);
|
|
137
|
+
__exportStar(require("./operation-node/value-node.js"), exports);
|
|
138
|
+
__exportStar(require("./operation-node/where-node.js"), exports);
|
|
139
|
+
__exportStar(require("./operation-node/with-node.js"), exports);
|
|
133
140
|
__exportStar(require("./introspection/database-introspector.js"), exports);
|
|
134
141
|
__exportStar(require("./util/compilable.js"), exports);
|
|
142
|
+
__exportStar(require("./util/log.js"), exports);
|
package/dist/cjs/kysely.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ import { DatabaseIntrospector } from './introspection/database-introspector.js';
|
|
|
10
10
|
import { Driver, IsolationLevel } from './driver/driver.js';
|
|
11
11
|
import { ParseContext } from './parser/parse-context.js';
|
|
12
12
|
import { FunctionBuilder } from './query-builder/function-builder.js';
|
|
13
|
-
import {
|
|
13
|
+
import { LogConfig } from './util/log.js';
|
|
14
14
|
/**
|
|
15
15
|
* The main Kysely class.
|
|
16
16
|
*
|
|
@@ -235,17 +235,33 @@ export interface KyselyConfig {
|
|
|
235
235
|
readonly dialect: Dialect;
|
|
236
236
|
readonly plugins?: KyselyPlugin[];
|
|
237
237
|
/**
|
|
238
|
-
* A list of log levels to log.
|
|
238
|
+
* A list of log levels to log or a custom logger function.
|
|
239
239
|
*
|
|
240
240
|
* Currently there's only two levels: `query` and `error`.
|
|
241
241
|
* This will be expanded based on user feedback later.
|
|
242
242
|
*
|
|
243
|
-
*
|
|
243
|
+
* @example
|
|
244
|
+
* ```ts
|
|
245
|
+
* const db = new Kysely<Database>({
|
|
246
|
+
* dialect: new PostgresDialect(postgresConfig),
|
|
247
|
+
* log: ['query', 'error']
|
|
248
|
+
* })
|
|
249
|
+
* ```
|
|
244
250
|
*
|
|
245
|
-
*
|
|
246
|
-
*
|
|
251
|
+
* @example
|
|
252
|
+
* ```ts
|
|
253
|
+
* const db = new Kysely<Database>({
|
|
254
|
+
* dialect: new PostgresDialect(postgresConfig),
|
|
255
|
+
* log(event): void {
|
|
256
|
+
* if (event.level === 'query') {
|
|
257
|
+
* console.log(event.query.sql)
|
|
258
|
+
* console.log(event.query.parameters)
|
|
259
|
+
* }
|
|
260
|
+
* }
|
|
261
|
+
* })
|
|
262
|
+
* ```
|
|
247
263
|
*/
|
|
248
|
-
readonly log?:
|
|
264
|
+
readonly log?: LogConfig;
|
|
249
265
|
}
|
|
250
266
|
export declare class ConnectionBuilder<DB> {
|
|
251
267
|
#private;
|
|
@@ -5,7 +5,7 @@ import { RawNode } from './raw-node.js';
|
|
|
5
5
|
import { ReferenceNode } from './reference-node.js';
|
|
6
6
|
import { SelectQueryNode } from './select-query-node.js';
|
|
7
7
|
import { TableNode } from './table-node.js';
|
|
8
|
-
export declare type AliasNodeChild = ColumnNode | ReferenceNode | TableNode |
|
|
8
|
+
export declare type AliasNodeChild = ColumnNode | ReferenceNode | TableNode | SelectQueryNode | RawNode;
|
|
9
9
|
export interface AliasNode extends OperationNode {
|
|
10
10
|
readonly kind: 'AliasNode';
|
|
11
11
|
readonly node: AliasNodeChild;
|
|
@@ -14,4 +14,4 @@ import { ValueNode } from './value-node.js';
|
|
|
14
14
|
export declare type ReferenceExpressionNode = ColumnNode | ReferenceNode | SelectQueryNode | RawNode;
|
|
15
15
|
export declare type ValueExpressionNode = ValueNode | ValueListNode | PrimitiveValueListNode | ReferenceExpressionNode;
|
|
16
16
|
export declare type TableExpressionNode = TableNode | AliasNode;
|
|
17
|
-
export declare type FilterExpressionNode = FilterNode | AndNode | OrNode | ParensNode;
|
|
17
|
+
export declare type FilterExpressionNode = FilterNode | AndNode | OrNode | ParensNode | RawNode;
|
|
@@ -12,3 +12,4 @@ export declare function parseOnFilter(ctx: ParseContext, args: any[]): FilterExp
|
|
|
12
12
|
export declare function parseReferenceFilter(ctx: ParseContext, lhs: ReferenceExpression<any, any>, op: FilterOperator, rhs: ReferenceExpression<any, any>): FilterNode;
|
|
13
13
|
export declare function parseExistFilter(ctx: ParseContext, arg: ExistsExpression<any, any>): FilterNode;
|
|
14
14
|
export declare function parseNotExistFilter(ctx: ParseContext, arg: ExistsExpression<any, any>): FilterNode;
|
|
15
|
+
export declare function parseFilter(ctx: ParseContext, type: 'where' | 'having' | 'on', args: any[]): FilterExpressionNode;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseNotExistFilter = exports.parseExistFilter = exports.parseReferenceFilter = exports.parseOnFilter = exports.parseHavingFilter = exports.parseWhereFilter = void 0;
|
|
3
|
+
exports.parseFilter = exports.parseNotExistFilter = exports.parseExistFilter = exports.parseReferenceFilter = exports.parseOnFilter = exports.parseHavingFilter = exports.parseWhereFilter = void 0;
|
|
4
4
|
const filter_node_js_1 = require("../operation-node/filter-node.js");
|
|
5
5
|
const object_utils_js_1 = require("../util/object-utils.js");
|
|
6
6
|
const operation_node_source_js_1 = require("../operation-node/operation-node-source.js");
|
|
@@ -12,39 +12,15 @@ const value_parser_js_1 = require("./value-parser.js");
|
|
|
12
12
|
const select_query_node_js_1 = require("../operation-node/select-query-node.js");
|
|
13
13
|
const value_node_js_1 = require("../operation-node/value-node.js");
|
|
14
14
|
function parseWhereFilter(ctx, args) {
|
|
15
|
-
|
|
16
|
-
return parseThreeArgFilter(ctx, args[0], args[1], args[2]);
|
|
17
|
-
}
|
|
18
|
-
else if (args.length === 1 && (0, object_utils_js_1.isFunction)(args[0])) {
|
|
19
|
-
return parseWhereGroup(ctx, args[0]);
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
throw new Error(`invalid arguments passed to a where method ${JSON.stringify(args)}`);
|
|
23
|
-
}
|
|
15
|
+
return parseFilter(ctx, 'where', args);
|
|
24
16
|
}
|
|
25
17
|
exports.parseWhereFilter = parseWhereFilter;
|
|
26
18
|
function parseHavingFilter(ctx, args) {
|
|
27
|
-
|
|
28
|
-
return parseThreeArgFilter(ctx, args[0], args[1], args[2]);
|
|
29
|
-
}
|
|
30
|
-
else if (args.length === 1 && (0, object_utils_js_1.isFunction)(args[0])) {
|
|
31
|
-
return parseHavingGroup(ctx, args[0]);
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
throw new Error(`invalid arguments passed to a having method ${JSON.stringify(args)}`);
|
|
35
|
-
}
|
|
19
|
+
return parseFilter(ctx, 'having', args);
|
|
36
20
|
}
|
|
37
21
|
exports.parseHavingFilter = parseHavingFilter;
|
|
38
22
|
function parseOnFilter(ctx, args) {
|
|
39
|
-
|
|
40
|
-
return parseThreeArgFilter(ctx, args[0], args[1], args[2]);
|
|
41
|
-
}
|
|
42
|
-
else if (args.length === 1 && (0, object_utils_js_1.isFunction)(args[0])) {
|
|
43
|
-
return parseOnGroup(ctx, args[0]);
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
throw new Error(`invalid arguments passed to an on method ${JSON.stringify(args)}`);
|
|
47
|
-
}
|
|
23
|
+
return parseFilter(ctx, 'on', args);
|
|
48
24
|
}
|
|
49
25
|
exports.parseOnFilter = parseOnFilter;
|
|
50
26
|
function parseReferenceFilter(ctx, lhs, op, rhs) {
|
|
@@ -59,6 +35,25 @@ function parseNotExistFilter(ctx, arg) {
|
|
|
59
35
|
return parseExistExpression(ctx, 'not exists', arg);
|
|
60
36
|
}
|
|
61
37
|
exports.parseNotExistFilter = parseNotExistFilter;
|
|
38
|
+
function parseFilter(ctx, type, args) {
|
|
39
|
+
if (args.length === 3) {
|
|
40
|
+
return parseThreeArgFilter(ctx, args[0], args[1], args[2]);
|
|
41
|
+
}
|
|
42
|
+
else if (args.length === 1) {
|
|
43
|
+
const arg = args[0];
|
|
44
|
+
if ((0, object_utils_js_1.isFunction)(arg)) {
|
|
45
|
+
return GROUP_PARSERS[type](ctx, arg);
|
|
46
|
+
}
|
|
47
|
+
else if ((0, operation_node_source_js_1.isOperationNodeSource)(arg)) {
|
|
48
|
+
const node = arg.toOperationNode();
|
|
49
|
+
if (raw_node_js_1.RawNode.is(node)) {
|
|
50
|
+
return node;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
throw new Error(`invalid arguments passed to a '${type}' method: ${JSON.stringify(args)}`);
|
|
55
|
+
}
|
|
56
|
+
exports.parseFilter = parseFilter;
|
|
62
57
|
function parseThreeArgFilter(ctx, left, op, right) {
|
|
63
58
|
if ((op === 'is' || op === 'is not') && ((0, object_utils_js_1.isNull)(right) || (0, object_utils_js_1.isBoolean)(right))) {
|
|
64
59
|
return parseIsFilter(ctx, left, op, right);
|
|
@@ -79,30 +74,6 @@ function parseFilterOperator(op) {
|
|
|
79
74
|
}
|
|
80
75
|
throw new Error(`invalid comparison operator ${JSON.stringify(op)} passed to a filter method`);
|
|
81
76
|
}
|
|
82
|
-
function parseWhereGroup(ctx, callback) {
|
|
83
|
-
const query = callback(ctx.createSelectQueryBuilder([]));
|
|
84
|
-
const queryNode = query.toOperationNode();
|
|
85
|
-
if (!queryNode.where) {
|
|
86
|
-
throw new Error('no `where*` methods called insided a group callback');
|
|
87
|
-
}
|
|
88
|
-
return parens_node_js_1.ParensNode.create(queryNode.where.where);
|
|
89
|
-
}
|
|
90
|
-
function parseHavingGroup(ctx, callback) {
|
|
91
|
-
const query = callback(ctx.createSelectQueryBuilder([]));
|
|
92
|
-
const queryNode = query.toOperationNode();
|
|
93
|
-
if (!queryNode.having) {
|
|
94
|
-
throw new Error('no `having*` methods called insided a group callback');
|
|
95
|
-
}
|
|
96
|
-
return parens_node_js_1.ParensNode.create(queryNode.having.having);
|
|
97
|
-
}
|
|
98
|
-
function parseOnGroup(ctx, callback) {
|
|
99
|
-
const joinBuilder = callback(ctx.createJoinBuilder('InnerJoin', 'table'));
|
|
100
|
-
const joinNode = joinBuilder.toOperationNode();
|
|
101
|
-
if (!joinNode.on) {
|
|
102
|
-
throw new Error('no `on*` methods called insided a group callback');
|
|
103
|
-
}
|
|
104
|
-
return parens_node_js_1.ParensNode.create(joinNode.on.on);
|
|
105
|
-
}
|
|
106
77
|
function parseExistExpression(ctx, type, arg) {
|
|
107
78
|
const node = (0, object_utils_js_1.isFunction)(arg)
|
|
108
79
|
? arg(ctx.createExpressionBuilder()).toOperationNode()
|
|
@@ -112,3 +83,29 @@ function parseExistExpression(ctx, type, arg) {
|
|
|
112
83
|
}
|
|
113
84
|
return filter_node_js_1.FilterNode.create(undefined, operator_node_js_1.OperatorNode.create(type), node);
|
|
114
85
|
}
|
|
86
|
+
const GROUP_PARSERS = (0, object_utils_js_1.freeze)({
|
|
87
|
+
where(ctx, callback) {
|
|
88
|
+
const query = callback(ctx.createSelectQueryBuilder([]));
|
|
89
|
+
const queryNode = query.toOperationNode();
|
|
90
|
+
if (!queryNode.where) {
|
|
91
|
+
throw new Error('no `where` methods called insided a group callback');
|
|
92
|
+
}
|
|
93
|
+
return parens_node_js_1.ParensNode.create(queryNode.where.where);
|
|
94
|
+
},
|
|
95
|
+
having(ctx, callback) {
|
|
96
|
+
const query = callback(ctx.createSelectQueryBuilder([]));
|
|
97
|
+
const queryNode = query.toOperationNode();
|
|
98
|
+
if (!queryNode.having) {
|
|
99
|
+
throw new Error('no `having` methods called insided a group callback');
|
|
100
|
+
}
|
|
101
|
+
return parens_node_js_1.ParensNode.create(queryNode.having.having);
|
|
102
|
+
},
|
|
103
|
+
on(ctx, callback) {
|
|
104
|
+
const joinBuilder = callback(ctx.createJoinBuilder('InnerJoin', 'table'));
|
|
105
|
+
const joinNode = joinBuilder.toOperationNode();
|
|
106
|
+
if (!joinNode.on) {
|
|
107
|
+
throw new Error('no `on` methods called insided a group callback');
|
|
108
|
+
}
|
|
109
|
+
return parens_node_js_1.ParensNode.create(joinNode.on.on);
|
|
110
|
+
},
|
|
111
|
+
});
|
|
@@ -3,13 +3,14 @@ import { InsertValuesNode } from '../operation-node/insert-query-node.js';
|
|
|
3
3
|
import { RawNode } from '../operation-node/raw-node.js';
|
|
4
4
|
import { SelectQueryNode } from '../operation-node/select-query-node.js';
|
|
5
5
|
import { ValueNode } from '../operation-node/value-node.js';
|
|
6
|
-
import { AnyQueryBuilder, AnyRawBuilder, GeneratedPlaceholder } from '../util/type-utils.js';
|
|
6
|
+
import { AnyQueryBuilder, AnyRawBuilder, GeneratedPlaceholder, QueryBuilderFactory, RawBuilderFactory } from '../util/type-utils.js';
|
|
7
7
|
import { PrimitiveValue } from '../util/object-utils.js';
|
|
8
|
+
import { ParseContext } from './parse-context.js';
|
|
8
9
|
export declare type InsertObject<DB, TB extends keyof DB> = {
|
|
9
|
-
[C in keyof DB[TB]]: InsertValueExpression<DB[TB][C]>;
|
|
10
|
+
[C in keyof DB[TB]]: InsertValueExpression<DB, TB, DB[TB][C]>;
|
|
10
11
|
};
|
|
11
12
|
export declare type InsertObjectOrList<DB, TB extends keyof DB> = InsertObject<DB, TB> | ReadonlyArray<InsertObject<DB, TB>>;
|
|
12
|
-
declare type InsertValueExpression<T> = T | AnyQueryBuilder | AnyRawBuilder | GeneratedPlaceholder;
|
|
13
|
-
export declare function parseInsertObjectOrList(args: InsertObjectOrList<any, any>): [ReadonlyArray<ColumnNode>, ReadonlyArray<InsertValuesNode>];
|
|
14
|
-
export declare function parseInsertValueExpression(value: InsertValueExpression<PrimitiveValue>): ValueNode | RawNode | SelectQueryNode;
|
|
13
|
+
declare type InsertValueExpression<DB, TB extends keyof DB, T> = T | AnyQueryBuilder | QueryBuilderFactory<DB, TB> | AnyRawBuilder | RawBuilderFactory<DB, TB> | GeneratedPlaceholder;
|
|
14
|
+
export declare function parseInsertObjectOrList(ctx: ParseContext, args: InsertObjectOrList<any, any>): [ReadonlyArray<ColumnNode>, ReadonlyArray<InsertValuesNode>];
|
|
15
|
+
export declare function parseInsertValueExpression(ctx: ParseContext, value: InsertValueExpression<any, any, PrimitiveValue>): ValueNode | RawNode | SelectQueryNode;
|
|
15
16
|
export {};
|