kysely 0.27.4 → 0.27.5

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 (209) hide show
  1. package/.renovaterc.json +3 -0
  2. package/CONTRIBUTING.md +1 -1
  3. package/deno.check.d.ts +86 -0
  4. package/deno.check.json +21 -0
  5. package/dist/cjs/dialect/dialect-adapter-base.d.ts +11 -2
  6. package/dist/cjs/dialect/dialect-adapter.d.ts +11 -2
  7. package/dist/cjs/dialect/mssql/mssql-adapter.d.ts +11 -2
  8. package/dist/cjs/dialect/mssql/mssql-dialect-config.d.ts +37 -29
  9. package/dist/cjs/dialect/mssql/mssql-driver.js +20 -13
  10. package/dist/cjs/dialect/mysql/mysql-adapter.d.ts +11 -2
  11. package/dist/cjs/dialect/mysql/mysql-dialect-config.d.ts +4 -0
  12. package/dist/cjs/dialect/mysql/mysql-driver.js +3 -0
  13. package/dist/cjs/dialect/postgres/postgres-adapter.d.ts +11 -2
  14. package/dist/cjs/dialect/postgres/postgres-dialect-config.d.ts +10 -3
  15. package/dist/cjs/dialect/postgres/postgres-driver.js +3 -0
  16. package/dist/cjs/dialect/postgres/postgres-introspector.js +5 -1
  17. package/dist/cjs/dialect/sqlite/sqlite-adapter.d.ts +11 -2
  18. package/dist/cjs/driver/dummy-driver.d.ts +13 -12
  19. package/dist/cjs/driver/dummy-driver.js +13 -12
  20. package/dist/cjs/dynamic/dynamic.d.ts +6 -6
  21. package/dist/cjs/dynamic/dynamic.js +6 -6
  22. package/dist/cjs/expression/expression-builder.d.ts +152 -61
  23. package/dist/cjs/expression/expression-wrapper.d.ts +92 -23
  24. package/dist/cjs/expression/expression.d.ts +40 -5
  25. package/dist/cjs/helpers/mssql.d.ts +74 -14
  26. package/dist/cjs/helpers/mssql.js +74 -14
  27. package/dist/cjs/helpers/mysql.d.ts +14 -10
  28. package/dist/cjs/helpers/mysql.js +14 -10
  29. package/dist/cjs/helpers/postgres.d.ts +7 -4
  30. package/dist/cjs/helpers/postgres.js +7 -4
  31. package/dist/cjs/helpers/sqlite.d.ts +41 -16
  32. package/dist/cjs/helpers/sqlite.js +41 -16
  33. package/dist/cjs/kysely.d.ts +99 -41
  34. package/dist/cjs/kysely.js +60 -36
  35. package/dist/cjs/migration/file-migration-provider.d.ts +2 -2
  36. package/dist/cjs/migration/file-migration-provider.js +2 -2
  37. package/dist/cjs/migration/migrator.d.ts +82 -14
  38. package/dist/cjs/migration/migrator.js +82 -14
  39. package/dist/cjs/operation-node/aggregate-function-node.d.ts +4 -0
  40. package/dist/cjs/operation-node/aggregate-function-node.js +9 -0
  41. package/dist/cjs/operation-node/data-type-node.d.ts +1 -1
  42. package/dist/cjs/operation-node/data-type-node.js +12 -0
  43. package/dist/cjs/operation-node/delete-query-node.d.ts +1 -0
  44. package/dist/cjs/operation-node/insert-query-node.d.ts +1 -0
  45. package/dist/cjs/operation-node/merge-query-node.d.ts +1 -0
  46. package/dist/cjs/operation-node/operation-node-transformer.d.ts +9 -3
  47. package/dist/cjs/operation-node/operation-node-transformer.js +14 -3
  48. package/dist/cjs/operation-node/query-node.d.ts +4 -0
  49. package/dist/cjs/operation-node/query-node.js +8 -0
  50. package/dist/cjs/operation-node/select-query-node.d.ts +0 -1
  51. package/dist/cjs/operation-node/select-query-node.js +0 -8
  52. package/dist/cjs/operation-node/update-query-node.d.ts +1 -0
  53. package/dist/cjs/plugin/camel-case/camel-case-plugin.d.ts +52 -25
  54. package/dist/cjs/plugin/camel-case/camel-case-plugin.js +24 -19
  55. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +29 -7
  56. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
  57. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-transformer.js +2 -2
  58. package/dist/cjs/plugin/immediate-value/immediate-value-plugin.d.ts +28 -6
  59. package/dist/cjs/plugin/kysely-plugin.d.ts +28 -6
  60. package/dist/cjs/plugin/noop-plugin.d.ts +28 -6
  61. package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.d.ts +62 -9
  62. package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.js +34 -3
  63. package/dist/cjs/plugin/with-schema/with-schema-plugin.d.ts +28 -6
  64. package/dist/cjs/query-builder/aggregate-function-builder.d.ts +43 -1
  65. package/dist/cjs/query-builder/aggregate-function-builder.js +30 -0
  66. package/dist/cjs/query-builder/delete-query-builder.d.ts +137 -45
  67. package/dist/cjs/query-builder/delete-query-builder.js +76 -26
  68. package/dist/cjs/query-builder/function-module.d.ts +35 -88
  69. package/dist/cjs/query-builder/insert-query-builder.d.ts +239 -65
  70. package/dist/cjs/query-builder/insert-query-builder.js +188 -52
  71. package/dist/cjs/query-builder/insert-result.d.ts +10 -5
  72. package/dist/cjs/query-builder/insert-result.js +10 -5
  73. package/dist/cjs/query-builder/json-path-builder.d.ts +33 -9
  74. package/dist/cjs/query-builder/json-path-builder.js +8 -5
  75. package/dist/cjs/query-builder/merge-query-builder.d.ts +159 -21
  76. package/dist/cjs/query-builder/merge-query-builder.js +68 -6
  77. package/dist/cjs/query-builder/on-conflict-builder.d.ts +51 -18
  78. package/dist/cjs/query-builder/on-conflict-builder.js +41 -16
  79. package/dist/cjs/query-builder/output-interface.d.ts +50 -7
  80. package/dist/cjs/query-builder/returning-interface.d.ts +5 -5
  81. package/dist/cjs/query-builder/select-query-builder-expression.d.ts +8 -0
  82. package/dist/cjs/query-builder/select-query-builder.d.ts +295 -63
  83. package/dist/cjs/query-builder/select-query-builder.js +7 -7
  84. package/dist/cjs/query-builder/update-query-builder.d.ts +138 -29
  85. package/dist/cjs/query-builder/update-query-builder.js +75 -10
  86. package/dist/cjs/query-builder/update-result.d.ts +2 -2
  87. package/dist/cjs/query-builder/update-result.js +2 -2
  88. package/dist/cjs/query-builder/where-interface.d.ts +5 -1
  89. package/dist/cjs/query-compiler/default-query-compiler.js +20 -0
  90. package/dist/cjs/query-creator.d.ts +66 -18
  91. package/dist/cjs/query-creator.js +2 -2
  92. package/dist/cjs/raw-builder/raw-builder.d.ts +29 -7
  93. package/dist/cjs/raw-builder/sql.d.ts +26 -7
  94. package/dist/cjs/schema/alter-column-builder.d.ts +17 -3
  95. package/dist/cjs/schema/alter-column-builder.js +17 -3
  96. package/dist/cjs/schema/alter-table-add-index-builder.d.ts +43 -9
  97. package/dist/cjs/schema/alter-table-add-index-builder.js +26 -9
  98. package/dist/cjs/schema/column-definition-builder.d.ts +283 -26
  99. package/dist/cjs/schema/column-definition-builder.js +283 -26
  100. package/dist/cjs/schema/create-table-builder.d.ts +86 -33
  101. package/dist/cjs/schema/create-table-builder.js +86 -33
  102. package/dist/cjs/util/column-type.d.ts +5 -9
  103. package/dist/cjs/util/require-all-props.d.ts +4 -2
  104. package/dist/cjs/util/require-all-props.js +4 -2
  105. package/dist/cjs/util/streamable.d.ts +1 -1
  106. package/dist/cjs/util/type-utils.d.ts +4 -2
  107. package/dist/esm/dialect/dialect-adapter-base.d.ts +11 -2
  108. package/dist/esm/dialect/dialect-adapter.d.ts +11 -2
  109. package/dist/esm/dialect/mssql/mssql-adapter.d.ts +11 -2
  110. package/dist/esm/dialect/mssql/mssql-dialect-config.d.ts +37 -29
  111. package/dist/esm/dialect/mssql/mssql-driver.js +20 -13
  112. package/dist/esm/dialect/mysql/mysql-adapter.d.ts +11 -2
  113. package/dist/esm/dialect/mysql/mysql-dialect-config.d.ts +4 -0
  114. package/dist/esm/dialect/mysql/mysql-driver.js +3 -0
  115. package/dist/esm/dialect/postgres/postgres-adapter.d.ts +11 -2
  116. package/dist/esm/dialect/postgres/postgres-dialect-config.d.ts +10 -3
  117. package/dist/esm/dialect/postgres/postgres-driver.js +3 -0
  118. package/dist/esm/dialect/postgres/postgres-introspector.js +5 -1
  119. package/dist/esm/dialect/sqlite/sqlite-adapter.d.ts +11 -2
  120. package/dist/esm/driver/dummy-driver.d.ts +13 -12
  121. package/dist/esm/driver/dummy-driver.js +13 -12
  122. package/dist/esm/dynamic/dynamic.d.ts +6 -6
  123. package/dist/esm/dynamic/dynamic.js +6 -6
  124. package/dist/esm/expression/expression-builder.d.ts +152 -61
  125. package/dist/esm/expression/expression-wrapper.d.ts +92 -23
  126. package/dist/esm/expression/expression.d.ts +40 -5
  127. package/dist/esm/helpers/mssql.d.ts +74 -14
  128. package/dist/esm/helpers/mssql.js +74 -14
  129. package/dist/esm/helpers/mysql.d.ts +14 -10
  130. package/dist/esm/helpers/mysql.js +14 -10
  131. package/dist/esm/helpers/postgres.d.ts +7 -4
  132. package/dist/esm/helpers/postgres.js +7 -4
  133. package/dist/esm/helpers/sqlite.d.ts +41 -16
  134. package/dist/esm/helpers/sqlite.js +41 -16
  135. package/dist/esm/kysely.d.ts +99 -41
  136. package/dist/esm/kysely.js +60 -36
  137. package/dist/esm/migration/file-migration-provider.d.ts +2 -2
  138. package/dist/esm/migration/file-migration-provider.js +2 -2
  139. package/dist/esm/migration/migrator.d.ts +82 -14
  140. package/dist/esm/migration/migrator.js +82 -14
  141. package/dist/esm/operation-node/aggregate-function-node.d.ts +4 -0
  142. package/dist/esm/operation-node/aggregate-function-node.js +9 -0
  143. package/dist/esm/operation-node/data-type-node.d.ts +1 -1
  144. package/dist/esm/operation-node/data-type-node.js +12 -0
  145. package/dist/esm/operation-node/delete-query-node.d.ts +1 -0
  146. package/dist/esm/operation-node/insert-query-node.d.ts +1 -0
  147. package/dist/esm/operation-node/merge-query-node.d.ts +1 -0
  148. package/dist/esm/operation-node/operation-node-transformer.d.ts +9 -3
  149. package/dist/esm/operation-node/operation-node-transformer.js +14 -3
  150. package/dist/esm/operation-node/query-node.d.ts +4 -0
  151. package/dist/esm/operation-node/query-node.js +8 -0
  152. package/dist/esm/operation-node/select-query-node.d.ts +0 -1
  153. package/dist/esm/operation-node/select-query-node.js +0 -8
  154. package/dist/esm/operation-node/update-query-node.d.ts +1 -0
  155. package/dist/esm/plugin/camel-case/camel-case-plugin.d.ts +52 -25
  156. package/dist/esm/plugin/camel-case/camel-case-plugin.js +24 -19
  157. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +29 -7
  158. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
  159. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-transformer.js +2 -2
  160. package/dist/esm/plugin/immediate-value/immediate-value-plugin.d.ts +28 -6
  161. package/dist/esm/plugin/kysely-plugin.d.ts +28 -6
  162. package/dist/esm/plugin/noop-plugin.d.ts +28 -6
  163. package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.d.ts +62 -9
  164. package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.js +34 -3
  165. package/dist/esm/plugin/with-schema/with-schema-plugin.d.ts +28 -6
  166. package/dist/esm/query-builder/aggregate-function-builder.d.ts +43 -1
  167. package/dist/esm/query-builder/aggregate-function-builder.js +30 -0
  168. package/dist/esm/query-builder/delete-query-builder.d.ts +137 -45
  169. package/dist/esm/query-builder/delete-query-builder.js +76 -26
  170. package/dist/esm/query-builder/function-module.d.ts +35 -88
  171. package/dist/esm/query-builder/insert-query-builder.d.ts +239 -65
  172. package/dist/esm/query-builder/insert-query-builder.js +188 -52
  173. package/dist/esm/query-builder/insert-result.d.ts +10 -5
  174. package/dist/esm/query-builder/insert-result.js +10 -5
  175. package/dist/esm/query-builder/json-path-builder.d.ts +33 -9
  176. package/dist/esm/query-builder/json-path-builder.js +8 -5
  177. package/dist/esm/query-builder/merge-query-builder.d.ts +159 -21
  178. package/dist/esm/query-builder/merge-query-builder.js +68 -6
  179. package/dist/esm/query-builder/on-conflict-builder.d.ts +51 -18
  180. package/dist/esm/query-builder/on-conflict-builder.js +41 -16
  181. package/dist/esm/query-builder/output-interface.d.ts +50 -7
  182. package/dist/esm/query-builder/returning-interface.d.ts +5 -5
  183. package/dist/esm/query-builder/select-query-builder-expression.d.ts +8 -0
  184. package/dist/esm/query-builder/select-query-builder.d.ts +295 -63
  185. package/dist/esm/query-builder/select-query-builder.js +7 -7
  186. package/dist/esm/query-builder/update-query-builder.d.ts +138 -29
  187. package/dist/esm/query-builder/update-query-builder.js +75 -10
  188. package/dist/esm/query-builder/update-result.d.ts +2 -2
  189. package/dist/esm/query-builder/update-result.js +2 -2
  190. package/dist/esm/query-builder/where-interface.d.ts +5 -1
  191. package/dist/esm/query-compiler/default-query-compiler.js +20 -0
  192. package/dist/esm/query-creator.d.ts +66 -18
  193. package/dist/esm/query-creator.js +2 -2
  194. package/dist/esm/raw-builder/raw-builder.d.ts +29 -7
  195. package/dist/esm/raw-builder/sql.d.ts +26 -7
  196. package/dist/esm/schema/alter-column-builder.d.ts +17 -3
  197. package/dist/esm/schema/alter-column-builder.js +17 -3
  198. package/dist/esm/schema/alter-table-add-index-builder.d.ts +43 -9
  199. package/dist/esm/schema/alter-table-add-index-builder.js +26 -9
  200. package/dist/esm/schema/column-definition-builder.d.ts +283 -26
  201. package/dist/esm/schema/column-definition-builder.js +283 -26
  202. package/dist/esm/schema/create-table-builder.d.ts +86 -33
  203. package/dist/esm/schema/create-table-builder.js +86 -33
  204. package/dist/esm/util/column-type.d.ts +5 -9
  205. package/dist/esm/util/require-all-props.d.ts +4 -2
  206. package/dist/esm/util/require-all-props.js +4 -2
  207. package/dist/esm/util/streamable.d.ts +1 -1
  208. package/dist/esm/util/type-utils.d.ts +4 -2
  209. package/package.json +28 -23
@@ -73,7 +73,7 @@ export class CreateTableBuilder {
73
73
  *
74
74
  * await db.schema
75
75
  * .createTable('person')
76
- * .addColumn('id', 'integer', (col) => col.autoIncrement().primaryKey()),
76
+ * .addColumn('id', 'integer', (col) => col.autoIncrement().primaryKey())
77
77
  * .addColumn('first_name', 'varchar(50)', (col) => col.notNull())
78
78
  * .addColumn('last_name', 'varchar(255)')
79
79
  * .addColumn('bank_balance', 'numeric(8, 2)')
@@ -81,7 +81,7 @@ export class CreateTableBuilder {
81
81
  * // don't include it.
82
82
  * .addColumn('data', sql`any_type_here`)
83
83
  * .addColumn('parent_id', 'integer', (col) =>
84
- * col.references('person.id').onDelete('cascade'))
84
+ * col.references('person.id').onDelete('cascade')
85
85
  * )
86
86
  * ```
87
87
  *
@@ -92,11 +92,18 @@ export class CreateTableBuilder {
92
92
  * `create table` query. See the next example:
93
93
  *
94
94
  * ```ts
95
+ * await db.schema
96
+ * .createTable('person')
97
+ * .addColumn('id', 'integer', (col) => col.primaryKey())
95
98
  * .addColumn('parent_id', 'integer')
96
99
  * .addForeignKeyConstraint(
97
- * 'person_parent_id_fk', ['parent_id'], 'person', ['id'],
100
+ * 'person_parent_id_fk',
101
+ * ['parent_id'],
102
+ * 'person',
103
+ * ['id'],
98
104
  * (cb) => cb.onDelete('cascade')
99
105
  * )
106
+ * .execute()
100
107
  * ```
101
108
  *
102
109
  * Another good example is that PostgreSQL doesn't support the `auto_increment`
@@ -106,7 +113,8 @@ export class CreateTableBuilder {
106
113
  * ```ts
107
114
  * await db.schema
108
115
  * .createTable('person')
109
- * .addColumn('id', 'serial', (col) => col.primaryKey()),
116
+ * .addColumn('id', 'serial', (col) => col.primaryKey())
117
+ * .execute()
110
118
  * ```
111
119
  */
112
120
  addColumn(columnName, dataType, build = noop) {
@@ -125,7 +133,12 @@ export class CreateTableBuilder {
125
133
  * ### Examples
126
134
  *
127
135
  * ```ts
128
- * addPrimaryKeyConstraint('primary_key', ['first_name', 'last_name'])
136
+ * await db.schema
137
+ * .createTable('person')
138
+ * .addColumn('first_name', 'varchar(64)')
139
+ * .addColumn('last_name', 'varchar(64)')
140
+ * .addPrimaryKeyConstraint('primary_key', ['first_name', 'last_name'])
141
+ * .execute()
129
142
  * ```
130
143
  */
131
144
  addPrimaryKeyConstraint(constraintName, columns) {
@@ -143,12 +156,30 @@ export class CreateTableBuilder {
143
156
  * ### Examples
144
157
  *
145
158
  * ```ts
146
- * addUniqueConstraint('first_name_last_name_unique', ['first_name', 'last_name'])
159
+ * await db.schema
160
+ * .createTable('person')
161
+ * .addColumn('first_name', 'varchar(64)')
162
+ * .addColumn('last_name', 'varchar(64)')
163
+ * .addUniqueConstraint(
164
+ * 'first_name_last_name_unique',
165
+ * ['first_name', 'last_name']
166
+ * )
167
+ * .execute()
147
168
  * ```
148
169
  *
149
170
  * In dialects such as PostgreSQL you can specify `nulls not distinct` as follows:
171
+ *
150
172
  * ```ts
151
- * addUniqueConstraint('first_name_last_name_unique', ['first_name', 'last_name'], (builder) => builder.nullsNotDistinct())
173
+ * await db.schema
174
+ * .createTable('person')
175
+ * .addColumn('first_name', 'varchar(64)')
176
+ * .addColumn('last_name', 'varchar(64)')
177
+ * .addUniqueConstraint(
178
+ * 'first_name_last_name_unique',
179
+ * ['first_name', 'last_name'],
180
+ * (cb) => cb.nullsNotDistinct()
181
+ * )
182
+ * .execute()
152
183
  * ```
153
184
  */
154
185
  addUniqueConstraint(constraintName, columns, build = noop) {
@@ -169,7 +200,11 @@ export class CreateTableBuilder {
169
200
  * ```ts
170
201
  * import { sql } from 'kysely'
171
202
  *
172
- * addCheckConstraint('check_legs', sql`number_of_legs < 5`)
203
+ * await db.schema
204
+ * .createTable('animal')
205
+ * .addColumn('number_of_legs', 'integer')
206
+ * .addCheckConstraint('check_legs', sql`number_of_legs < 5`)
207
+ * .execute()
173
208
  * ```
174
209
  */
175
210
  addCheckConstraint(constraintName, checkExpression) {
@@ -187,24 +222,33 @@ export class CreateTableBuilder {
187
222
  * ### Examples
188
223
  *
189
224
  * ```ts
190
- * addForeignKeyConstraint(
191
- * 'owner_id_foreign',
192
- * ['owner_id'],
193
- * 'person',
194
- * ['id'],
195
- * )
225
+ * await db.schema
226
+ * .createTable('pet')
227
+ * .addColumn('owner_id', 'integer')
228
+ * .addForeignKeyConstraint(
229
+ * 'owner_id_foreign',
230
+ * ['owner_id'],
231
+ * 'person',
232
+ * ['id'],
233
+ * )
234
+ * .execute()
196
235
  * ```
197
236
  *
198
237
  * Add constraint for multiple columns:
199
238
  *
200
239
  * ```ts
201
- * addForeignKeyConstraint(
202
- * 'owner_id_foreign',
203
- * ['owner_id1', 'owner_id2'],
204
- * 'person',
205
- * ['id1', 'id2'],
206
- * (cb) => cb.onDelete('cascade')
207
- * )
240
+ * await db.schema
241
+ * .createTable('pet')
242
+ * .addColumn('owner_id1', 'integer')
243
+ * .addColumn('owner_id2', 'integer')
244
+ * .addForeignKeyConstraint(
245
+ * 'owner_id_foreign',
246
+ * ['owner_id1', 'owner_id2'],
247
+ * 'person',
248
+ * ['id1', 'id2'],
249
+ * (cb) => cb.onDelete('cascade')
250
+ * )
251
+ * .execute()
208
252
  * ```
209
253
  */
210
254
  addForeignKeyConstraint(constraintName, columns, targetTable, targetColumns, build = noop) {
@@ -222,11 +266,14 @@ export class CreateTableBuilder {
222
266
  * ### Examples
223
267
  *
224
268
  * ```ts
225
- * db.schema.createTable('person')
269
+ * import { sql } from 'kysely'
270
+ *
271
+ * await db.schema
272
+ * .createTable('person')
226
273
  * .modifyFront(sql`global temporary`)
227
274
  * .addColumn('id', 'integer', col => col.primaryKey())
228
275
  * .addColumn('first_name', 'varchar(64)', col => col.notNull())
229
- * .addColumn('last_name', 'varchar(64), col => col.notNull())
276
+ * .addColumn('last_name', 'varchar(64)', col => col.notNull())
230
277
  * .execute()
231
278
  * ```
232
279
  *
@@ -254,10 +301,13 @@ export class CreateTableBuilder {
254
301
  * ### Examples
255
302
  *
256
303
  * ```ts
257
- * db.schema.createTable('person')
258
- * .addColumn('id', 'integer', col => col => primaryKey())
304
+ * import { sql } from 'kysely'
305
+ *
306
+ * await db.schema
307
+ * .createTable('person')
308
+ * .addColumn('id', 'integer', col => col.primaryKey())
259
309
  * .addColumn('first_name', 'varchar(64)', col => col.notNull())
260
- * .addColumn('last_name', 'varchar(64), col => col.notNull())
310
+ * .addColumn('last_name', 'varchar(64)', col => col.notNull())
261
311
  * .modifyEnd(sql`collate utf8_unicode_ci`)
262
312
  * .execute()
263
313
  * ```
@@ -284,7 +334,8 @@ export class CreateTableBuilder {
284
334
  * ### Examples
285
335
  *
286
336
  * ```ts
287
- * db.schema.createTable('copy')
337
+ * await db.schema
338
+ * .createTable('copy')
288
339
  * .temporary()
289
340
  * .as(db.selectFrom('person').select(['first_name', 'last_name']))
290
341
  * .execute()
@@ -311,17 +362,19 @@ export class CreateTableBuilder {
311
362
  * ### Examples
312
363
  *
313
364
  * ```ts
314
- * db.schema
365
+ * await db.schema
315
366
  * .createTable('test')
316
367
  * .$call((builder) => builder.addColumn('id', 'integer'))
317
368
  * .execute()
318
369
  * ```
319
370
  *
371
+ * This is useful for creating reusable functions that can be called with a builder.
372
+ *
320
373
  * ```ts
321
- * const addDefaultColumns = <T extends string, C extends string = never>(
322
- * builder: CreateTableBuilder<T, C>
323
- * ) => {
324
- * return builder
374
+ * import { type CreateTableBuilder, sql } from 'kysely'
375
+ *
376
+ * const addDefaultColumns = (ctb: CreateTableBuilder<any, any>) => {
377
+ * return ctb
325
378
  * .addColumn('id', 'integer', (col) => col.notNull())
326
379
  * .addColumn('created_at', 'date', (col) =>
327
380
  * col.notNull().defaultTo(sql`now()`)
@@ -331,7 +384,7 @@ export class CreateTableBuilder {
331
384
  * )
332
385
  * }
333
386
  *
334
- * db.schema
387
+ * await db.schema
335
388
  * .createTable('test')
336
389
  * .$call(addDefaultColumns)
337
390
  * .execute()
@@ -15,7 +15,7 @@ import { DrainOuterGeneric } from './type-utils.js';
15
15
  * type is actually just a shortcut for the type in this example:
16
16
  *
17
17
  * ```ts
18
- * ColumnType<number, number | undefined, number>
18
+ * type GeneratedNumber = ColumnType<number, number | undefined, number>
19
19
  * ```
20
20
  *
21
21
  * The above example makes the column optional in inserts
@@ -24,14 +24,14 @@ import { DrainOuterGeneric } from './type-utils.js';
24
24
  * can se the type as `never`:
25
25
  *
26
26
  * ```ts
27
- * ColumnType<number, never, never>
27
+ * type ReadonlyNumber = ColumnType<number, never, never>
28
28
  * ```
29
29
  *
30
30
  * Here's one more example where the type is different
31
31
  * for each different operation:
32
32
  *
33
33
  * ```ts
34
- * ColumnType<Date, string, never>
34
+ * type UnupdateableDate = ColumnType<Date, string, never>
35
35
  * ```
36
36
  */
37
37
  export type ColumnType<SelectType, InsertType = SelectType, UpdateType = SelectType> = {
@@ -44,12 +44,8 @@ export type ColumnType<SelectType, InsertType = SelectType, UpdateType = SelectT
44
44
  * is the same for all selects, inserts and updates but the
45
45
  * column is optional for inserts and updates.
46
46
  *
47
- * The implementation:
48
- *
49
- * ```ts
50
- * // The update type is `S` instead of `S | undefined` because
51
- * // updates are always optional --> no need to specify optionality.
52
- * type Generated<S> = ColumnType<S, S | undefined, S>
47
+ * The update type is `S` instead of `S | undefined` because updates are always
48
+ * optional --> no need to specify optionality.
53
49
  * ```
54
50
  */
55
51
  export type Generated<S> = ColumnType<S, S | undefined, S>;
@@ -26,14 +26,16 @@ type AllProps<T> = T & {
26
26
  * 1. Omit checked type - all checked properties will be expect as of type never
27
27
  *
28
28
  * ```ts
29
- * const z: SomeType = requireAllProps({ propC: "no type will work" });
29
+ * type SomeType = { propA: string; propB?: number; }
30
+ * // const z: SomeType = requireAllProps({ propC: "no type will work" }); // Property 'propA' is missing in type '{ propC: string; }' but required in type 'SomeType'.
30
31
  * ```
31
32
  *
32
33
  * 2. Apply to spreaded object - there is no way how to check in compile time if spreaded object contains all properties
33
34
  *
34
35
  * ```ts
36
+ * type SomeType = { propA: string; propB?: number; }
35
37
  * const y: SomeType = { propA: "" }; // valid object according to SomeType declaration
36
- * const x = requireAllProps<SomeType>( { ... y } );
38
+ * // const x = requireAllProps<SomeType>({ ...y }); // Argument of type '{ propA: string; propB?: number; }' is not assignable to parameter of type 'AllProps<SomeType>'.
37
39
  * ```
38
40
  *
39
41
  * @param obj object to check if all properties has been used
@@ -19,14 +19,16 @@
19
19
  * 1. Omit checked type - all checked properties will be expect as of type never
20
20
  *
21
21
  * ```ts
22
- * const z: SomeType = requireAllProps({ propC: "no type will work" });
22
+ * type SomeType = { propA: string; propB?: number; }
23
+ * // const z: SomeType = requireAllProps({ propC: "no type will work" }); // Property 'propA' is missing in type '{ propC: string; }' but required in type 'SomeType'.
23
24
  * ```
24
25
  *
25
26
  * 2. Apply to spreaded object - there is no way how to check in compile time if spreaded object contains all properties
26
27
  *
27
28
  * ```ts
29
+ * type SomeType = { propA: string; propB?: number; }
28
30
  * const y: SomeType = { propA: "" }; // valid object according to SomeType declaration
29
- * const x = requireAllProps<SomeType>( { ... y } );
31
+ * // const x = requireAllProps<SomeType>({ ...y }); // Argument of type '{ propA: string; propB?: number; }' is not assignable to parameter of type 'AllProps<SomeType>'.
30
32
  * ```
31
33
  *
32
34
  * @param obj object to check if all properties has been used
@@ -8,7 +8,7 @@ export interface Streamable<O> {
8
8
  * ### Examples
9
9
  *
10
10
  * ```ts
11
- * const stream = db.
11
+ * const stream = db
12
12
  * .selectFrom('person')
13
13
  * .select(['first_name', 'last_name'])
14
14
  * .where('gender', '=', 'other')
@@ -125,7 +125,9 @@ export type NarrowPartial<O, T> = DrainOuterGeneric<T extends object ? {
125
125
  * Example:
126
126
  *
127
127
  * ```ts
128
- * const person = await db.selectFrom('person')
128
+ * import type { NotNull } from 'kysely'
129
+ *
130
+ * await db.selectFrom('person')
129
131
  * .where('nullable_column', 'is not', null)
130
132
  * .selectAll()
131
133
  * .$narrowType<{ nullable_column: NotNull }>()
@@ -148,7 +150,7 @@ export type SqlBool = boolean | 0 | 1;
148
150
  * A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<A<T>>>>>>>>>>>>>>>>>>>>>>>>
149
151
  * >
150
152
  *
151
- * type Error = Test<number> // Type instantiation is excessively deep and possibly infinite.ts (2589)
153
+ * // type Error = Test<number> // Type instantiation is excessively deep and possibly infinite.ts (2589)
152
154
  * ```
153
155
  *
154
156
  * To fix this, we can use `DrainOuterGeneric`:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kysely",
3
- "version": "0.27.4",
3
+ "version": "0.27.5",
4
4
  "description": "Type safe SQL query builder",
5
5
  "repository": {
6
6
  "type": "git",
@@ -48,11 +48,12 @@
48
48
  "test:browser": "npm run build && npm run test:browser:build && node test/browser/test.js",
49
49
  "test:bun": "npm run build && bun link && cd test/bun && bun install && bun run test",
50
50
  "test:cloudflare-workers": "npm run build && cd test/cloudflare-workers && npm ci && npm test",
51
- "test:deno": "npm run build && deno run --allow-env --allow-read --allow-net test/deno/local.test.ts && deno run --allow-env --allow-read --allow-net test/deno/cdn.test.ts",
51
+ "test:deno": "deno run --allow-env --allow-read --allow-net test/deno/local.test.ts && deno run --allow-env --allow-read --allow-net test/deno/cdn.test.ts",
52
52
  "test:typings": "tsd test/typings",
53
53
  "test:esmimports": "node scripts/check-esm-imports.js",
54
54
  "test:esbuild": "esbuild --bundle --platform=node --external:pg-native dist/esm/index.js --outfile=/dev/null",
55
- "test:exports": "node scripts/check-exports.js",
55
+ "test:exports": "attw --pack . && node scripts/check-exports.js",
56
+ "test:jsdocs": "deno check --doc-only --no-lock --unstable-sloppy-imports --config=\"deno.check.json\" ./src",
56
57
  "prettier": "prettier --write 'src/**/*.ts' 'test/**/*.ts'",
57
58
  "build": "npm run clean && (npm run build:esm & npm run build:cjs) && npm run script:module-fixup && npm run script:copy-interface-doc",
58
59
  "build:esm": "tsc -p tsconfig.json && npm run script:add-deno-type-references",
@@ -61,7 +62,9 @@
61
62
  "script:copy-interface-doc": "node scripts/copy-interface-documentation.js",
62
63
  "script:add-deno-type-references": "node scripts/add-deno-type-references.js",
63
64
  "script:align-site-version": "node scripts/align-site-version.js",
64
- "prepublishOnly": "npm run build"
65
+ "script:generate-site-examples": "node scripts/generate-site-examples.js",
66
+ "prepublishOnly": "npm run build",
67
+ "release:preview": "pkg-pr-new publish --template './example'"
65
68
  },
66
69
  "author": "Sami Koskimäki <sami@jakso.me>",
67
70
  "license": "MIT",
@@ -70,32 +73,34 @@
70
73
  "Igal Klebanov <igalklebanov@gmail.com>"
71
74
  ],
72
75
  "devDependencies": {
73
- "@types/better-sqlite3": "^7.6.8",
74
- "@types/chai": "^4.3.11",
76
+ "@arethetypeswrong/cli": "^0.17.0",
77
+ "@types/better-sqlite3": "^7.6.11",
78
+ "@types/chai": "^4.3.17",
75
79
  "@types/chai-as-promised": "^7.1.8",
76
80
  "@types/chai-subset": "^1.3.5",
77
- "@types/mocha": "^10.0.6",
78
- "@types/node": "^18.15.11",
79
- "@types/pg": "^8.10.9",
81
+ "@types/mocha": "^10.0.7",
82
+ "@types/node": "^22.5.0",
83
+ "@types/pg": "^8.11.6",
80
84
  "@types/pg-cursor": "^2.7.2",
81
85
  "@types/sinon": "^17.0.2",
82
86
  "@types/tedious": "^4.0.9",
83
- "better-sqlite3": "^9.6.0",
84
- "chai": "^4.4.0",
85
- "chai-as-promised": "^7.1.1",
87
+ "better-sqlite3": "^11.2.1",
88
+ "chai": "^4.5.0",
89
+ "chai-as-promised": "^7.1.2",
86
90
  "chai-subset": "^1.6.0",
87
- "esbuild": "^0.19.11",
91
+ "esbuild": "^0.24.0",
88
92
  "lodash": "^4.17.21",
89
- "mocha": "^10.2.0",
90
- "mysql2": "^3.6.5",
91
- "pg": "^8.11.3",
92
- "pg-cursor": "^2.10.3",
93
- "playwright": "^1.40.1",
94
- "prettier": "^3.1.1",
95
- "sinon": "^17.0.1",
93
+ "mocha": "^10.7.3",
94
+ "mysql2": "^3.11.0",
95
+ "pg": "^8.12.0",
96
+ "pg-cursor": "^2.11.0",
97
+ "pkg-pr-new": "^0.0.30",
98
+ "playwright": "^1.46.1",
99
+ "prettier": "^3.3.3",
100
+ "sinon": "^19.0.2",
96
101
  "tarn": "^3.0.2",
97
- "tedious": "^18.2.0",
98
- "tsd": "^0.30.3",
99
- "typescript": "^5.5.2"
102
+ "tedious": "^19.0.0",
103
+ "tsd": "^0.31.1",
104
+ "typescript": "^5.6.3"
100
105
  }
101
106
  }