kysely 0.12.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.
- package/README.md +34 -10
- package/dist/cjs/{introspection → dialect}/database-introspector.d.ts +0 -0
- package/dist/cjs/{introspection → dialect}/database-introspector.js +0 -0
- package/dist/cjs/dialect/dialect-adapter-base.d.ts +36 -0
- package/dist/cjs/dialect/dialect.d.ts +1 -1
- package/dist/cjs/dialect/mysql/mysql-adapter.d.ts +38 -2
- package/dist/cjs/dialect/mysql/mysql-adapter.js +2 -1
- package/dist/cjs/dialect/mysql/mysql-dialect.d.ts +17 -1
- package/dist/cjs/dialect/mysql/mysql-driver.d.ts +29 -0
- package/dist/cjs/dialect/mysql/mysql-introspector.d.ts +4 -1
- package/dist/cjs/dialect/postgres/postgres-adapter.d.ts +38 -2
- package/dist/cjs/dialect/postgres/postgres-adapter.js +2 -1
- package/dist/cjs/dialect/postgres/postgres-dialect.d.ts +17 -1
- package/dist/cjs/dialect/postgres/postgres-driver.d.ts +29 -0
- package/dist/cjs/dialect/postgres/postgres-introspector.d.ts +4 -1
- package/dist/cjs/dialect/sqlite/sqlite-adapter.d.ts +38 -2
- package/dist/cjs/dialect/sqlite/sqlite-dialect.d.ts +17 -1
- package/dist/cjs/dialect/sqlite/sqlite-driver.d.ts +29 -0
- package/dist/cjs/dialect/sqlite/sqlite-introspector.d.ts +4 -1
- package/dist/cjs/driver/default-connection-provider.d.ts +4 -0
- package/dist/cjs/driver/runtime-driver.d.ts +29 -0
- package/dist/cjs/driver/single-connection-provider.d.ts +4 -0
- package/dist/cjs/index.d.ts +4 -3
- package/dist/cjs/index.js +3 -2
- package/dist/cjs/kysely.d.ts +152 -1
- package/dist/cjs/kysely.js +37 -0
- package/dist/cjs/migration/migration.d.ts +154 -11
- package/dist/cjs/migration/migration.js +256 -135
- package/dist/cjs/operation-node/check-constraint-node.d.ts +1 -1
- package/dist/cjs/operation-node/check-constraint-node.js +2 -3
- package/dist/cjs/operation-node/column-definition-node.d.ts +8 -7
- package/dist/cjs/operation-node/column-definition-node.js +0 -4
- package/dist/cjs/operation-node/common-table-expression-name-node.d.ts +15 -0
- package/dist/cjs/operation-node/common-table-expression-name-node.js +23 -0
- package/dist/cjs/operation-node/common-table-expression-node.d.ts +3 -3
- package/dist/cjs/operation-node/data-type-node.d.ts +1 -1
- package/dist/cjs/operation-node/generated-node.d.ts +20 -0
- package/dist/cjs/operation-node/generated-node.js +31 -0
- package/dist/cjs/operation-node/on-conflict-node.d.ts +13 -2
- package/dist/cjs/operation-node/on-conflict-node.js +39 -1
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +4 -2
- package/dist/cjs/operation-node/operation-node-transformer.js +22 -6
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +4 -2
- package/dist/cjs/operation-node/operation-node-visitor.js +2 -1
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/with-node.d.ts +3 -1
- package/dist/cjs/operation-node/with-node.js +2 -1
- package/dist/cjs/package.json +1 -3
- package/dist/cjs/parser/parse-context.d.ts +14 -0
- package/dist/cjs/parser/with-parser.d.ts +32 -5
- package/dist/cjs/parser/with-parser.js +13 -2
- package/dist/cjs/plugin/camel-case/camel-case-plugin.d.ts +36 -2
- package/dist/cjs/plugin/immediate-value.ts/immediate-value-plugin.d.ts +34 -0
- package/dist/cjs/plugin/with-schema/with-schema-plugin.d.ts +34 -0
- package/dist/cjs/plugin/with-schema/with-schema-transformer.js +8 -0
- package/dist/cjs/query-builder/delete-query-builder.d.ts +545 -0
- package/dist/cjs/query-builder/insert-query-builder.d.ts +142 -76
- package/dist/cjs/query-builder/insert-query-builder.js +150 -15
- package/dist/cjs/query-builder/join-interface.d.ts +3 -6
- package/dist/cjs/query-builder/on-conflict-builder.d.ts +684 -0
- package/dist/cjs/query-builder/on-conflict-builder.js +323 -0
- package/dist/cjs/query-builder/returning-interface.d.ts +1 -1
- package/dist/cjs/query-builder/select-query-builder.d.ts +513 -2
- package/dist/cjs/query-builder/select-query-builder.js +2 -2
- package/dist/cjs/query-builder/update-query-builder.d.ts +547 -2
- package/dist/cjs/query-builder/update-query-builder.js +2 -2
- package/dist/cjs/query-builder/where-interface.d.ts +7 -10
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +4 -2
- package/dist/cjs/query-compiler/default-query-compiler.js +48 -8
- package/dist/cjs/query-creator.d.ts +27 -3
- package/dist/cjs/query-creator.js +33 -1
- package/dist/cjs/query-executor/default-query-executor.d.ts +19 -0
- package/dist/cjs/query-executor/noop-query-executor.d.ts +19 -0
- package/dist/cjs/raw-builder/raw-builder.js +1 -1
- package/dist/cjs/schema/alter-table-builder.d.ts +253 -5
- package/dist/cjs/schema/alter-table-builder.js +45 -9
- package/dist/cjs/schema/column-definition-builder.d.ts +146 -6
- package/dist/cjs/schema/column-definition-builder.js +21 -8
- package/dist/cjs/schema/create-index-builder.d.ts +3 -2
- package/dist/cjs/schema/create-index-builder.js +2 -2
- package/dist/cjs/schema/create-table-builder.d.ts +3 -2
- package/dist/cjs/schema/create-table-builder.js +2 -2
- package/dist/esm/{introspection → dialect}/database-introspector.d.ts +0 -0
- package/dist/esm/{introspection → dialect}/database-introspector.js +0 -0
- package/dist/esm/dialect/dialect-adapter-base.d.ts +36 -0
- package/dist/esm/dialect/dialect.d.ts +1 -1
- package/dist/esm/dialect/mysql/mysql-adapter.d.ts +38 -2
- package/dist/esm/dialect/mysql/mysql-adapter.js +2 -1
- package/dist/esm/dialect/mysql/mysql-dialect.d.ts +17 -1
- package/dist/esm/dialect/mysql/mysql-driver.d.ts +29 -0
- package/dist/esm/dialect/mysql/mysql-introspector.d.ts +4 -1
- package/dist/esm/dialect/postgres/postgres-adapter.d.ts +38 -2
- package/dist/esm/dialect/postgres/postgres-adapter.js +2 -1
- package/dist/esm/dialect/postgres/postgres-dialect.d.ts +17 -1
- package/dist/esm/dialect/postgres/postgres-driver.d.ts +29 -0
- package/dist/esm/dialect/postgres/postgres-introspector.d.ts +4 -1
- package/dist/esm/dialect/sqlite/sqlite-adapter.d.ts +38 -2
- package/dist/esm/dialect/sqlite/sqlite-dialect.d.ts +17 -1
- package/dist/esm/dialect/sqlite/sqlite-driver.d.ts +29 -0
- package/dist/esm/dialect/sqlite/sqlite-introspector.d.ts +4 -1
- package/dist/esm/driver/default-connection-provider.d.ts +4 -0
- package/dist/esm/driver/runtime-driver.d.ts +29 -0
- package/dist/esm/driver/single-connection-provider.d.ts +4 -0
- package/dist/esm/index.d.ts +4 -3
- package/dist/esm/index.js +3 -2
- package/dist/esm/kysely.d.ts +152 -1
- package/dist/esm/kysely.js +37 -0
- package/dist/esm/migration/migration.d.ts +154 -11
- package/dist/esm/migration/migration.js +255 -134
- package/dist/esm/operation-node/check-constraint-node.d.ts +1 -1
- package/dist/esm/operation-node/check-constraint-node.js +2 -3
- package/dist/esm/operation-node/column-definition-node.d.ts +8 -7
- package/dist/esm/operation-node/column-definition-node.js +0 -4
- package/dist/esm/operation-node/common-table-expression-name-node.d.ts +15 -0
- package/dist/esm/operation-node/common-table-expression-name-node.js +20 -0
- package/dist/esm/operation-node/common-table-expression-node.d.ts +3 -3
- package/dist/esm/operation-node/data-type-node.d.ts +1 -1
- package/dist/esm/operation-node/generated-node.d.ts +20 -0
- package/dist/esm/operation-node/generated-node.js +28 -0
- package/dist/esm/operation-node/on-conflict-node.d.ts +13 -2
- package/dist/esm/operation-node/on-conflict-node.js +39 -1
- package/dist/esm/operation-node/operation-node-transformer.d.ts +4 -2
- package/dist/esm/operation-node/operation-node-transformer.js +22 -6
- package/dist/esm/operation-node/operation-node-visitor.d.ts +4 -2
- package/dist/esm/operation-node/operation-node-visitor.js +2 -1
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/with-node.d.ts +3 -1
- package/dist/esm/operation-node/with-node.js +2 -1
- package/dist/esm/package.json +1 -3
- package/dist/esm/parser/parse-context.d.ts +14 -0
- package/dist/esm/parser/with-parser.d.ts +32 -5
- package/dist/esm/parser/with-parser.js +13 -2
- package/dist/esm/plugin/camel-case/camel-case-plugin.d.ts +36 -2
- package/dist/esm/plugin/immediate-value.ts/immediate-value-plugin.d.ts +34 -0
- package/dist/esm/plugin/with-schema/with-schema-plugin.d.ts +34 -0
- package/dist/esm/plugin/with-schema/with-schema-transformer.js +8 -0
- package/dist/esm/query-builder/delete-query-builder.d.ts +545 -0
- package/dist/esm/query-builder/insert-query-builder.d.ts +142 -76
- package/dist/esm/query-builder/insert-query-builder.js +150 -15
- package/dist/esm/query-builder/join-interface.d.ts +3 -6
- package/dist/esm/query-builder/on-conflict-builder.d.ts +684 -0
- package/dist/esm/query-builder/on-conflict-builder.js +317 -0
- package/dist/esm/query-builder/returning-interface.d.ts +1 -1
- package/dist/esm/query-builder/select-query-builder.d.ts +513 -2
- package/dist/esm/query-builder/select-query-builder.js +2 -2
- package/dist/esm/query-builder/update-query-builder.d.ts +547 -2
- package/dist/esm/query-builder/update-query-builder.js +2 -2
- package/dist/esm/query-builder/where-interface.d.ts +7 -10
- package/dist/esm/query-compiler/default-query-compiler.d.ts +4 -2
- package/dist/esm/query-compiler/default-query-compiler.js +48 -8
- package/dist/esm/query-creator.d.ts +27 -3
- package/dist/esm/query-creator.js +33 -1
- package/dist/esm/query-executor/default-query-executor.d.ts +19 -0
- package/dist/esm/query-executor/noop-query-executor.d.ts +19 -0
- package/dist/esm/raw-builder/raw-builder.js +1 -1
- package/dist/esm/schema/alter-table-builder.d.ts +253 -5
- package/dist/esm/schema/alter-table-builder.js +45 -9
- package/dist/esm/schema/column-definition-builder.d.ts +146 -6
- package/dist/esm/schema/column-definition-builder.js +21 -8
- package/dist/esm/schema/create-index-builder.d.ts +3 -2
- package/dist/esm/schema/create-index-builder.js +2 -2
- package/dist/esm/schema/create-table-builder.d.ts +3 -2
- package/dist/esm/schema/create-table-builder.js +2 -2
- package/package.json +8 -6
- package/dist/cjs/operation-node/generated-always-as-node.d.ts +0 -16
- package/dist/cjs/operation-node/generated-always-as-node.js +0 -25
- package/dist/cjs/parser/on-conflict-parser.d.ts +0 -10
- package/dist/cjs/parser/on-conflict-parser.js +0 -35
- package/dist/esm/operation-node/generated-always-as-node.d.ts +0 -16
- package/dist/esm/operation-node/generated-always-as-node.js +0 -22
- package/dist/esm/parser/on-conflict-parser.d.ts +0 -10
- package/dist/esm/parser/on-conflict-parser.js +0 -30
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
import { ColumnNode } from '../operation-node/column-node.js';
|
|
2
|
+
import { IdentifierNode } from '../operation-node/identifier-node.js';
|
|
3
|
+
import { OnConflictNode } from '../operation-node/on-conflict-node.js';
|
|
4
|
+
import { parseWhereFilter, parseReferenceFilter, parseExistFilter, parseNotExistFilter, } from '../parser/filter-parser.js';
|
|
5
|
+
import { parseUpdateObject, } from '../parser/update-set-parser.js';
|
|
6
|
+
import { freeze } from '../util/object-utils.js';
|
|
7
|
+
import { preventAwait } from '../util/prevent-await.js';
|
|
8
|
+
export class OnConflictBuilder {
|
|
9
|
+
#props;
|
|
10
|
+
constructor(props) {
|
|
11
|
+
this.#props = freeze(props);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Specify a single column as the conflict target.
|
|
15
|
+
*
|
|
16
|
+
* Also see the {@link columns}, {@link constraint} and {@link expression}
|
|
17
|
+
* methods for alternative ways to specify the conflict target.
|
|
18
|
+
*/
|
|
19
|
+
column(column) {
|
|
20
|
+
const columnNode = ColumnNode.create(column);
|
|
21
|
+
return new OnConflictBuilder({
|
|
22
|
+
...this.#props,
|
|
23
|
+
onConflictNode: OnConflictNode.cloneWith(this.#props.onConflictNode, {
|
|
24
|
+
columns: this.#props.onConflictNode.columns
|
|
25
|
+
? freeze([...this.#props.onConflictNode.columns, columnNode])
|
|
26
|
+
: freeze([columnNode]),
|
|
27
|
+
}),
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Specify a list of columns as the conflict target.
|
|
32
|
+
*
|
|
33
|
+
* Also see the {@link column}, {@link constraint} and {@link expression}
|
|
34
|
+
* methods for alternative ways to specify the conflict target.
|
|
35
|
+
*/
|
|
36
|
+
columns(columns) {
|
|
37
|
+
const columnNodes = columns.map(ColumnNode.create);
|
|
38
|
+
return new OnConflictBuilder({
|
|
39
|
+
...this.#props,
|
|
40
|
+
onConflictNode: OnConflictNode.cloneWith(this.#props.onConflictNode, {
|
|
41
|
+
columns: this.#props.onConflictNode.columns
|
|
42
|
+
? freeze([...this.#props.onConflictNode.columns, ...columnNodes])
|
|
43
|
+
: freeze(columnNodes),
|
|
44
|
+
}),
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Specify a specific constraint by name as the conflict target.
|
|
49
|
+
*
|
|
50
|
+
* Also see the {@link column}, {@link columns} and {@link expression}
|
|
51
|
+
* methods for alternative ways to specify the conflict target.
|
|
52
|
+
*/
|
|
53
|
+
constraint(constraintName) {
|
|
54
|
+
return new OnConflictBuilder({
|
|
55
|
+
...this.#props,
|
|
56
|
+
onConflictNode: OnConflictNode.cloneWith(this.#props.onConflictNode, {
|
|
57
|
+
constraint: IdentifierNode.create(constraintName),
|
|
58
|
+
}),
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Specify an expression as the conflict target.
|
|
63
|
+
*
|
|
64
|
+
* This can be used if the unique index is an expression index.
|
|
65
|
+
*
|
|
66
|
+
* Also see the {@link column}, {@link columns} and {@link constraint}
|
|
67
|
+
* methods for alternative ways to specify the conflict target.
|
|
68
|
+
*/
|
|
69
|
+
expression(expression) {
|
|
70
|
+
return new OnConflictBuilder({
|
|
71
|
+
...this.#props,
|
|
72
|
+
onConflictNode: OnConflictNode.cloneWith(this.#props.onConflictNode, {
|
|
73
|
+
indexExpression: expression.toOperationNode(),
|
|
74
|
+
}),
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
where(...args) {
|
|
78
|
+
return new OnConflictBuilder({
|
|
79
|
+
...this.#props,
|
|
80
|
+
onConflictNode: OnConflictNode.cloneWithIndexWhere(this.#props.onConflictNode, parseWhereFilter(this.#props.parseContext, args)),
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Specify an index predicate for the index target.
|
|
85
|
+
*
|
|
86
|
+
* See {@link WhereInterface.whereRef} for more info.
|
|
87
|
+
*/
|
|
88
|
+
whereRef(lhs, op, rhs) {
|
|
89
|
+
return new OnConflictBuilder({
|
|
90
|
+
...this.#props,
|
|
91
|
+
onConflictNode: OnConflictNode.cloneWithIndexWhere(this.#props.onConflictNode, parseReferenceFilter(this.#props.parseContext, lhs, op, rhs)),
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
orWhere(...args) {
|
|
95
|
+
return new OnConflictBuilder({
|
|
96
|
+
...this.#props,
|
|
97
|
+
onConflictNode: OnConflictNode.cloneWithIndexOrWhere(this.#props.onConflictNode, parseWhereFilter(this.#props.parseContext, args)),
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Specify an index predicate for the index target.
|
|
102
|
+
*
|
|
103
|
+
* See {@link WhereInterface.orWhereRef} for more info.
|
|
104
|
+
*/
|
|
105
|
+
orWhereRef(lhs, op, rhs) {
|
|
106
|
+
return new OnConflictBuilder({
|
|
107
|
+
...this.#props,
|
|
108
|
+
onConflictNode: OnConflictNode.cloneWithIndexOrWhere(this.#props.onConflictNode, parseReferenceFilter(this.#props.parseContext, lhs, op, rhs)),
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Specify an index predicate for the index target.
|
|
113
|
+
*
|
|
114
|
+
* See {@link WhereInterface.whereExists} for more info.
|
|
115
|
+
*/
|
|
116
|
+
whereExists(arg) {
|
|
117
|
+
return new OnConflictBuilder({
|
|
118
|
+
...this.#props,
|
|
119
|
+
onConflictNode: OnConflictNode.cloneWithIndexWhere(this.#props.onConflictNode, parseExistFilter(this.#props.parseContext, arg)),
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Specify an index predicate for the index target.
|
|
124
|
+
*
|
|
125
|
+
* See {@link WhereInterface.whereNotExists} for more info.
|
|
126
|
+
*/
|
|
127
|
+
whereNotExists(arg) {
|
|
128
|
+
return new OnConflictBuilder({
|
|
129
|
+
...this.#props,
|
|
130
|
+
onConflictNode: OnConflictNode.cloneWithIndexWhere(this.#props.onConflictNode, parseNotExistFilter(this.#props.parseContext, arg)),
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Specify an index predicate for the index target.
|
|
135
|
+
*
|
|
136
|
+
* See {@link WhereInterface.orWhereExists} for more info.
|
|
137
|
+
*/
|
|
138
|
+
orWhereExists(arg) {
|
|
139
|
+
return new OnConflictBuilder({
|
|
140
|
+
...this.#props,
|
|
141
|
+
onConflictNode: OnConflictNode.cloneWithIndexOrWhere(this.#props.onConflictNode, parseExistFilter(this.#props.parseContext, arg)),
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Specify an index predicate for the index target.
|
|
146
|
+
*
|
|
147
|
+
* See {@link WhereInterface.orWhereNotExists} for more info.
|
|
148
|
+
*/
|
|
149
|
+
orWhereNotExists(arg) {
|
|
150
|
+
return new OnConflictBuilder({
|
|
151
|
+
...this.#props,
|
|
152
|
+
onConflictNode: OnConflictNode.cloneWithIndexOrWhere(this.#props.onConflictNode, parseNotExistFilter(this.#props.parseContext, arg)),
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Adds the "do nothing" conflict action.
|
|
157
|
+
*
|
|
158
|
+
* ### Examples
|
|
159
|
+
*
|
|
160
|
+
* ```ts
|
|
161
|
+
* await db
|
|
162
|
+
* .insertInto('person')
|
|
163
|
+
* .values({ id: db.generated, first_name, pic })
|
|
164
|
+
* .onConflict((oc) => oc
|
|
165
|
+
* .column('pic')
|
|
166
|
+
* .doNothing()
|
|
167
|
+
* )
|
|
168
|
+
* ```
|
|
169
|
+
*
|
|
170
|
+
* The generated SQL (PostgreSQL):
|
|
171
|
+
*
|
|
172
|
+
* ```sql
|
|
173
|
+
* insert into "person" ("first_name", "pic")
|
|
174
|
+
* values ($1, $2)
|
|
175
|
+
* on conflict ("pic") do nothing
|
|
176
|
+
* ```
|
|
177
|
+
*/
|
|
178
|
+
doNothing() {
|
|
179
|
+
return new OnConflictDoNothingBuilder({
|
|
180
|
+
...this.#props,
|
|
181
|
+
onConflictNode: OnConflictNode.cloneWith(this.#props.onConflictNode, {
|
|
182
|
+
doNothing: true,
|
|
183
|
+
}),
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Adds the "do update set" conflict action.
|
|
188
|
+
*
|
|
189
|
+
* ### Examples
|
|
190
|
+
*
|
|
191
|
+
* ```ts
|
|
192
|
+
* await db
|
|
193
|
+
* .insertInto('person')
|
|
194
|
+
* .values({ id: db.generated, first_name, pic })
|
|
195
|
+
* .onConflict((oc) => oc
|
|
196
|
+
* .column('pic')
|
|
197
|
+
* .doUpdateSet({ first_name })
|
|
198
|
+
* )
|
|
199
|
+
* ```
|
|
200
|
+
*
|
|
201
|
+
* The generated SQL (PostgreSQL):
|
|
202
|
+
*
|
|
203
|
+
* ```sql
|
|
204
|
+
* insert into "person" ("first_name", "pic")
|
|
205
|
+
* values ($1, $2)
|
|
206
|
+
* on conflict ("pic")
|
|
207
|
+
* do update set "first_name" = $3
|
|
208
|
+
* ```
|
|
209
|
+
*/
|
|
210
|
+
doUpdateSet(updates) {
|
|
211
|
+
return new OnConflictUpdateBuilder({
|
|
212
|
+
...this.#props,
|
|
213
|
+
onConflictNode: OnConflictNode.cloneWith(this.#props.onConflictNode, {
|
|
214
|
+
updates: parseUpdateObject(this.#props.parseContext, updates),
|
|
215
|
+
}),
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
preventAwait(OnConflictBuilder, "don't await OnConflictBuilder instances.");
|
|
220
|
+
export class OnConflictDoNothingBuilder {
|
|
221
|
+
#props;
|
|
222
|
+
constructor(props) {
|
|
223
|
+
this.#props = freeze(props);
|
|
224
|
+
}
|
|
225
|
+
toOperationNode() {
|
|
226
|
+
return this.#props.onConflictNode;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
preventAwait(OnConflictDoNothingBuilder, "don't await OnConflictDoNothingBuilder instances.");
|
|
230
|
+
export class OnConflictUpdateBuilder {
|
|
231
|
+
#props;
|
|
232
|
+
constructor(props) {
|
|
233
|
+
this.#props = freeze(props);
|
|
234
|
+
}
|
|
235
|
+
where(...args) {
|
|
236
|
+
return new OnConflictUpdateBuilder({
|
|
237
|
+
...this.#props,
|
|
238
|
+
onConflictNode: OnConflictNode.cloneWithUpdateWhere(this.#props.onConflictNode, parseWhereFilter(this.#props.parseContext, args)),
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Specify a where condition for the update operation.
|
|
243
|
+
*
|
|
244
|
+
* See {@link WhereInterface.whereRef} for more info.
|
|
245
|
+
*/
|
|
246
|
+
whereRef(lhs, op, rhs) {
|
|
247
|
+
return new OnConflictUpdateBuilder({
|
|
248
|
+
...this.#props,
|
|
249
|
+
onConflictNode: OnConflictNode.cloneWithUpdateWhere(this.#props.onConflictNode, parseReferenceFilter(this.#props.parseContext, lhs, op, rhs)),
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
orWhere(...args) {
|
|
253
|
+
return new OnConflictUpdateBuilder({
|
|
254
|
+
...this.#props,
|
|
255
|
+
onConflictNode: OnConflictNode.cloneWithUpdateOrWhere(this.#props.onConflictNode, parseWhereFilter(this.#props.parseContext, args)),
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Specify a where condition for the update operation.
|
|
260
|
+
*
|
|
261
|
+
* See {@link WhereInterface.orWhereRef} for more info.
|
|
262
|
+
*/
|
|
263
|
+
orWhereRef(lhs, op, rhs) {
|
|
264
|
+
return new OnConflictUpdateBuilder({
|
|
265
|
+
...this.#props,
|
|
266
|
+
onConflictNode: OnConflictNode.cloneWithUpdateOrWhere(this.#props.onConflictNode, parseReferenceFilter(this.#props.parseContext, lhs, op, rhs)),
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Specify a where condition for the update operation.
|
|
271
|
+
*
|
|
272
|
+
* See {@link WhereInterface.whereExists} for more info.
|
|
273
|
+
*/
|
|
274
|
+
whereExists(arg) {
|
|
275
|
+
return new OnConflictUpdateBuilder({
|
|
276
|
+
...this.#props,
|
|
277
|
+
onConflictNode: OnConflictNode.cloneWithUpdateWhere(this.#props.onConflictNode, parseExistFilter(this.#props.parseContext, arg)),
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Specify a where condition for the update operation.
|
|
282
|
+
*
|
|
283
|
+
* See {@link WhereInterface.whereNotExists} for more info.
|
|
284
|
+
*/
|
|
285
|
+
whereNotExists(arg) {
|
|
286
|
+
return new OnConflictUpdateBuilder({
|
|
287
|
+
...this.#props,
|
|
288
|
+
onConflictNode: OnConflictNode.cloneWithUpdateWhere(this.#props.onConflictNode, parseNotExistFilter(this.#props.parseContext, arg)),
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Specify a where condition for the update operation.
|
|
293
|
+
*
|
|
294
|
+
* See {@link WhereInterface.orWhereExists} for more info.
|
|
295
|
+
*/
|
|
296
|
+
orWhereExists(arg) {
|
|
297
|
+
return new OnConflictUpdateBuilder({
|
|
298
|
+
...this.#props,
|
|
299
|
+
onConflictNode: OnConflictNode.cloneWithUpdateOrWhere(this.#props.onConflictNode, parseExistFilter(this.#props.parseContext, arg)),
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Specify a where condition for the update operation.
|
|
304
|
+
*
|
|
305
|
+
* See {@link WhereInterface.orWhereNotExists} for more info.
|
|
306
|
+
*/
|
|
307
|
+
orWhereNotExists(arg) {
|
|
308
|
+
return new OnConflictUpdateBuilder({
|
|
309
|
+
...this.#props,
|
|
310
|
+
onConflictNode: OnConflictNode.cloneWithUpdateOrWhere(this.#props.onConflictNode, parseNotExistFilter(this.#props.parseContext, arg)),
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
toOperationNode() {
|
|
314
|
+
return this.#props.onConflictNode;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
preventAwait(OnConflictUpdateBuilder, "don't await OnConflictUpdateBuilder instances.");
|
|
@@ -11,7 +11,7 @@ export interface ReturningInterface<DB, TB extends keyof DB, O> {
|
|
|
11
11
|
* [this bug](https://sqlite.org/forum/forumpost/033daf0b32) in SQLite.
|
|
12
12
|
* For example `.returning('id as id')`.
|
|
13
13
|
*
|
|
14
|
-
* Also see the {@link
|
|
14
|
+
* Also see the {@link returningAll} method.
|
|
15
15
|
*
|
|
16
16
|
* ### Examples
|
|
17
17
|
*
|