kysely 0.27.3 → 0.27.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/CONTRIBUTING.md +1 -1
- package/README.md +7 -7
- package/dist/cjs/dialect/dialect-adapter-base.d.ts +2 -1
- package/dist/cjs/dialect/dialect-adapter-base.js +4 -1
- package/dist/cjs/dialect/dialect-adapter.d.ts +5 -0
- package/dist/cjs/dialect/mssql/mssql-adapter.d.ts +1 -5
- package/dist/cjs/dialect/mssql/mssql-adapter.js +2 -4
- package/dist/cjs/dialect/mssql/mssql-dialect-config.d.ts +46 -26
- package/dist/cjs/dialect/mssql/mssql-driver.d.ts +1 -0
- package/dist/cjs/dialect/mssql/mssql-driver.js +95 -36
- package/dist/cjs/dialect/postgres/postgres-introspector.js +1 -1
- package/dist/cjs/driver/database-connection.d.ts +3 -1
- package/dist/cjs/dynamic/dynamic-reference-builder.js +2 -2
- package/dist/cjs/dynamic/dynamic.d.ts +1 -1
- package/dist/cjs/dynamic/dynamic.js +1 -1
- package/dist/cjs/expression/expression-builder.d.ts +2 -2
- package/dist/cjs/expression/expression-builder.js +2 -3
- package/dist/cjs/expression/expression.js +2 -3
- package/dist/cjs/helpers/mssql.js +3 -4
- package/dist/cjs/helpers/mysql.d.ts +3 -3
- package/dist/cjs/helpers/mysql.js +6 -7
- package/dist/cjs/helpers/postgres.d.ts +4 -4
- package/dist/cjs/helpers/postgres.js +7 -8
- package/dist/cjs/helpers/sqlite.js +3 -4
- package/dist/cjs/index.d.ts +28 -21
- package/dist/cjs/index.js +28 -21
- package/dist/cjs/kysely.d.ts +1 -1
- package/dist/cjs/kysely.js +3 -3
- package/dist/cjs/operation-node/alter-column-node.d.ts +1 -1
- package/dist/cjs/operation-node/case-node.d.ts +1 -1
- package/dist/cjs/operation-node/column-definition-node.d.ts +1 -0
- package/dist/cjs/operation-node/data-type-node.d.ts +2 -2
- package/dist/cjs/operation-node/data-type-node.js +5 -3
- package/dist/cjs/operation-node/delete-query-node.d.ts +2 -0
- package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +4 -4
- package/dist/cjs/operation-node/having-node.d.ts +1 -1
- package/dist/cjs/operation-node/insert-query-node.d.ts +2 -0
- package/dist/cjs/operation-node/merge-query-node.d.ts +2 -0
- package/dist/cjs/operation-node/on-node.d.ts +1 -1
- package/dist/cjs/operation-node/operation-node-source.js +1 -2
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +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 +1 -0
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/operator-node.d.ts +3 -3
- package/dist/cjs/operation-node/operator-node.js +8 -6
- package/dist/cjs/operation-node/output-node.d.ts +13 -0
- package/dist/cjs/operation-node/output-node.js +26 -0
- package/dist/cjs/operation-node/query-node.d.ts +11 -6
- package/dist/cjs/operation-node/query-node.js +9 -0
- package/dist/cjs/operation-node/select-query-node.d.ts +1 -0
- package/dist/cjs/operation-node/select-query-node.js +6 -0
- package/dist/cjs/operation-node/update-query-node.d.ts +2 -0
- package/dist/cjs/operation-node/where-node.d.ts +1 -1
- package/dist/cjs/parser/binary-operation-parser.js +5 -6
- package/dist/cjs/parser/data-type-parser.js +1 -2
- package/dist/cjs/parser/default-value-parser.js +1 -2
- package/dist/cjs/parser/expression-parser.js +3 -4
- package/dist/cjs/parser/fetch-parser.js +1 -2
- package/dist/cjs/parser/group-by-parser.js +1 -2
- package/dist/cjs/parser/identifier-parser.js +1 -2
- package/dist/cjs/parser/insert-values-parser.js +1 -2
- package/dist/cjs/parser/join-parser.js +1 -2
- package/dist/cjs/parser/merge-parser.js +2 -3
- package/dist/cjs/parser/on-commit-action-parse.js +1 -2
- package/dist/cjs/parser/on-modify-action-parser.js +1 -2
- package/dist/cjs/parser/order-by-parser.js +3 -4
- package/dist/cjs/parser/parse-utils.js +4 -5
- package/dist/cjs/parser/partition-by-parser.js +1 -2
- package/dist/cjs/parser/reference-parser.js +8 -9
- package/dist/cjs/parser/returning-parser.d.ts +4 -3
- package/dist/cjs/parser/select-parser.js +2 -3
- package/dist/cjs/parser/set-operation-parser.js +1 -2
- package/dist/cjs/parser/table-parser.js +4 -5
- package/dist/cjs/parser/top-parser.js +1 -2
- package/dist/cjs/parser/unary-operation-parser.js +3 -4
- package/dist/cjs/parser/update-set-parser.js +2 -3
- package/dist/cjs/parser/value-parser.js +4 -5
- package/dist/cjs/parser/with-parser.js +1 -2
- package/dist/cjs/plugin/camel-case/camel-case-plugin.d.ts +2 -2
- package/dist/cjs/plugin/camel-case/camel-case-plugin.js +2 -2
- package/dist/cjs/plugin/camel-case/camel-case.js +2 -3
- package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.d.ts +18 -0
- package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.js +19 -11
- package/dist/cjs/query-builder/delete-query-builder.d.ts +89 -5
- package/dist/cjs/query-builder/delete-query-builder.js +19 -5
- package/dist/cjs/query-builder/function-module.d.ts +5 -5
- package/dist/cjs/query-builder/function-module.js +1 -2
- package/dist/cjs/query-builder/insert-query-builder.d.ts +95 -10
- package/dist/cjs/query-builder/insert-query-builder.js +25 -10
- package/dist/cjs/query-builder/merge-query-builder.d.ts +167 -3
- package/dist/cjs/query-builder/merge-query-builder.js +30 -1
- package/dist/cjs/query-builder/no-result-error.js +2 -2
- package/dist/cjs/query-builder/on-conflict-builder.d.ts +2 -2
- package/dist/cjs/query-builder/output-interface.d.ts +95 -0
- package/dist/cjs/query-builder/output-interface.js +2 -0
- package/dist/cjs/query-builder/returning-interface.d.ts +2 -0
- package/dist/cjs/query-builder/select-query-builder.d.ts +76 -11
- package/dist/cjs/query-builder/select-query-builder.js +7 -2
- package/dist/cjs/query-builder/update-query-builder.d.ts +95 -10
- package/dist/cjs/query-builder/update-query-builder.js +21 -7
- package/dist/cjs/query-builder/update-result.d.ts +9 -0
- package/dist/cjs/query-builder/update-result.js +9 -0
- package/dist/cjs/query-builder/where-interface.d.ts +1 -1
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +2 -0
- package/dist/cjs/query-compiler/default-query-compiler.js +25 -1
- package/dist/cjs/query-creator.d.ts +56 -3
- package/dist/cjs/query-creator.js +54 -1
- package/dist/cjs/raw-builder/raw-builder.js +1 -2
- package/dist/cjs/raw-builder/sql.d.ts +5 -5
- package/dist/cjs/schema/alter-column-builder.js +3 -0
- package/dist/cjs/schema/alter-table-add-index-builder.d.ts +1 -1
- package/dist/cjs/schema/alter-table-add-index-builder.js +1 -1
- package/dist/cjs/schema/alter-table-builder.js +1 -2
- package/dist/cjs/schema/column-definition-builder.d.ts +5 -0
- package/dist/cjs/schema/column-definition-builder.js +7 -0
- package/dist/cjs/util/assert.js +2 -3
- package/dist/cjs/util/compilable.js +1 -2
- package/dist/cjs/util/json-object-args.js +1 -2
- package/dist/cjs/util/log-once.js +1 -2
- package/dist/cjs/util/object-utils.js +38 -26
- package/dist/cjs/util/performance-now.js +1 -2
- package/dist/cjs/util/prevent-await.js +1 -2
- package/dist/cjs/util/query-id.js +1 -2
- package/dist/cjs/util/random-string.js +1 -2
- package/dist/cjs/util/require-all-props.js +1 -2
- package/dist/cjs/util/stack-trace-utils.js +1 -2
- package/dist/esm/dialect/dialect-adapter-base.d.ts +2 -1
- package/dist/esm/dialect/dialect-adapter-base.js +4 -1
- package/dist/esm/dialect/dialect-adapter.d.ts +5 -0
- package/dist/esm/dialect/mssql/mssql-adapter.d.ts +1 -5
- package/dist/esm/dialect/mssql/mssql-adapter.js +2 -4
- package/dist/esm/dialect/mssql/mssql-dialect-config.d.ts +46 -26
- package/dist/esm/dialect/mssql/mssql-driver.d.ts +1 -0
- package/dist/esm/dialect/mssql/mssql-driver.js +95 -36
- package/dist/esm/dialect/postgres/postgres-introspector.js +1 -1
- package/dist/esm/driver/database-connection.d.ts +3 -1
- package/dist/esm/dynamic/dynamic.d.ts +1 -1
- package/dist/esm/dynamic/dynamic.js +1 -1
- package/dist/esm/expression/expression-builder.d.ts +2 -2
- package/dist/esm/helpers/mysql.d.ts +3 -3
- package/dist/esm/helpers/mysql.js +3 -3
- package/dist/esm/helpers/postgres.d.ts +4 -4
- package/dist/esm/helpers/postgres.js +4 -4
- package/dist/esm/index.d.ts +28 -21
- package/dist/esm/index.js +28 -21
- package/dist/esm/kysely.d.ts +1 -1
- package/dist/esm/kysely.js +1 -1
- package/dist/esm/operation-node/alter-column-node.d.ts +1 -1
- package/dist/esm/operation-node/case-node.d.ts +1 -1
- package/dist/esm/operation-node/column-definition-node.d.ts +1 -0
- package/dist/esm/operation-node/data-type-node.d.ts +2 -2
- package/dist/esm/operation-node/data-type-node.js +3 -1
- package/dist/esm/operation-node/delete-query-node.d.ts +2 -0
- package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +4 -4
- package/dist/esm/operation-node/having-node.d.ts +1 -1
- package/dist/esm/operation-node/insert-query-node.d.ts +2 -0
- package/dist/esm/operation-node/merge-query-node.d.ts +2 -0
- package/dist/esm/operation-node/on-node.d.ts +1 -1
- 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 +1 -0
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/operator-node.d.ts +3 -3
- package/dist/esm/operation-node/operator-node.js +2 -0
- package/dist/esm/operation-node/output-node.d.ts +13 -0
- package/dist/esm/operation-node/output-node.js +24 -0
- package/dist/esm/operation-node/query-node.d.ts +11 -6
- package/dist/esm/operation-node/query-node.js +9 -0
- package/dist/esm/operation-node/select-query-node.d.ts +1 -0
- package/dist/esm/operation-node/select-query-node.js +6 -0
- package/dist/esm/operation-node/update-query-node.d.ts +2 -0
- package/dist/esm/operation-node/where-node.d.ts +1 -1
- package/dist/esm/parser/returning-parser.d.ts +4 -3
- package/dist/esm/plugin/camel-case/camel-case-plugin.d.ts +2 -2
- package/dist/esm/plugin/camel-case/camel-case-plugin.js +2 -2
- package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.d.ts +18 -0
- package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.js +19 -11
- package/dist/esm/query-builder/delete-query-builder.d.ts +89 -5
- package/dist/esm/query-builder/delete-query-builder.js +19 -5
- package/dist/esm/query-builder/function-module.d.ts +5 -5
- package/dist/esm/query-builder/insert-query-builder.d.ts +95 -10
- package/dist/esm/query-builder/insert-query-builder.js +25 -10
- package/dist/esm/query-builder/merge-query-builder.d.ts +167 -3
- package/dist/esm/query-builder/merge-query-builder.js +30 -1
- package/dist/esm/query-builder/on-conflict-builder.d.ts +2 -2
- package/dist/esm/query-builder/output-interface.d.ts +95 -0
- package/dist/esm/query-builder/output-interface.js +2 -0
- package/dist/esm/query-builder/returning-interface.d.ts +2 -0
- package/dist/esm/query-builder/select-query-builder.d.ts +76 -11
- package/dist/esm/query-builder/select-query-builder.js +6 -0
- package/dist/esm/query-builder/update-query-builder.d.ts +95 -10
- package/dist/esm/query-builder/update-query-builder.js +21 -7
- package/dist/esm/query-builder/update-result.d.ts +9 -0
- package/dist/esm/query-builder/update-result.js +9 -0
- package/dist/esm/query-builder/where-interface.d.ts +1 -1
- package/dist/esm/query-compiler/default-query-compiler.d.ts +2 -0
- package/dist/esm/query-compiler/default-query-compiler.js +25 -1
- package/dist/esm/query-creator.d.ts +56 -3
- package/dist/esm/query-creator.js +54 -1
- package/dist/esm/raw-builder/sql.d.ts +5 -5
- package/dist/esm/schema/alter-column-builder.js +3 -0
- package/dist/esm/schema/alter-table-add-index-builder.d.ts +1 -1
- package/dist/esm/schema/alter-table-add-index-builder.js +1 -1
- package/dist/esm/schema/alter-table-builder.js +1 -2
- package/dist/esm/schema/column-definition-builder.d.ts +5 -0
- package/dist/esm/schema/column-definition-builder.js +7 -0
- package/dist/esm/util/object-utils.js +18 -5
- package/package.json +7 -6
|
@@ -125,10 +125,10 @@ export declare class QueryCreator<DB> {
|
|
|
125
125
|
* ```
|
|
126
126
|
*/
|
|
127
127
|
selectFrom<TE extends keyof DB & string>(from: TE[]): SelectQueryBuilder<DB, ExtractTableAlias<DB, TE>, {}>;
|
|
128
|
-
selectFrom<TE extends TableExpression<DB,
|
|
128
|
+
selectFrom<TE extends TableExpression<DB, never>>(from: TE[]): SelectQueryBuilder<From<DB, TE>, FromTables<DB, never, TE>, {}>;
|
|
129
129
|
selectFrom<TE extends keyof DB & string>(from: TE): SelectQueryBuilder<DB, ExtractTableAlias<DB, TE>, {}>;
|
|
130
130
|
selectFrom<TE extends AnyAliasedTable<DB>>(from: TE): SelectQueryBuilder<DB & PickTableWithAlias<DB, TE>, ExtractTableAlias<DB & PickTableWithAlias<DB, TE>, TE>, {}>;
|
|
131
|
-
selectFrom<TE extends TableExpression<DB,
|
|
131
|
+
selectFrom<TE extends TableExpression<DB, never>>(from: TE): SelectQueryBuilder<From<DB, TE>, FromTables<DB, never, TE>, {}>;
|
|
132
132
|
/**
|
|
133
133
|
* Creates a `select` query builder without a `from` clause.
|
|
134
134
|
*
|
|
@@ -365,24 +365,77 @@ export declare class QueryCreator<DB> {
|
|
|
365
365
|
*
|
|
366
366
|
* ### Examples
|
|
367
367
|
*
|
|
368
|
+
* <!-- siteExample("cte", "Simple selects", 10) -->
|
|
369
|
+
*
|
|
370
|
+
* Common table expressions (CTE) are a great way to modularize complex queries.
|
|
371
|
+
* Essentially they allow you to run multiple separate queries within a
|
|
372
|
+
* single roundtrip to the DB.
|
|
373
|
+
*
|
|
374
|
+
* Since CTEs are a part of the main query, query optimizers inside DB
|
|
375
|
+
* engines are able to optimize the overall query. For example, postgres
|
|
376
|
+
* is able to inline the CTEs inside the using queries if it decides it's
|
|
377
|
+
* faster.
|
|
378
|
+
*
|
|
368
379
|
* ```ts
|
|
369
|
-
* await db
|
|
380
|
+
* const result = await db
|
|
381
|
+
* // Create a CTE called `jennifers` that selects all
|
|
382
|
+
* // persons named 'Jennifer'.
|
|
370
383
|
* .with('jennifers', (db) => db
|
|
371
384
|
* .selectFrom('person')
|
|
372
385
|
* .where('first_name', '=', 'Jennifer')
|
|
373
386
|
* .select(['id', 'age'])
|
|
374
387
|
* )
|
|
388
|
+
* // Select all rows from the `jennifers` CTE and
|
|
389
|
+
* // further filter it.
|
|
375
390
|
* .with('adult_jennifers', (db) => db
|
|
376
391
|
* .selectFrom('jennifers')
|
|
377
392
|
* .where('age', '>', 18)
|
|
378
393
|
* .select(['id', 'age'])
|
|
379
394
|
* )
|
|
395
|
+
* // Finally select all adult jennifers that are
|
|
396
|
+
* // also younger than 60.
|
|
380
397
|
* .selectFrom('adult_jennifers')
|
|
381
398
|
* .where('age', '<', 60)
|
|
382
399
|
* .selectAll()
|
|
383
400
|
* .execute()
|
|
384
401
|
* ```
|
|
385
402
|
*
|
|
403
|
+
* <!-- siteExample("cte", "Inserts, updates and deletions", 20) -->
|
|
404
|
+
*
|
|
405
|
+
* Some databases like postgres also allow you to run other queries than selects
|
|
406
|
+
* in CTEs. On these databases CTEs are extremely powerful:
|
|
407
|
+
*
|
|
408
|
+
* ```ts
|
|
409
|
+
* const result = await db
|
|
410
|
+
* .with('new_person', (db) => db
|
|
411
|
+
* .insertInto('person')
|
|
412
|
+
* .values({
|
|
413
|
+
* first_name: 'Jennifer',
|
|
414
|
+
* age: 35,
|
|
415
|
+
* })
|
|
416
|
+
* .returning('id')
|
|
417
|
+
* )
|
|
418
|
+
* .with('new_pet', (db) => db
|
|
419
|
+
* .insertInto('pet')
|
|
420
|
+
* .values({
|
|
421
|
+
* name: 'Doggo',
|
|
422
|
+
* species: 'dog',
|
|
423
|
+
* is_favorite: true,
|
|
424
|
+
* // Use the id of the person we just inserted.
|
|
425
|
+
* owner_id: db
|
|
426
|
+
* .selectFrom('new_person')
|
|
427
|
+
* .select('id')
|
|
428
|
+
* })
|
|
429
|
+
* .returning('id')
|
|
430
|
+
* )
|
|
431
|
+
* .selectFrom(['new_person', 'new_pet'])
|
|
432
|
+
* .select([
|
|
433
|
+
* 'new_person.id as person_id',
|
|
434
|
+
* 'new_pet.id as pet_id'
|
|
435
|
+
* ])
|
|
436
|
+
* .execute()
|
|
437
|
+
* ```
|
|
438
|
+
*
|
|
386
439
|
* The CTE name can optionally specify column names in addition to
|
|
387
440
|
* a name. In that case Kysely requires the expression to retun
|
|
388
441
|
* rows with the same columns.
|
|
@@ -141,24 +141,77 @@ class QueryCreator {
|
|
|
141
141
|
*
|
|
142
142
|
* ### Examples
|
|
143
143
|
*
|
|
144
|
+
* <!-- siteExample("cte", "Simple selects", 10) -->
|
|
145
|
+
*
|
|
146
|
+
* Common table expressions (CTE) are a great way to modularize complex queries.
|
|
147
|
+
* Essentially they allow you to run multiple separate queries within a
|
|
148
|
+
* single roundtrip to the DB.
|
|
149
|
+
*
|
|
150
|
+
* Since CTEs are a part of the main query, query optimizers inside DB
|
|
151
|
+
* engines are able to optimize the overall query. For example, postgres
|
|
152
|
+
* is able to inline the CTEs inside the using queries if it decides it's
|
|
153
|
+
* faster.
|
|
154
|
+
*
|
|
144
155
|
* ```ts
|
|
145
|
-
* await db
|
|
156
|
+
* const result = await db
|
|
157
|
+
* // Create a CTE called `jennifers` that selects all
|
|
158
|
+
* // persons named 'Jennifer'.
|
|
146
159
|
* .with('jennifers', (db) => db
|
|
147
160
|
* .selectFrom('person')
|
|
148
161
|
* .where('first_name', '=', 'Jennifer')
|
|
149
162
|
* .select(['id', 'age'])
|
|
150
163
|
* )
|
|
164
|
+
* // Select all rows from the `jennifers` CTE and
|
|
165
|
+
* // further filter it.
|
|
151
166
|
* .with('adult_jennifers', (db) => db
|
|
152
167
|
* .selectFrom('jennifers')
|
|
153
168
|
* .where('age', '>', 18)
|
|
154
169
|
* .select(['id', 'age'])
|
|
155
170
|
* )
|
|
171
|
+
* // Finally select all adult jennifers that are
|
|
172
|
+
* // also younger than 60.
|
|
156
173
|
* .selectFrom('adult_jennifers')
|
|
157
174
|
* .where('age', '<', 60)
|
|
158
175
|
* .selectAll()
|
|
159
176
|
* .execute()
|
|
160
177
|
* ```
|
|
161
178
|
*
|
|
179
|
+
* <!-- siteExample("cte", "Inserts, updates and deletions", 20) -->
|
|
180
|
+
*
|
|
181
|
+
* Some databases like postgres also allow you to run other queries than selects
|
|
182
|
+
* in CTEs. On these databases CTEs are extremely powerful:
|
|
183
|
+
*
|
|
184
|
+
* ```ts
|
|
185
|
+
* const result = await db
|
|
186
|
+
* .with('new_person', (db) => db
|
|
187
|
+
* .insertInto('person')
|
|
188
|
+
* .values({
|
|
189
|
+
* first_name: 'Jennifer',
|
|
190
|
+
* age: 35,
|
|
191
|
+
* })
|
|
192
|
+
* .returning('id')
|
|
193
|
+
* )
|
|
194
|
+
* .with('new_pet', (db) => db
|
|
195
|
+
* .insertInto('pet')
|
|
196
|
+
* .values({
|
|
197
|
+
* name: 'Doggo',
|
|
198
|
+
* species: 'dog',
|
|
199
|
+
* is_favorite: true,
|
|
200
|
+
* // Use the id of the person we just inserted.
|
|
201
|
+
* owner_id: db
|
|
202
|
+
* .selectFrom('new_person')
|
|
203
|
+
* .select('id')
|
|
204
|
+
* })
|
|
205
|
+
* .returning('id')
|
|
206
|
+
* )
|
|
207
|
+
* .selectFrom(['new_person', 'new_pet'])
|
|
208
|
+
* .select([
|
|
209
|
+
* 'new_person.id as person_id',
|
|
210
|
+
* 'new_pet.id as pet_id'
|
|
211
|
+
* ])
|
|
212
|
+
* .execute()
|
|
213
|
+
* ```
|
|
214
|
+
*
|
|
162
215
|
* The CTE name can optionally specify column names in addition to
|
|
163
216
|
* a name. In that case Kysely requires the expression to retun
|
|
164
217
|
* rows with the same columns.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createRawBuilder =
|
|
3
|
+
exports.createRawBuilder = createRawBuilder;
|
|
4
4
|
const alias_node_js_1 = require("../operation-node/alias-node.js");
|
|
5
5
|
const prevent_await_js_1 = require("../util/prevent-await.js");
|
|
6
6
|
const object_utils_js_1 = require("../util/object-utils.js");
|
|
@@ -63,7 +63,6 @@ class RawBuilderImpl {
|
|
|
63
63
|
function createRawBuilder(props) {
|
|
64
64
|
return new RawBuilderImpl(props);
|
|
65
65
|
}
|
|
66
|
-
exports.createRawBuilder = createRawBuilder;
|
|
67
66
|
(0, prevent_await_js_1.preventAwait)(RawBuilderImpl, "don't await RawBuilder instances directly. To execute the query you need to call `execute`");
|
|
68
67
|
class AliasedRawBuilderImpl {
|
|
69
68
|
#rawBuilder;
|
|
@@ -33,12 +33,12 @@ export interface Sql {
|
|
|
33
33
|
* // method to give it an alias.
|
|
34
34
|
* sql<string>`concat(first_name, ' ', last_name)`.as('full_name')
|
|
35
35
|
* )
|
|
36
|
-
* .where(sql
|
|
36
|
+
* .where(sql<boolean>`birthdate between ${date1} and ${date2}`)
|
|
37
37
|
* // Here we assume we have list of nicknames for the person
|
|
38
38
|
* // (a list of strings) and we use the PostgreSQL `@>` operator
|
|
39
39
|
* // to test if all of them are valid nicknames for the user.
|
|
40
|
-
* .where('nicknames', '@>', sql
|
|
41
|
-
* .orderBy(sql
|
|
40
|
+
* .where('nicknames', '@>', sql<string[]>`ARRAY[${sql.join(nicknames)}]`)
|
|
41
|
+
* .orderBy(sql<string>`concat(first_name, ' ', last_name)`)
|
|
42
42
|
* .execute()
|
|
43
43
|
* ```
|
|
44
44
|
*
|
|
@@ -63,7 +63,7 @@ export interface Sql {
|
|
|
63
63
|
*
|
|
64
64
|
* ```ts
|
|
65
65
|
* const petName = db.selectFrom('pet').select('name').limit(1)
|
|
66
|
-
* const fullName = sql
|
|
66
|
+
* const fullName = sql<string>`concat(first_name, ' ', last_name)`
|
|
67
67
|
*
|
|
68
68
|
* sql`
|
|
69
69
|
* select ${fullName} as full_name, ${petName} as pet_name
|
|
@@ -301,7 +301,7 @@ export interface Sql {
|
|
|
301
301
|
* return db
|
|
302
302
|
* .selectFrom('person')
|
|
303
303
|
* .selectAll()
|
|
304
|
-
* .where('nicknames', '@>', sql
|
|
304
|
+
* .where('nicknames', '@>', sql<string[]>`ARRAY[${sql.join(nicknames)}]`)
|
|
305
305
|
* .execute()
|
|
306
306
|
* }
|
|
307
307
|
* ```
|
|
@@ -4,6 +4,7 @@ exports.AlteredColumnBuilder = exports.AlterColumnBuilder = void 0;
|
|
|
4
4
|
const alter_column_node_js_1 = require("../operation-node/alter-column-node.js");
|
|
5
5
|
const data_type_parser_js_1 = require("../parser/data-type-parser.js");
|
|
6
6
|
const default_value_parser_js_1 = require("../parser/default-value-parser.js");
|
|
7
|
+
const prevent_await_js_1 = require("../util/prevent-await.js");
|
|
7
8
|
class AlterColumnBuilder {
|
|
8
9
|
#column;
|
|
9
10
|
constructor(column) {
|
|
@@ -33,6 +34,7 @@ class AlterColumnBuilder {
|
|
|
33
34
|
}
|
|
34
35
|
}
|
|
35
36
|
exports.AlterColumnBuilder = AlterColumnBuilder;
|
|
37
|
+
(0, prevent_await_js_1.preventAwait)(AlterColumnBuilder, "don't await AlterColumnBuilder instances");
|
|
36
38
|
/**
|
|
37
39
|
* Allows us to force consumers to do exactly one alteration to a column.
|
|
38
40
|
*
|
|
@@ -58,3 +60,4 @@ class AlteredColumnBuilder {
|
|
|
58
60
|
}
|
|
59
61
|
}
|
|
60
62
|
exports.AlteredColumnBuilder = AlteredColumnBuilder;
|
|
63
|
+
(0, prevent_await_js_1.preventAwait)(AlteredColumnBuilder, "don't await AlteredColumnBuilder instances");
|
|
@@ -72,7 +72,7 @@ export declare class AlterTableAddIndexBuilder implements OperationNodeSource, C
|
|
|
72
72
|
* await db.schema
|
|
73
73
|
* .alterTable('person')
|
|
74
74
|
* .addIndex('person_first_name_index')
|
|
75
|
-
* .expression(sql
|
|
75
|
+
* .expression(sql<boolean>`(first_name < 'Sami')`)
|
|
76
76
|
* .execute()
|
|
77
77
|
* ```
|
|
78
78
|
*
|
|
@@ -99,7 +99,7 @@ class AlterTableAddIndexBuilder {
|
|
|
99
99
|
* await db.schema
|
|
100
100
|
* .alterTable('person')
|
|
101
101
|
* .addIndex('person_first_name_index')
|
|
102
|
-
* .expression(sql
|
|
102
|
+
* .expression(sql<boolean>`(first_name < 'Sami')`)
|
|
103
103
|
* .execute()
|
|
104
104
|
* ```
|
|
105
105
|
*
|
|
@@ -203,6 +203,7 @@ class AlterTableBuilder {
|
|
|
203
203
|
}
|
|
204
204
|
}
|
|
205
205
|
exports.AlterTableBuilder = AlterTableBuilder;
|
|
206
|
+
(0, prevent_await_js_1.preventAwait)(AlterTableBuilder, "don't await AlterTableBuilder instances");
|
|
206
207
|
class AlterTableColumnAlteringBuilder {
|
|
207
208
|
#props;
|
|
208
209
|
constructor(props) {
|
|
@@ -252,6 +253,4 @@ class AlterTableColumnAlteringBuilder {
|
|
|
252
253
|
}
|
|
253
254
|
}
|
|
254
255
|
exports.AlterTableColumnAlteringBuilder = AlterTableColumnAlteringBuilder;
|
|
255
|
-
(0, prevent_await_js_1.preventAwait)(AlterTableBuilder, "don't await AlterTableBuilder instances");
|
|
256
|
-
(0, prevent_await_js_1.preventAwait)(alter_column_builder_js_1.AlterColumnBuilder, "don't await AlterColumnBuilder instances");
|
|
257
256
|
(0, prevent_await_js_1.preventAwait)(AlterTableColumnAlteringBuilder, "don't await AlterTableColumnAlteringBuilder instances directly. To execute the query you need to call `execute`");
|
|
@@ -220,6 +220,11 @@ export declare class ColumnDefinitionBuilder implements OperationNodeSource {
|
|
|
220
220
|
* ```
|
|
221
221
|
*/
|
|
222
222
|
nullsNotDistinct(): ColumnDefinitionBuilder;
|
|
223
|
+
/**
|
|
224
|
+
* Adds `if not exists` specifier.
|
|
225
|
+
* This only works for PostgreSQL.
|
|
226
|
+
*/
|
|
227
|
+
ifNotExists(): ColumnDefinitionBuilder;
|
|
223
228
|
/**
|
|
224
229
|
* This can be used to add any additional SQL to the end of the column definition.
|
|
225
230
|
*
|
|
@@ -299,6 +299,13 @@ class ColumnDefinitionBuilder {
|
|
|
299
299
|
nullsNotDistinct() {
|
|
300
300
|
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { nullsNotDistinct: true }));
|
|
301
301
|
}
|
|
302
|
+
/**
|
|
303
|
+
* Adds `if not exists` specifier.
|
|
304
|
+
* This only works for PostgreSQL.
|
|
305
|
+
*/
|
|
306
|
+
ifNotExists() {
|
|
307
|
+
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { ifNotExists: true }));
|
|
308
|
+
}
|
|
302
309
|
/**
|
|
303
310
|
* This can be used to add any additional SQL to the end of the column definition.
|
|
304
311
|
*
|
package/dist/cjs/util/assert.js
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.assertNotNullOrUndefined = assertNotNullOrUndefined;
|
|
4
|
+
exports.assertIsString = assertIsString;
|
|
4
5
|
function assertNotNullOrUndefined(value) {
|
|
5
6
|
if (value === null || value === undefined) {
|
|
6
7
|
throw new Error(`${value} must not be null or undefined`);
|
|
7
8
|
}
|
|
8
9
|
}
|
|
9
|
-
exports.assertNotNullOrUndefined = assertNotNullOrUndefined;
|
|
10
10
|
function assertIsString(value) {
|
|
11
11
|
if (typeof value !== 'string') {
|
|
12
12
|
throw new Error(`${value} must be a string`);
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
exports.assertIsString = assertIsString;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isCompilable =
|
|
3
|
+
exports.isCompilable = isCompilable;
|
|
4
4
|
const object_utils_js_1 = require("./object-utils.js");
|
|
5
5
|
function isCompilable(value) {
|
|
6
6
|
return (0, object_utils_js_1.isObject)(value) && (0, object_utils_js_1.isFunction)(value.compile);
|
|
7
7
|
}
|
|
8
|
-
exports.isCompilable = isCompilable;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getJsonObjectArgs =
|
|
3
|
+
exports.getJsonObjectArgs = getJsonObjectArgs;
|
|
4
4
|
const expression_wrapper_js_1 = require("../expression/expression-wrapper.js");
|
|
5
5
|
const alias_node_js_1 = require("../operation-node/alias-node.js");
|
|
6
6
|
const column_node_js_1 = require("../operation-node/column-node.js");
|
|
@@ -26,7 +26,6 @@ function getJsonObjectArgs(node, table) {
|
|
|
26
26
|
}
|
|
27
27
|
return args;
|
|
28
28
|
}
|
|
29
|
-
exports.getJsonObjectArgs = getJsonObjectArgs;
|
|
30
29
|
function colName(col) {
|
|
31
30
|
return new expression_wrapper_js_1.ExpressionWrapper(value_node_js_1.ValueNode.createImmediate(col));
|
|
32
31
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.logOnce =
|
|
3
|
+
exports.logOnce = logOnce;
|
|
4
4
|
const LOGGED_MESSAGES = new Set();
|
|
5
5
|
/**
|
|
6
6
|
* Use for system-level logging, such as deprecation messages.
|
|
@@ -13,4 +13,3 @@ function logOnce(message) {
|
|
|
13
13
|
LOGGED_MESSAGES.add(message);
|
|
14
14
|
console.log(message);
|
|
15
15
|
}
|
|
16
|
-
exports.logOnce = logOnce;
|
|
@@ -1,6 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.isEmpty = isEmpty;
|
|
4
|
+
exports.isUndefined = isUndefined;
|
|
5
|
+
exports.isString = isString;
|
|
6
|
+
exports.isNumber = isNumber;
|
|
7
|
+
exports.isBoolean = isBoolean;
|
|
8
|
+
exports.isNull = isNull;
|
|
9
|
+
exports.isDate = isDate;
|
|
10
|
+
exports.isBigInt = isBigInt;
|
|
11
|
+
exports.isBuffer = isBuffer;
|
|
12
|
+
exports.isFunction = isFunction;
|
|
13
|
+
exports.isObject = isObject;
|
|
14
|
+
exports.isArrayBufferOrView = isArrayBufferOrView;
|
|
15
|
+
exports.isPlainObject = isPlainObject;
|
|
16
|
+
exports.getLast = getLast;
|
|
17
|
+
exports.freeze = freeze;
|
|
18
|
+
exports.asArray = asArray;
|
|
19
|
+
exports.asReadonlyArray = asReadonlyArray;
|
|
20
|
+
exports.isReadonlyArray = isReadonlyArray;
|
|
21
|
+
exports.noop = noop;
|
|
22
|
+
exports.compare = compare;
|
|
4
23
|
function isEmpty(obj) {
|
|
5
24
|
if (Array.isArray(obj) || isString(obj) || isBuffer(obj)) {
|
|
6
25
|
return obj.length === 0;
|
|
@@ -10,69 +29,60 @@ function isEmpty(obj) {
|
|
|
10
29
|
}
|
|
11
30
|
return false;
|
|
12
31
|
}
|
|
13
|
-
exports.isEmpty = isEmpty;
|
|
14
32
|
function isUndefined(obj) {
|
|
15
33
|
return typeof obj === 'undefined' || obj === undefined;
|
|
16
34
|
}
|
|
17
|
-
exports.isUndefined = isUndefined;
|
|
18
35
|
function isString(obj) {
|
|
19
36
|
return typeof obj === 'string';
|
|
20
37
|
}
|
|
21
|
-
exports.isString = isString;
|
|
22
38
|
function isNumber(obj) {
|
|
23
39
|
return typeof obj === 'number';
|
|
24
40
|
}
|
|
25
|
-
exports.isNumber = isNumber;
|
|
26
41
|
function isBoolean(obj) {
|
|
27
42
|
return typeof obj === 'boolean';
|
|
28
43
|
}
|
|
29
|
-
exports.isBoolean = isBoolean;
|
|
30
44
|
function isNull(obj) {
|
|
31
45
|
return obj === null;
|
|
32
46
|
}
|
|
33
|
-
exports.isNull = isNull;
|
|
34
47
|
function isDate(obj) {
|
|
35
48
|
return obj instanceof Date;
|
|
36
49
|
}
|
|
37
|
-
exports.isDate = isDate;
|
|
38
50
|
function isBigInt(obj) {
|
|
39
51
|
return typeof obj === 'bigint';
|
|
40
52
|
}
|
|
41
|
-
exports.isBigInt = isBigInt;
|
|
42
53
|
// Don't change the returnd type to `obj is Buffer` to not create a
|
|
43
54
|
// hard dependency to node.
|
|
44
55
|
function isBuffer(obj) {
|
|
45
56
|
return typeof Buffer !== 'undefined' && Buffer.isBuffer(obj);
|
|
46
57
|
}
|
|
47
|
-
exports.isBuffer = isBuffer;
|
|
48
58
|
function isFunction(obj) {
|
|
49
59
|
return typeof obj === 'function';
|
|
50
60
|
}
|
|
51
|
-
exports.isFunction = isFunction;
|
|
52
61
|
function isObject(obj) {
|
|
53
62
|
return typeof obj === 'object' && obj !== null;
|
|
54
63
|
}
|
|
55
|
-
exports.isObject = isObject;
|
|
56
64
|
function isArrayBufferOrView(obj) {
|
|
57
65
|
return obj instanceof ArrayBuffer || ArrayBuffer.isView(obj);
|
|
58
66
|
}
|
|
59
|
-
exports.isArrayBufferOrView = isArrayBufferOrView;
|
|
60
67
|
function isPlainObject(obj) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
68
|
+
if (!isObject(obj) || getTag(obj) !== '[object Object]') {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
if (Object.getPrototypeOf(obj) === null) {
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
let proto = obj;
|
|
75
|
+
while (Object.getPrototypeOf(proto) !== null) {
|
|
76
|
+
proto = Object.getPrototypeOf(proto);
|
|
77
|
+
}
|
|
78
|
+
return Object.getPrototypeOf(obj) === proto;
|
|
66
79
|
}
|
|
67
|
-
exports.isPlainObject = isPlainObject;
|
|
68
80
|
function getLast(arr) {
|
|
69
81
|
return arr[arr.length - 1];
|
|
70
82
|
}
|
|
71
|
-
exports.getLast = getLast;
|
|
72
83
|
function freeze(obj) {
|
|
73
84
|
return Object.freeze(obj);
|
|
74
85
|
}
|
|
75
|
-
exports.freeze = freeze;
|
|
76
86
|
function asArray(arg) {
|
|
77
87
|
if (isReadonlyArray(arg)) {
|
|
78
88
|
return arg;
|
|
@@ -81,7 +91,6 @@ function asArray(arg) {
|
|
|
81
91
|
return [arg];
|
|
82
92
|
}
|
|
83
93
|
}
|
|
84
|
-
exports.asArray = asArray;
|
|
85
94
|
function asReadonlyArray(arg) {
|
|
86
95
|
if (isReadonlyArray(arg)) {
|
|
87
96
|
return arg;
|
|
@@ -90,15 +99,12 @@ function asReadonlyArray(arg) {
|
|
|
90
99
|
return freeze([arg]);
|
|
91
100
|
}
|
|
92
101
|
}
|
|
93
|
-
exports.asReadonlyArray = asReadonlyArray;
|
|
94
102
|
function isReadonlyArray(arg) {
|
|
95
103
|
return Array.isArray(arg);
|
|
96
104
|
}
|
|
97
|
-
exports.isReadonlyArray = isReadonlyArray;
|
|
98
105
|
function noop(obj) {
|
|
99
106
|
return obj;
|
|
100
107
|
}
|
|
101
|
-
exports.noop = noop;
|
|
102
108
|
function compare(obj1, obj2) {
|
|
103
109
|
if (isReadonlyArray(obj1) && isReadonlyArray(obj2)) {
|
|
104
110
|
return compareArrays(obj1, obj2);
|
|
@@ -108,7 +114,6 @@ function compare(obj1, obj2) {
|
|
|
108
114
|
}
|
|
109
115
|
return obj1 === obj2;
|
|
110
116
|
}
|
|
111
|
-
exports.compare = compare;
|
|
112
117
|
function compareArrays(arr1, arr2) {
|
|
113
118
|
if (arr1.length !== arr2.length) {
|
|
114
119
|
return false;
|
|
@@ -148,3 +153,10 @@ function compareGenericObjects(obj1, obj2) {
|
|
|
148
153
|
}
|
|
149
154
|
return true;
|
|
150
155
|
}
|
|
156
|
+
const toString = Object.prototype.toString;
|
|
157
|
+
function getTag(value) {
|
|
158
|
+
if (value == null) {
|
|
159
|
+
return value === undefined ? '[object Undefined]' : '[object Null]';
|
|
160
|
+
}
|
|
161
|
+
return toString.call(value);
|
|
162
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.performanceNow =
|
|
3
|
+
exports.performanceNow = performanceNow;
|
|
4
4
|
const object_utils_js_1 = require("./object-utils.js");
|
|
5
5
|
function performanceNow() {
|
|
6
6
|
if (typeof performance !== 'undefined' && (0, object_utils_js_1.isFunction)(performance.now)) {
|
|
@@ -10,4 +10,3 @@ function performanceNow() {
|
|
|
10
10
|
return Date.now();
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
exports.performanceNow = performanceNow;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.preventAwait =
|
|
3
|
+
exports.preventAwait = preventAwait;
|
|
4
4
|
function preventAwait(clazz, message) {
|
|
5
5
|
Object.defineProperties(clazz.prototype, {
|
|
6
6
|
then: {
|
|
@@ -11,4 +11,3 @@ function preventAwait(clazz, message) {
|
|
|
11
11
|
},
|
|
12
12
|
});
|
|
13
13
|
}
|
|
14
|
-
exports.preventAwait = preventAwait;
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createQueryId =
|
|
3
|
+
exports.createQueryId = createQueryId;
|
|
4
4
|
const random_string_js_1 = require("./random-string.js");
|
|
5
5
|
function createQueryId() {
|
|
6
6
|
return new LazyQueryId();
|
|
7
7
|
}
|
|
8
|
-
exports.createQueryId = createQueryId;
|
|
9
8
|
class LazyQueryId {
|
|
10
9
|
#queryId;
|
|
11
10
|
get queryId() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.randomString =
|
|
3
|
+
exports.randomString = randomString;
|
|
4
4
|
const CHARS = [
|
|
5
5
|
'A',
|
|
6
6
|
'B',
|
|
@@ -72,7 +72,6 @@ function randomString(length) {
|
|
|
72
72
|
}
|
|
73
73
|
return chars;
|
|
74
74
|
}
|
|
75
|
-
exports.randomString = randomString;
|
|
76
75
|
function randomChar() {
|
|
77
76
|
return CHARS[~~(Math.random() * CHARS.length)];
|
|
78
77
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.requireAllProps =
|
|
3
|
+
exports.requireAllProps = requireAllProps;
|
|
4
4
|
/**
|
|
5
5
|
* Helper function to check listed properties according to given type. Check if all properties has been used when object is initialised.
|
|
6
6
|
*
|
|
@@ -37,4 +37,3 @@ exports.requireAllProps = void 0;
|
|
|
37
37
|
function requireAllProps(obj) {
|
|
38
38
|
return obj;
|
|
39
39
|
}
|
|
40
|
-
exports.requireAllProps = requireAllProps;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.extendStackTrace =
|
|
3
|
+
exports.extendStackTrace = extendStackTrace;
|
|
4
4
|
const object_utils_js_1 = require("./object-utils.js");
|
|
5
5
|
function extendStackTrace(err, stackError) {
|
|
6
6
|
if (isStackHolder(err) && stackError.stack) {
|
|
@@ -11,7 +11,6 @@ function extendStackTrace(err, stackError) {
|
|
|
11
11
|
}
|
|
12
12
|
return err;
|
|
13
13
|
}
|
|
14
|
-
exports.extendStackTrace = extendStackTrace;
|
|
15
14
|
function isStackHolder(obj) {
|
|
16
15
|
return (0, object_utils_js_1.isObject)(obj) && (0, object_utils_js_1.isString)(obj.stack);
|
|
17
16
|
}
|
|
@@ -2,7 +2,7 @@ import { Kysely } from '../kysely.js';
|
|
|
2
2
|
import { DialectAdapter, MigrationLockOptions } from './dialect-adapter.js';
|
|
3
3
|
/**
|
|
4
4
|
* A basic implementation of `DialectAdapter` with sensible default values.
|
|
5
|
-
*
|
|
5
|
+
* Third-party dialects can extend this instead of implementing the `DialectAdapter`
|
|
6
6
|
* interface from scratch. That way all new settings will get default values when
|
|
7
7
|
* they are added and there will be less breaking changes.
|
|
8
8
|
*/
|
|
@@ -26,6 +26,7 @@ export declare abstract class DialectAdapterBase implements DialectAdapter {
|
|
|
26
26
|
* updates and deletes.
|
|
27
27
|
*/
|
|
28
28
|
get supportsReturning(): boolean;
|
|
29
|
+
get supportsOutput(): boolean;
|
|
29
30
|
/**
|
|
30
31
|
* This method is used to acquire a lock for the migrations so that
|
|
31
32
|
* it's not possible for two migration operations to run in parallel.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="./dialect-adapter-base.d.ts" />
|
|
2
2
|
/**
|
|
3
3
|
* A basic implementation of `DialectAdapter` with sensible default values.
|
|
4
|
-
*
|
|
4
|
+
* Third-party dialects can extend this instead of implementing the `DialectAdapter`
|
|
5
5
|
* interface from scratch. That way all new settings will get default values when
|
|
6
6
|
* they are added and there will be less breaking changes.
|
|
7
7
|
*/
|
|
@@ -15,4 +15,7 @@ export class DialectAdapterBase {
|
|
|
15
15
|
get supportsReturning() {
|
|
16
16
|
return false;
|
|
17
17
|
}
|
|
18
|
+
get supportsOutput() {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
18
21
|
}
|
|
@@ -27,6 +27,11 @@ export interface DialectAdapter {
|
|
|
27
27
|
* updates and deletes.
|
|
28
28
|
*/
|
|
29
29
|
readonly supportsReturning: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Whether or not this dialect supports the `output` clause in inserts
|
|
32
|
+
* updates and deletes.
|
|
33
|
+
*/
|
|
34
|
+
readonly supportsOutput?: boolean;
|
|
30
35
|
/**
|
|
31
36
|
* This method is used to acquire a lock for the migrations so that
|
|
32
37
|
* it's not possible for two migration operations to run in parallel.
|
|
@@ -15,11 +15,7 @@ export declare class MssqlAdapter extends DialectAdapterBase {
|
|
|
15
15
|
* If this is true, migrations are executed inside a transaction.
|
|
16
16
|
*/
|
|
17
17
|
get supportsTransactionalDdl(): boolean;
|
|
18
|
-
|
|
19
|
-
* Whether or not this dialect supports the `returning` in inserts
|
|
20
|
-
* updates and deletes.
|
|
21
|
-
*/
|
|
22
|
-
get supportsReturning(): boolean;
|
|
18
|
+
get supportsOutput(): boolean;
|
|
23
19
|
/**
|
|
24
20
|
* This method is used to acquire a lock for the migrations so that
|
|
25
21
|
* it's not possible for two migration operations to run in parallel.
|