kysely 0.19.8 → 0.19.11

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 (106) hide show
  1. package/README.md +67 -13
  2. package/dist/cjs/dialect/mysql/mysql-dialect-config.d.ts +10 -0
  3. package/dist/cjs/dialect/mysql/mysql-driver.d.ts +1 -0
  4. package/dist/cjs/dialect/mysql/mysql-driver.js +25 -0
  5. package/dist/cjs/dialect/postgres/postgres-dialect-config.d.ts +29 -0
  6. package/dist/cjs/dialect/postgres/postgres-driver.d.ts +6 -2
  7. package/dist/cjs/dialect/postgres/postgres-driver.js +24 -2
  8. package/dist/cjs/dialect/sqlite/sqlite-driver.js +3 -0
  9. package/dist/cjs/driver/database-connection.d.ts +1 -0
  10. package/dist/cjs/driver/dummy-driver.js +3 -0
  11. package/dist/cjs/index.d.ts +4 -0
  12. package/dist/cjs/index.js +4 -0
  13. package/dist/cjs/operation-node/create-type-node.d.ts +17 -0
  14. package/dist/cjs/operation-node/create-type-node.js +27 -0
  15. package/dist/cjs/operation-node/data-type-node.d.ts +1 -1
  16. package/dist/cjs/operation-node/drop-type-node.d.ts +16 -0
  17. package/dist/cjs/operation-node/drop-type-node.js +25 -0
  18. package/dist/cjs/operation-node/insert-query-node.d.ts +2 -1
  19. package/dist/cjs/operation-node/insert-query-node.js +2 -1
  20. package/dist/cjs/operation-node/operation-node-transformer.d.ts +9 -2
  21. package/dist/cjs/operation-node/operation-node-transformer.js +148 -122
  22. package/dist/cjs/operation-node/operation-node-visitor.d.ts +6 -0
  23. package/dist/cjs/operation-node/operation-node-visitor.js +3 -0
  24. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  25. package/dist/cjs/operation-node/select-modifier-node.d.ts +16 -0
  26. package/dist/cjs/operation-node/select-modifier-node.js +24 -0
  27. package/dist/cjs/operation-node/select-query-node.d.ts +5 -5
  28. package/dist/cjs/operation-node/select-query-node.js +11 -9
  29. package/dist/cjs/plugin/with-schema/with-schema-transformer.d.ts +4 -0
  30. package/dist/cjs/plugin/with-schema/with-schema-transformer.js +6 -0
  31. package/dist/cjs/query-builder/insert-query-builder.d.ts +1 -1
  32. package/dist/cjs/query-builder/select-query-builder.d.ts +77 -6
  33. package/dist/cjs/query-builder/select-query-builder.js +101 -14
  34. package/dist/cjs/query-compiler/default-query-compiler.d.ts +6 -0
  35. package/dist/cjs/query-compiler/default-query-compiler.js +30 -8
  36. package/dist/cjs/query-compiler/query-compiler.d.ts +3 -1
  37. package/dist/cjs/query-creator.d.ts +27 -0
  38. package/dist/cjs/query-creator.js +33 -0
  39. package/dist/cjs/query-executor/query-executor-base.d.ts +6 -0
  40. package/dist/cjs/query-executor/query-executor-base.js +19 -0
  41. package/dist/cjs/query-executor/query-executor.d.ts +11 -0
  42. package/dist/cjs/schema/create-table-builder.d.ts +6 -6
  43. package/dist/cjs/schema/create-table-builder.js +6 -6
  44. package/dist/cjs/schema/create-type-builder.d.ts +28 -0
  45. package/dist/cjs/schema/create-type-builder.js +38 -0
  46. package/dist/cjs/schema/drop-type-builder.d.ts +19 -0
  47. package/dist/cjs/schema/drop-type-builder.js +31 -0
  48. package/dist/cjs/schema/schema.d.ts +32 -0
  49. package/dist/cjs/schema/schema.js +46 -0
  50. package/dist/cjs/util/deferred.d.ts +7 -0
  51. package/dist/cjs/util/deferred.js +28 -0
  52. package/dist/cjs/util/require-all-props.d.ts +43 -0
  53. package/dist/cjs/util/require-all-props.js +40 -0
  54. package/dist/esm/dialect/mysql/mysql-dialect-config.d.ts +10 -0
  55. package/dist/esm/dialect/mysql/mysql-driver.d.ts +1 -0
  56. package/dist/esm/dialect/mysql/mysql-driver.js +25 -0
  57. package/dist/esm/dialect/postgres/postgres-dialect-config.d.ts +29 -0
  58. package/dist/esm/dialect/postgres/postgres-driver.d.ts +6 -2
  59. package/dist/esm/dialect/postgres/postgres-driver.js +24 -2
  60. package/dist/esm/dialect/sqlite/sqlite-driver.js +3 -0
  61. package/dist/esm/driver/database-connection.d.ts +1 -0
  62. package/dist/esm/driver/dummy-driver.js +3 -0
  63. package/dist/esm/index.d.ts +4 -0
  64. package/dist/esm/index.js +4 -0
  65. package/dist/esm/operation-node/create-type-node.d.ts +17 -0
  66. package/dist/esm/operation-node/create-type-node.js +25 -0
  67. package/dist/esm/operation-node/data-type-node.d.ts +1 -1
  68. package/dist/esm/operation-node/drop-type-node.d.ts +16 -0
  69. package/dist/esm/operation-node/drop-type-node.js +23 -0
  70. package/dist/esm/operation-node/insert-query-node.d.ts +2 -1
  71. package/dist/esm/operation-node/insert-query-node.js +2 -1
  72. package/dist/esm/operation-node/operation-node-transformer.d.ts +9 -2
  73. package/dist/esm/operation-node/operation-node-transformer.js +148 -122
  74. package/dist/esm/operation-node/operation-node-visitor.d.ts +6 -0
  75. package/dist/esm/operation-node/operation-node-visitor.js +3 -0
  76. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  77. package/dist/esm/operation-node/select-modifier-node.d.ts +16 -0
  78. package/dist/esm/operation-node/select-modifier-node.js +22 -0
  79. package/dist/esm/operation-node/select-query-node.d.ts +5 -5
  80. package/dist/esm/operation-node/select-query-node.js +11 -9
  81. package/dist/esm/plugin/with-schema/with-schema-transformer.d.ts +4 -0
  82. package/dist/esm/plugin/with-schema/with-schema-transformer.js +6 -0
  83. package/dist/esm/query-builder/insert-query-builder.d.ts +1 -1
  84. package/dist/esm/query-builder/select-query-builder.d.ts +77 -6
  85. package/dist/esm/query-builder/select-query-builder.js +101 -14
  86. package/dist/esm/query-compiler/default-query-compiler.d.ts +6 -0
  87. package/dist/esm/query-compiler/default-query-compiler.js +30 -8
  88. package/dist/esm/query-compiler/query-compiler.d.ts +3 -1
  89. package/dist/esm/query-creator.d.ts +27 -0
  90. package/dist/esm/query-creator.js +33 -0
  91. package/dist/esm/query-executor/query-executor-base.d.ts +6 -0
  92. package/dist/esm/query-executor/query-executor-base.js +19 -0
  93. package/dist/esm/query-executor/query-executor.d.ts +11 -0
  94. package/dist/esm/schema/create-table-builder.d.ts +6 -6
  95. package/dist/esm/schema/create-table-builder.js +6 -6
  96. package/dist/esm/schema/create-type-builder.d.ts +28 -0
  97. package/dist/esm/schema/create-type-builder.js +35 -0
  98. package/dist/esm/schema/drop-type-builder.d.ts +19 -0
  99. package/dist/esm/schema/drop-type-builder.js +28 -0
  100. package/dist/esm/schema/schema.d.ts +32 -0
  101. package/dist/esm/schema/schema.js +46 -0
  102. package/dist/esm/util/deferred.d.ts +7 -0
  103. package/dist/esm/util/deferred.js +25 -0
  104. package/dist/esm/util/require-all-props.d.ts +43 -0
  105. package/dist/esm/util/require-all-props.js +37 -0
  106. package/package.json +5 -2
@@ -6,6 +6,7 @@ import { CompiledQuery } from '../query-compiler/compiled-query.js';
6
6
  */
7
7
  export interface DatabaseConnection {
8
8
  executeQuery<R>(compiledQuery: CompiledQuery): Promise<QueryResult<R>>;
9
+ streamQuery<R>(compiledQuery: CompiledQuery, chunkSize?: number): AsyncIterableIterator<QueryResult<R>>;
9
10
  }
10
11
  export interface QueryResult<O> {
11
12
  /**
@@ -64,4 +64,7 @@ class DummyConnection {
64
64
  rows: [],
65
65
  };
66
66
  }
67
+ async *streamQuery() {
68
+ // Nothing to do here.
69
+ }
67
70
  }
@@ -25,7 +25,9 @@ export * from './query-compiler/default-query-compiler.js';
25
25
  export * from './query-compiler/compiled-query.js';
26
26
  export * from './schema/schema.js';
27
27
  export * from './schema/create-table-builder.js';
28
+ export * from './schema/create-type-builder.js';
28
29
  export * from './schema/drop-table-builder.js';
30
+ export * from './schema/drop-type-builder.js';
29
31
  export * from './schema/create-index-builder.js';
30
32
  export * from './schema/drop-index-builder.js';
31
33
  export * from './schema/create-schema-builder.js';
@@ -87,6 +89,7 @@ export * from './operation-node/constraint-node.js';
87
89
  export * from './operation-node/create-index-node.js';
88
90
  export * from './operation-node/create-schema-node.js';
89
91
  export * from './operation-node/create-table-node.js';
92
+ export * from './operation-node/create-type-node.js';
90
93
  export * from './operation-node/create-view-node.js';
91
94
  export * from './operation-node/data-type-node.js';
92
95
  export * from './operation-node/default-value-node.js';
@@ -96,6 +99,7 @@ export * from './operation-node/drop-constraint-node.js';
96
99
  export * from './operation-node/drop-index-node.js';
97
100
  export * from './operation-node/drop-schema-node.js';
98
101
  export * from './operation-node/drop-table-node.js';
102
+ export * from './operation-node/drop-type-node.js';
99
103
  export * from './operation-node/drop-view-node.js';
100
104
  export * from './operation-node/filter-node.js';
101
105
  export * from './operation-node/foreign-key-constraint-node.js';
package/dist/esm/index.js CHANGED
@@ -26,7 +26,9 @@ export * from './query-compiler/default-query-compiler.js';
26
26
  export * from './query-compiler/compiled-query.js';
27
27
  export * from './schema/schema.js';
28
28
  export * from './schema/create-table-builder.js';
29
+ export * from './schema/create-type-builder.js';
29
30
  export * from './schema/drop-table-builder.js';
31
+ export * from './schema/drop-type-builder.js';
30
32
  export * from './schema/create-index-builder.js';
31
33
  export * from './schema/drop-index-builder.js';
32
34
  export * from './schema/create-schema-builder.js';
@@ -88,6 +90,7 @@ export * from './operation-node/constraint-node.js';
88
90
  export * from './operation-node/create-index-node.js';
89
91
  export * from './operation-node/create-schema-node.js';
90
92
  export * from './operation-node/create-table-node.js';
93
+ export * from './operation-node/create-type-node.js';
91
94
  export * from './operation-node/create-view-node.js';
92
95
  export * from './operation-node/data-type-node.js';
93
96
  export * from './operation-node/default-value-node.js';
@@ -97,6 +100,7 @@ export * from './operation-node/drop-constraint-node.js';
97
100
  export * from './operation-node/drop-index-node.js';
98
101
  export * from './operation-node/drop-schema-node.js';
99
102
  export * from './operation-node/drop-table-node.js';
103
+ export * from './operation-node/drop-type-node.js';
100
104
  export * from './operation-node/drop-view-node.js';
101
105
  export * from './operation-node/filter-node.js';
102
106
  export * from './operation-node/foreign-key-constraint-node.js';
@@ -0,0 +1,17 @@
1
+ import { IdentifierNode } from './identifier-node.js';
2
+ import { OperationNode } from './operation-node.js';
3
+ import { ValueListNode } from './value-list-node.js';
4
+ export declare type CreateTypeNodeParams = Omit<Partial<CreateTypeNode>, 'kind'>;
5
+ export interface CreateTypeNode extends OperationNode {
6
+ readonly kind: 'CreateTypeNode';
7
+ readonly name: IdentifierNode;
8
+ readonly enum?: ValueListNode;
9
+ }
10
+ /**
11
+ * @internal
12
+ */
13
+ export declare const CreateTypeNode: Readonly<{
14
+ is(node: OperationNode): node is CreateTypeNode;
15
+ create(name: string): CreateTypeNode;
16
+ cloneWithEnum(createType: CreateTypeNode, values: string[]): CreateTypeNode;
17
+ }>;
@@ -0,0 +1,25 @@
1
+ /// <reference types="./create-type-node.d.ts" />
2
+ import { freeze } from '../util/object-utils.js';
3
+ import { IdentifierNode } from './identifier-node.js';
4
+ import { ValueListNode } from './value-list-node.js';
5
+ import { ValueNode } from './value-node.js';
6
+ /**
7
+ * @internal
8
+ */
9
+ export const CreateTypeNode = freeze({
10
+ is(node) {
11
+ return node.kind === 'CreateTypeNode';
12
+ },
13
+ create(name) {
14
+ return freeze({
15
+ kind: 'CreateTypeNode',
16
+ name: IdentifierNode.create(name),
17
+ });
18
+ },
19
+ cloneWithEnum(createType, values) {
20
+ return freeze({
21
+ ...createType,
22
+ enum: ValueListNode.create(values.map((value) => ValueNode.createImmediate(value))),
23
+ });
24
+ },
25
+ });
@@ -1,5 +1,5 @@
1
1
  import { OperationNode } from './operation-node.js';
2
- export declare type ColumnDataType = 'varchar' | `varchar(${number})` | 'text' | 'integer' | 'int2' | 'int4' | 'int8' | 'bigint' | 'boolean' | 'real' | 'double precision' | 'float4' | 'float8' | 'decimal' | `decimal(${number}, ${number})` | 'numeric' | `numeric(${number}, ${number})` | 'binary' | 'date' | 'datetime' | 'time' | 'timetz' | 'timestamp' | 'timestamptz' | 'serial' | 'bigserial' | 'uuid' | 'json' | 'jsonb' | 'blob';
2
+ export declare type ColumnDataType = 'varchar' | `varchar(${number})` | 'text' | 'integer' | 'int2' | 'int4' | 'int8' | 'bigint' | 'boolean' | 'real' | 'double precision' | 'float4' | 'float8' | 'decimal' | `decimal(${number}, ${number})` | 'numeric' | `numeric(${number}, ${number})` | 'binary' | 'date' | 'datetime' | `datetime(${number})` | 'time' | `time(${number})` | 'timetz' | `timetz(${number})` | 'timestamp' | `timestamp(${number})` | 'timestamptz' | `timestamptz(${number})` | 'serial' | 'bigserial' | 'uuid' | 'json' | 'jsonb' | 'blob';
3
3
  export declare type DataTypeParams = Omit<DataTypeNode, 'kind' | 'dataType'>;
4
4
  export interface DataTypeNode extends OperationNode {
5
5
  readonly kind: 'DataTypeNode';
@@ -0,0 +1,16 @@
1
+ import { IdentifierNode } from './identifier-node.js';
2
+ import { OperationNode } from './operation-node.js';
3
+ export declare type DropTypeNodeParams = Omit<Partial<DropTypeNode>, 'kind' | 'name'>;
4
+ export interface DropTypeNode extends OperationNode {
5
+ readonly kind: 'DropTypeNode';
6
+ readonly name: IdentifierNode;
7
+ readonly ifExists?: boolean;
8
+ }
9
+ /**
10
+ * @internal
11
+ */
12
+ export declare const DropTypeNode: Readonly<{
13
+ is(node: OperationNode): node is DropTypeNode;
14
+ create(name: string): DropTypeNode;
15
+ cloneWith(dropType: DropTypeNode, params: DropTypeNodeParams): DropTypeNode;
16
+ }>;
@@ -0,0 +1,23 @@
1
+ /// <reference types="./drop-type-node.d.ts" />
2
+ import { freeze } from '../util/object-utils.js';
3
+ import { IdentifierNode } from './identifier-node.js';
4
+ /**
5
+ * @internal
6
+ */
7
+ export const DropTypeNode = freeze({
8
+ is(node) {
9
+ return node.kind === 'DropTypeNode';
10
+ },
11
+ create(name) {
12
+ return freeze({
13
+ kind: 'DropTypeNode',
14
+ name: IdentifierNode.create(name),
15
+ });
16
+ },
17
+ cloneWith(dropType, params) {
18
+ return freeze({
19
+ ...dropType,
20
+ ...params,
21
+ });
22
+ },
23
+ });
@@ -19,12 +19,13 @@ export interface InsertQueryNode extends OperationNode {
19
19
  readonly onDuplicateKey?: OnDuplicateKeyNode;
20
20
  readonly with?: WithNode;
21
21
  readonly ignore?: boolean;
22
+ readonly replace?: boolean;
22
23
  }
23
24
  /**
24
25
  * @internal
25
26
  */
26
27
  export declare const InsertQueryNode: Readonly<{
27
28
  is(node: OperationNode): node is InsertQueryNode;
28
- create(into: TableNode, withNode?: WithNode): InsertQueryNode;
29
+ create(into: TableNode, withNode?: WithNode, replace?: boolean): InsertQueryNode;
29
30
  cloneWith(insertQuery: InsertQueryNode, props: InsertQueryNodeProps): InsertQueryNode;
30
31
  }>;
@@ -7,11 +7,12 @@ export const InsertQueryNode = freeze({
7
7
  is(node) {
8
8
  return node.kind === 'InsertQueryNode';
9
9
  },
10
- create(into, withNode) {
10
+ create(into, withNode, replace) {
11
11
  return freeze({
12
12
  kind: 'InsertQueryNode',
13
13
  into,
14
14
  ...(withNode && { with: withNode }),
15
+ replace,
15
16
  });
16
17
  },
17
18
  cloneWith(insertQuery, props) {
@@ -65,6 +65,9 @@ import { GeneratedNode } from './generated-node.js';
65
65
  import { DefaultValueNode } from './default-value-node.js';
66
66
  import { OnNode } from './on-node.js';
67
67
  import { ValuesNode } from './values-node.js';
68
+ import { SelectModifierNode } from './select-modifier-node.js';
69
+ import { CreateTypeNode } from './create-type-node.js';
70
+ import { DropTypeNode } from './drop-type-node.js';
68
71
  /**
69
72
  * Transforms an operation node tree into another one.
70
73
  *
@@ -97,8 +100,9 @@ import { ValuesNode } from './values-node.js';
97
100
  export declare class OperationNodeTransformer {
98
101
  #private;
99
102
  protected readonly nodeStack: OperationNode[];
100
- readonly transformNode: <T extends OperationNode | undefined>(node: OperationNode | undefined) => T;
101
- protected transformNodeList<T extends OperationNode>(list: readonly T[] | undefined): readonly T[];
103
+ readonly transformNode: <T extends OperationNode | undefined, U extends T | undefined = T>(node: U) => T;
104
+ protected transformNodeList<T extends OperationNode, U extends T = T>(list: readonly U[]): readonly T[];
105
+ protected transformNodeList<T extends OperationNode, U extends T = T>(list: readonly U[] | undefined): readonly T[] | undefined;
102
106
  protected transformSelectQuery(node: SelectQueryNode): SelectQueryNode;
103
107
  protected transformSelection(node: SelectionNode): SelectionNode;
104
108
  protected transformColumn(node: ColumnNode): ColumnNode;
@@ -159,6 +163,9 @@ export declare class OperationNodeTransformer {
159
163
  protected transformGenerated(node: GeneratedNode): GeneratedNode;
160
164
  protected transformDefaultValue(node: DefaultValueNode): DefaultValueNode;
161
165
  protected transformOn(node: OnNode): OnNode;
166
+ protected transformSelectModifier(node: SelectModifierNode): SelectModifierNode;
167
+ protected transformCreateType(node: CreateTypeNode): CreateTypeNode;
168
+ protected transformDropType(node: DropTypeNode): DropTypeNode;
162
169
  protected transformDataType(node: DataTypeNode): DataTypeNode;
163
170
  protected transformSelectAll(node: SelectAllNode): SelectAllNode;
164
171
  protected transformIdentifier(node: IdentifierNode): IdentifierNode;