kysely 0.13.0 → 0.14.0

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.
Files changed (87) hide show
  1. package/dist/cjs/{introspection → dialect}/database-introspector.d.ts +0 -0
  2. package/dist/cjs/{introspection → dialect}/database-introspector.js +0 -0
  3. package/dist/cjs/dialect/dialect.d.ts +1 -1
  4. package/dist/cjs/dialect/mysql/mysql-dialect.d.ts +1 -1
  5. package/dist/cjs/dialect/mysql/mysql-introspector.d.ts +1 -1
  6. package/dist/cjs/dialect/postgres/postgres-dialect.d.ts +1 -1
  7. package/dist/cjs/dialect/postgres/postgres-introspector.d.ts +1 -1
  8. package/dist/cjs/dialect/sqlite/sqlite-dialect.d.ts +1 -1
  9. package/dist/cjs/dialect/sqlite/sqlite-introspector.d.ts +1 -1
  10. package/dist/cjs/index.d.ts +2 -2
  11. package/dist/cjs/index.js +2 -2
  12. package/dist/cjs/kysely.d.ts +1 -1
  13. package/dist/cjs/operation-node/check-constraint-node.d.ts +1 -1
  14. package/dist/cjs/operation-node/check-constraint-node.js +2 -3
  15. package/dist/cjs/operation-node/column-definition-node.d.ts +2 -2
  16. package/dist/cjs/operation-node/data-type-node.d.ts +1 -1
  17. package/dist/cjs/operation-node/generated-node.d.ts +20 -0
  18. package/dist/cjs/operation-node/generated-node.js +31 -0
  19. package/dist/cjs/operation-node/on-conflict-node.d.ts +13 -2
  20. package/dist/cjs/operation-node/on-conflict-node.js +39 -1
  21. package/dist/cjs/operation-node/operation-node-transformer.d.ts +2 -2
  22. package/dist/cjs/operation-node/operation-node-transformer.js +11 -5
  23. package/dist/cjs/operation-node/operation-node-visitor.d.ts +2 -2
  24. package/dist/cjs/operation-node/operation-node-visitor.js +1 -1
  25. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  26. package/dist/cjs/query-builder/insert-query-builder.d.ts +76 -75
  27. package/dist/cjs/query-builder/insert-query-builder.js +150 -15
  28. package/dist/cjs/query-builder/on-conflict-builder.d.ts +684 -0
  29. package/dist/cjs/query-builder/on-conflict-builder.js +323 -0
  30. package/dist/cjs/query-compiler/default-query-compiler.d.ts +2 -2
  31. package/dist/cjs/query-compiler/default-query-compiler.js +33 -7
  32. package/dist/cjs/schema/alter-table-builder.d.ts +29 -9
  33. package/dist/cjs/schema/alter-table-builder.js +33 -9
  34. package/dist/cjs/schema/column-definition-builder.d.ts +28 -8
  35. package/dist/cjs/schema/column-definition-builder.js +17 -7
  36. package/dist/cjs/schema/create-index-builder.d.ts +3 -2
  37. package/dist/cjs/schema/create-index-builder.js +2 -2
  38. package/dist/cjs/schema/create-table-builder.d.ts +3 -2
  39. package/dist/cjs/schema/create-table-builder.js +2 -2
  40. package/dist/esm/{introspection → dialect}/database-introspector.d.ts +0 -0
  41. package/dist/esm/{introspection → dialect}/database-introspector.js +0 -0
  42. package/dist/esm/dialect/dialect.d.ts +1 -1
  43. package/dist/esm/dialect/mysql/mysql-dialect.d.ts +1 -1
  44. package/dist/esm/dialect/mysql/mysql-introspector.d.ts +1 -1
  45. package/dist/esm/dialect/postgres/postgres-dialect.d.ts +1 -1
  46. package/dist/esm/dialect/postgres/postgres-introspector.d.ts +1 -1
  47. package/dist/esm/dialect/sqlite/sqlite-dialect.d.ts +1 -1
  48. package/dist/esm/dialect/sqlite/sqlite-introspector.d.ts +1 -1
  49. package/dist/esm/index.d.ts +2 -2
  50. package/dist/esm/index.js +2 -2
  51. package/dist/esm/kysely.d.ts +1 -1
  52. package/dist/esm/operation-node/check-constraint-node.d.ts +1 -1
  53. package/dist/esm/operation-node/check-constraint-node.js +2 -3
  54. package/dist/esm/operation-node/column-definition-node.d.ts +2 -2
  55. package/dist/esm/operation-node/data-type-node.d.ts +1 -1
  56. package/dist/esm/operation-node/generated-node.d.ts +20 -0
  57. package/dist/esm/operation-node/generated-node.js +28 -0
  58. package/dist/esm/operation-node/on-conflict-node.d.ts +13 -2
  59. package/dist/esm/operation-node/on-conflict-node.js +39 -1
  60. package/dist/esm/operation-node/operation-node-transformer.d.ts +2 -2
  61. package/dist/esm/operation-node/operation-node-transformer.js +11 -5
  62. package/dist/esm/operation-node/operation-node-visitor.d.ts +2 -2
  63. package/dist/esm/operation-node/operation-node-visitor.js +1 -1
  64. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  65. package/dist/esm/query-builder/insert-query-builder.d.ts +76 -75
  66. package/dist/esm/query-builder/insert-query-builder.js +150 -15
  67. package/dist/esm/query-builder/on-conflict-builder.d.ts +684 -0
  68. package/dist/esm/query-builder/on-conflict-builder.js +317 -0
  69. package/dist/esm/query-compiler/default-query-compiler.d.ts +2 -2
  70. package/dist/esm/query-compiler/default-query-compiler.js +33 -7
  71. package/dist/esm/schema/alter-table-builder.d.ts +29 -9
  72. package/dist/esm/schema/alter-table-builder.js +33 -9
  73. package/dist/esm/schema/column-definition-builder.d.ts +28 -8
  74. package/dist/esm/schema/column-definition-builder.js +17 -7
  75. package/dist/esm/schema/create-index-builder.d.ts +3 -2
  76. package/dist/esm/schema/create-index-builder.js +2 -2
  77. package/dist/esm/schema/create-table-builder.d.ts +3 -2
  78. package/dist/esm/schema/create-table-builder.js +2 -2
  79. package/package.json +1 -1
  80. package/dist/cjs/operation-node/generated-always-as-node.d.ts +0 -16
  81. package/dist/cjs/operation-node/generated-always-as-node.js +0 -25
  82. package/dist/cjs/parser/on-conflict-parser.d.ts +0 -10
  83. package/dist/cjs/parser/on-conflict-parser.js +0 -35
  84. package/dist/esm/operation-node/generated-always-as-node.d.ts +0 -16
  85. package/dist/esm/operation-node/generated-always-as-node.js +0 -22
  86. package/dist/esm/parser/on-conflict-parser.d.ts +0 -10
  87. package/dist/esm/parser/on-conflict-parser.js +0 -30
@@ -6,7 +6,7 @@ import { parseStringReference } from '../parser/reference-parser.js';
6
6
  import { preventAwait } from '../util/prevent-await.js';
7
7
  import { ColumnDefinitionNode } from '../operation-node/column-definition-node.js';
8
8
  import { parseDefaultValueExpression, } from '../parser/default-value-parser.js';
9
- import { GeneratedAlwaysAsNode } from '../operation-node/generated-always-as-node.js';
9
+ import { GeneratedNode } from '../operation-node/generated-node.js';
10
10
  import { DefaultValueNode } from '../operation-node/default-value-node.js';
11
11
  export class ColumnDefinitionBuilder {
12
12
  #node;
@@ -60,22 +60,32 @@ export class ColumnDefinitionBuilder {
60
60
  defaultTo: DefaultValueNode.create(parseDefaultValueExpression(value)),
61
61
  }));
62
62
  }
63
- check(sql) {
63
+ check(expression) {
64
64
  return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, {
65
- check: CheckConstraintNode.create(sql),
65
+ check: CheckConstraintNode.create(expression.toOperationNode()),
66
66
  }));
67
67
  }
68
- generatedAlwaysAs(sql) {
68
+ generatedAlwaysAs(expression) {
69
69
  return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, {
70
- generatedAlwaysAs: GeneratedAlwaysAsNode.create(sql),
70
+ generated: GeneratedNode.createWithExpression(expression.toOperationNode()),
71
+ }));
72
+ }
73
+ generatedAlwaysAsIdentity() {
74
+ return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, {
75
+ generated: GeneratedNode.create({ identity: true, always: true }),
76
+ }));
77
+ }
78
+ generatedByDefaultAsIdentity() {
79
+ return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, {
80
+ generated: GeneratedNode.create({ identity: true, byDefault: true }),
71
81
  }));
72
82
  }
73
83
  stored() {
74
- if (!this.#node.generatedAlwaysAs) {
84
+ if (!this.#node.generated) {
75
85
  throw new Error('stored() can only be called after generatedAlwaysAs');
76
86
  }
77
87
  return new ColumnDefinitionBuilder(ColumnDefinitionNode.cloneWith(this.#node, {
78
- generatedAlwaysAs: GeneratedAlwaysAsNode.cloneWith(this.#node.generatedAlwaysAs, {
88
+ generated: GeneratedNode.cloneWith(this.#node.generated, {
79
89
  stored: true,
80
90
  }),
81
91
  }));
@@ -4,6 +4,7 @@ import { CompiledQuery } from '../query-compiler/compiled-query.js';
4
4
  import { Compilable } from '../util/compilable.js';
5
5
  import { QueryExecutor } from '../query-executor/query-executor.js';
6
6
  import { QueryId } from '../util/query-id.js';
7
+ import { AnyRawBuilder } from '../util/type-utils.js';
7
8
  export declare class CreateIndexBuilder implements OperationNodeSource, Compilable {
8
9
  #private;
9
10
  constructor(props: CreateIndexBuilderProps);
@@ -36,11 +37,11 @@ export declare class CreateIndexBuilder implements OperationNodeSource, Compilab
36
37
  * await db.schema
37
38
  * .createIndex('person_first_name_index')
38
39
  * .on('person')
39
- * .expression('first_name COLLATE "fi_FI"')
40
+ * .expression(db.raw('first_name COLLATE "fi_FI"'))
40
41
  * .execute()
41
42
  * ```
42
43
  */
43
- expression(expression: string): CreateIndexBuilder;
44
+ expression(expression: AnyRawBuilder): CreateIndexBuilder;
44
45
  /**
45
46
  * Specifies the index type.
46
47
  */
@@ -67,7 +67,7 @@ export class CreateIndexBuilder {
67
67
  * await db.schema
68
68
  * .createIndex('person_first_name_index')
69
69
  * .on('person')
70
- * .expression('first_name COLLATE "fi_FI"')
70
+ * .expression(db.raw('first_name COLLATE "fi_FI"'))
71
71
  * .execute()
72
72
  * ```
73
73
  */
@@ -75,7 +75,7 @@ export class CreateIndexBuilder {
75
75
  return new CreateIndexBuilder({
76
76
  ...this.#props,
77
77
  createIndexNode: CreateIndexNode.cloneWith(this.#props.createIndexNode, {
78
- expression: RawNode.createWithSql(expression),
78
+ expression: expression.toOperationNode(),
79
79
  }),
80
80
  });
81
81
  }
@@ -7,6 +7,7 @@ import { ColumnDefinitionBuilder } from './column-definition-builder.js';
7
7
  import { QueryId } from '../util/query-id.js';
8
8
  import { ForeignKeyConstraintBuilder } from './foreign-key-constraint-builder.js';
9
9
  import { DataTypeExpression } from '../parser/data-type-parser.js';
10
+ import { AnyRawBuilder } from '../util/type-utils.js';
10
11
  /**
11
12
  * This builder can be used to create a `create table` query.
12
13
  */
@@ -110,10 +111,10 @@ export declare class CreateTableBuilder<TB extends string, C extends string = ne
110
111
  * ### Examples
111
112
  *
112
113
  * ```ts
113
- * addCheckConstraint('check_legs', 'number_of_legs < 5')
114
+ * addCheckConstraint('check_legs', db.raw('number_of_legs < 5'))
114
115
  * ```
115
116
  */
116
- addCheckConstraint(constraintName: string, checkExpression: string): CreateTableBuilder<TB, C>;
117
+ addCheckConstraint(constraintName: string, checkExpression: AnyRawBuilder): CreateTableBuilder<TB, C>;
117
118
  /**
118
119
  * Adds a foreign key constraint.
119
120
  *
@@ -153,13 +153,13 @@ export class CreateTableBuilder {
153
153
  * ### Examples
154
154
  *
155
155
  * ```ts
156
- * addCheckConstraint('check_legs', 'number_of_legs < 5')
156
+ * addCheckConstraint('check_legs', db.raw('number_of_legs < 5'))
157
157
  * ```
158
158
  */
159
159
  addCheckConstraint(constraintName, checkExpression) {
160
160
  return new CreateTableBuilder({
161
161
  ...this.#props,
162
- createTableNode: CreateTableNode.cloneWithConstraint(this.#props.createTableNode, CheckConstraintNode.create(checkExpression, constraintName)),
162
+ createTableNode: CreateTableNode.cloneWithConstraint(this.#props.createTableNode, CheckConstraintNode.create(checkExpression.toOperationNode(), constraintName)),
163
163
  });
164
164
  }
165
165
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kysely",
3
- "version": "0.13.0",
3
+ "version": "0.14.0",
4
4
  "description": "Type safe SQL query builder",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,16 +0,0 @@
1
- import { OperationNode } from './operation-node.js';
2
- import { RawNode } from './raw-node.js';
3
- export declare type GeneratedAlwaysAsNodeParams = Omit<GeneratedAlwaysAsNode, 'kind' | 'expression'>;
4
- export interface GeneratedAlwaysAsNode extends OperationNode {
5
- readonly kind: 'GeneratedAlwaysAsNode';
6
- readonly expression: RawNode;
7
- readonly stored?: boolean;
8
- }
9
- /**
10
- * @internal
11
- */
12
- export declare const GeneratedAlwaysAsNode: Readonly<{
13
- is(node: OperationNode): node is GeneratedAlwaysAsNode;
14
- create(expression: string): GeneratedAlwaysAsNode;
15
- cloneWith(node: GeneratedAlwaysAsNode, params: GeneratedAlwaysAsNodeParams): GeneratedAlwaysAsNode;
16
- }>;
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GeneratedAlwaysAsNode = void 0;
4
- const object_utils_js_1 = require("../util/object-utils.js");
5
- const raw_node_js_1 = require("./raw-node.js");
6
- /**
7
- * @internal
8
- */
9
- exports.GeneratedAlwaysAsNode = (0, object_utils_js_1.freeze)({
10
- is(node) {
11
- return node.kind === 'GeneratedAlwaysAsNode';
12
- },
13
- create(expression) {
14
- return (0, object_utils_js_1.freeze)({
15
- kind: 'GeneratedAlwaysAsNode',
16
- expression: raw_node_js_1.RawNode.createWithSql(expression),
17
- });
18
- },
19
- cloneWith(node, params) {
20
- return (0, object_utils_js_1.freeze)({
21
- ...node,
22
- ...params,
23
- });
24
- },
25
- });
@@ -1,10 +0,0 @@
1
- import { OnConflictNode } from '../operation-node/on-conflict-node.js';
2
- import { AnyColumn } from '../util/type-utils.js';
3
- import { ParseContext } from './parse-context.js';
4
- import { MutationObject } from './update-set-parser.js';
5
- export declare type OnConflictConstraintTarget = {
6
- constraint: string;
7
- };
8
- export declare type OnConflictTargetExpression<DB, TB extends keyof DB> = AnyColumn<DB, TB> | ReadonlyArray<AnyColumn<DB, TB>> | OnConflictConstraintTarget;
9
- export declare function parseOnConflictDoNothing(target: OnConflictTargetExpression<any, any>): OnConflictNode;
10
- export declare function parseOnConflictUpdate(ctx: ParseContext, target: OnConflictTargetExpression<any, any>, updates: MutationObject<any, any>): OnConflictNode;
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseOnConflictUpdate = exports.parseOnConflictDoNothing = void 0;
4
- const identifier_node_js_1 = require("../operation-node/identifier-node.js");
5
- const on_conflict_node_js_1 = require("../operation-node/on-conflict-node.js");
6
- const object_utils_js_1 = require("../util/object-utils.js");
7
- const reference_parser_js_1 = require("./reference-parser.js");
8
- const update_set_parser_js_1 = require("./update-set-parser.js");
9
- function parseOnConflictDoNothing(target) {
10
- return on_conflict_node_js_1.OnConflictNode.create({
11
- ...parseConflictTarget(target),
12
- doNothing: true,
13
- });
14
- }
15
- exports.parseOnConflictDoNothing = parseOnConflictDoNothing;
16
- function parseOnConflictUpdate(ctx, target, updates) {
17
- return on_conflict_node_js_1.OnConflictNode.create({
18
- ...parseConflictTarget(target),
19
- updates: (0, update_set_parser_js_1.parseUpdateObject)(ctx, updates),
20
- });
21
- }
22
- exports.parseOnConflictUpdate = parseOnConflictUpdate;
23
- function parseConflictTarget(target) {
24
- if ((0, object_utils_js_1.isString)(target) || (0, object_utils_js_1.isReadonlyArray)(target)) {
25
- return {
26
- columns: (0, object_utils_js_1.asReadonlyArray)(target).map(reference_parser_js_1.parseColumnName),
27
- };
28
- }
29
- if ((0, object_utils_js_1.isObject)(target) && !(0, object_utils_js_1.isReadonlyArray)(target)) {
30
- return {
31
- constraint: identifier_node_js_1.IdentifierNode.create(target.constraint),
32
- };
33
- }
34
- throw new Error(`invalid on conflict target ${JSON.stringify(target)}`);
35
- }
@@ -1,16 +0,0 @@
1
- import { OperationNode } from './operation-node.js';
2
- import { RawNode } from './raw-node.js';
3
- export declare type GeneratedAlwaysAsNodeParams = Omit<GeneratedAlwaysAsNode, 'kind' | 'expression'>;
4
- export interface GeneratedAlwaysAsNode extends OperationNode {
5
- readonly kind: 'GeneratedAlwaysAsNode';
6
- readonly expression: RawNode;
7
- readonly stored?: boolean;
8
- }
9
- /**
10
- * @internal
11
- */
12
- export declare const GeneratedAlwaysAsNode: Readonly<{
13
- is(node: OperationNode): node is GeneratedAlwaysAsNode;
14
- create(expression: string): GeneratedAlwaysAsNode;
15
- cloneWith(node: GeneratedAlwaysAsNode, params: GeneratedAlwaysAsNodeParams): GeneratedAlwaysAsNode;
16
- }>;
@@ -1,22 +0,0 @@
1
- import { freeze } from '../util/object-utils.js';
2
- import { RawNode } from './raw-node.js';
3
- /**
4
- * @internal
5
- */
6
- export const GeneratedAlwaysAsNode = freeze({
7
- is(node) {
8
- return node.kind === 'GeneratedAlwaysAsNode';
9
- },
10
- create(expression) {
11
- return freeze({
12
- kind: 'GeneratedAlwaysAsNode',
13
- expression: RawNode.createWithSql(expression),
14
- });
15
- },
16
- cloneWith(node, params) {
17
- return freeze({
18
- ...node,
19
- ...params,
20
- });
21
- },
22
- });
@@ -1,10 +0,0 @@
1
- import { OnConflictNode } from '../operation-node/on-conflict-node.js';
2
- import { AnyColumn } from '../util/type-utils.js';
3
- import { ParseContext } from './parse-context.js';
4
- import { MutationObject } from './update-set-parser.js';
5
- export declare type OnConflictConstraintTarget = {
6
- constraint: string;
7
- };
8
- export declare type OnConflictTargetExpression<DB, TB extends keyof DB> = AnyColumn<DB, TB> | ReadonlyArray<AnyColumn<DB, TB>> | OnConflictConstraintTarget;
9
- export declare function parseOnConflictDoNothing(target: OnConflictTargetExpression<any, any>): OnConflictNode;
10
- export declare function parseOnConflictUpdate(ctx: ParseContext, target: OnConflictTargetExpression<any, any>, updates: MutationObject<any, any>): OnConflictNode;
@@ -1,30 +0,0 @@
1
- import { IdentifierNode } from '../operation-node/identifier-node.js';
2
- import { OnConflictNode } from '../operation-node/on-conflict-node.js';
3
- import { asReadonlyArray, isObject, isReadonlyArray, isString, } from '../util/object-utils.js';
4
- import { parseColumnName } from './reference-parser.js';
5
- import { parseUpdateObject } from './update-set-parser.js';
6
- export function parseOnConflictDoNothing(target) {
7
- return OnConflictNode.create({
8
- ...parseConflictTarget(target),
9
- doNothing: true,
10
- });
11
- }
12
- export function parseOnConflictUpdate(ctx, target, updates) {
13
- return OnConflictNode.create({
14
- ...parseConflictTarget(target),
15
- updates: parseUpdateObject(ctx, updates),
16
- });
17
- }
18
- function parseConflictTarget(target) {
19
- if (isString(target) || isReadonlyArray(target)) {
20
- return {
21
- columns: asReadonlyArray(target).map(parseColumnName),
22
- };
23
- }
24
- if (isObject(target) && !isReadonlyArray(target)) {
25
- return {
26
- constraint: IdentifierNode.create(target.constraint),
27
- };
28
- }
29
- throw new Error(`invalid on conflict target ${JSON.stringify(target)}`);
30
- }