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
@@ -9,8 +9,26 @@ import { sql } from '../raw-builder/sql.js';
9
9
  * The plugin can be installed like this:
10
10
  *
11
11
  * ```ts
12
- * const db = new Kysely({
13
- * dialect: new MssqlDialect(config),
12
+ * import { Kysely, MssqlDialect, ParseJSONResultsPlugin } from 'kysely'
13
+ * import * as Tarn from 'tarn'
14
+ * import * as Tedious from 'tedious'
15
+ * import type { Database } from 'type-editor' // imaginary module
16
+ *
17
+ * const db = new Kysely<Database>({
18
+ * dialect: new MssqlDialect({
19
+ * tarn: { options: { max: 10, min: 0 }, ...Tarn },
20
+ * tedious: {
21
+ * ...Tedious,
22
+ * connectionFactory: () => new Tedious.Connection({
23
+ * authentication: {
24
+ * options: { password: 'password', userName: 'sa' },
25
+ * type: 'default',
26
+ * },
27
+ * options: { database: 'test', port: 21433, trustServerCertificate: true },
28
+ * server: 'localhost',
29
+ * }),
30
+ * },
31
+ * }),
14
32
  * plugins: [new ParseJSONResultsPlugin()]
15
33
  * })
16
34
  * ```
@@ -18,6 +36,8 @@ import { sql } from '../raw-builder/sql.js';
18
36
  * ### Examples
19
37
  *
20
38
  * ```ts
39
+ * import { jsonArrayFrom } from 'kysely/helpers/mssql'
40
+ *
21
41
  * const result = await db
22
42
  * .selectFrom('person')
23
43
  * .select((eb) => [
@@ -27,14 +47,14 @@ import { sql } from '../raw-builder/sql.js';
27
47
  * .select(['pet.id as pet_id', 'pet.name'])
28
48
  * .whereRef('pet.owner_id', '=', 'person.id')
29
49
  * .orderBy('pet.name')
30
- * .modifyEnd(sql`offset 0 rows`)
50
+ * .offset(0)
31
51
  * ).as('pets')
32
52
  * ])
33
53
  * .execute()
34
54
  *
35
- * result[0].id
36
- * result[0].pets[0].pet_id
37
- * result[0].pets[0].name
55
+ * result[0]?.id
56
+ * result[0]?.pets[0]?.pet_id
57
+ * result[0]?.pets[0]?.name
38
58
  * ```
39
59
  *
40
60
  * The generated SQL (MS SQL Server):
@@ -46,7 +66,7 @@ import { sql } from '../raw-builder/sql.js';
46
66
  * from "pet"
47
67
  * where "pet"."owner_id" = "person"."id"
48
68
  * order by "pet"."name"
49
- * offset 0 rows
69
+ * offset @1 rows
50
70
  * ) as "agg" for json path, include_null_values), '[]')
51
71
  * ) as "pets"
52
72
  * from "person"
@@ -66,8 +86,26 @@ export function jsonArrayFrom(expr) {
66
86
  * The plugin can be installed like this:
67
87
  *
68
88
  * ```ts
69
- * const db = new Kysely({
70
- * dialect: new MssqlDialect(config),
89
+ * import { Kysely, MssqlDialect, ParseJSONResultsPlugin } from 'kysely'
90
+ * import * as Tarn from 'tarn'
91
+ * import * as Tedious from 'tedious'
92
+ * import type { Database } from 'type-editor' // imaginary module
93
+ *
94
+ * const db = new Kysely<Database>({
95
+ * dialect: new MssqlDialect({
96
+ * tarn: { options: { max: 10, min: 0 }, ...Tarn },
97
+ * tedious: {
98
+ * ...Tedious,
99
+ * connectionFactory: () => new Tedious.Connection({
100
+ * authentication: {
101
+ * options: { password: 'password', userName: 'sa' },
102
+ * type: 'default',
103
+ * },
104
+ * options: { database: 'test', port: 21433, trustServerCertificate: true },
105
+ * server: 'localhost',
106
+ * }),
107
+ * },
108
+ * }),
71
109
  * plugins: [new ParseJSONResultsPlugin()]
72
110
  * })
73
111
  * ```
@@ -75,6 +113,8 @@ export function jsonArrayFrom(expr) {
75
113
  * ### Examples
76
114
  *
77
115
  * ```ts
116
+ * import { jsonObjectFrom } from 'kysely/helpers/mssql'
117
+ *
78
118
  * const result = await db
79
119
  * .selectFrom('person')
80
120
  * .select((eb) => [
@@ -88,9 +128,9 @@ export function jsonArrayFrom(expr) {
88
128
  * ])
89
129
  * .execute()
90
130
  *
91
- * result[0].id
92
- * result[0].favorite_pet.pet_id
93
- * result[0].favorite_pet.name
131
+ * result[0]?.id
132
+ * result[0]?.favorite_pet?.pet_id
133
+ * result[0]?.favorite_pet?.name
94
134
  * ```
95
135
  *
96
136
  * The generated SQL (MS SQL Server):
@@ -119,8 +159,26 @@ export function jsonObjectFrom(expr) {
119
159
  * The plugin can be installed like this:
120
160
  *
121
161
  * ```ts
122
- * const db = new Kysely({
123
- * dialect: new MssqlDialect(config),
162
+ * import { Kysely, MssqlDialect, ParseJSONResultsPlugin } from 'kysely'
163
+ * import * as Tarn from 'tarn'
164
+ * import * as Tedious from 'tedious'
165
+ * import type { Database } from 'type-editor' // imaginary module
166
+ *
167
+ * const db = new Kysely<Database>({
168
+ * dialect: new MssqlDialect({
169
+ * tarn: { options: { max: 10, min: 0 }, ...Tarn },
170
+ * tedious: {
171
+ * ...Tedious,
172
+ * connectionFactory: () => new Tedious.Connection({
173
+ * authentication: {
174
+ * options: { password: 'password', userName: 'sa' },
175
+ * type: 'default',
176
+ * },
177
+ * options: { database: 'test', port: 21433, trustServerCertificate: true },
178
+ * server: 'localhost',
179
+ * }),
180
+ * },
181
+ * }),
124
182
  * plugins: [new ParseJSONResultsPlugin()]
125
183
  * })
126
184
  * ```
@@ -128,6 +186,8 @@ export function jsonObjectFrom(expr) {
128
186
  * ### Examples
129
187
  *
130
188
  * ```ts
189
+ * import { jsonBuildObject } from 'kysely/helpers/mssql'
190
+ *
131
191
  * const result = await db
132
192
  * .selectFrom('person')
133
193
  * .select((eb) => [
@@ -13,6 +13,8 @@ import { Simplify } from '../util/type-utils.js';
13
13
  * ### Examples
14
14
  *
15
15
  * ```ts
16
+ * import { jsonArrayFrom } from 'kysely/helpers/mysql'
17
+ *
16
18
  * const result = await db
17
19
  * .selectFrom('person')
18
20
  * .select((eb) => [
@@ -26,9 +28,9 @@ import { Simplify } from '../util/type-utils.js';
26
28
  * ])
27
29
  * .execute()
28
30
  *
29
- * result[0].id
30
- * result[0].pets[0].pet_id
31
- * result[0].pets[0].name
31
+ * result[0]?.id
32
+ * result[0]?.pets[0]?.pet_id
33
+ * result[0]?.pets[0]?.name
32
34
  * ```
33
35
  *
34
36
  * The generated SQL (MySQL):
@@ -62,6 +64,8 @@ export declare function jsonArrayFrom<O>(expr: SelectQueryBuilderExpression<O>):
62
64
  * ### Examples
63
65
  *
64
66
  * ```ts
67
+ * import { jsonObjectFrom } from 'kysely/helpers/mysql'
68
+ *
65
69
  * const result = await db
66
70
  * .selectFrom('person')
67
71
  * .select((eb) => [
@@ -75,9 +79,9 @@ export declare function jsonArrayFrom<O>(expr: SelectQueryBuilderExpression<O>):
75
79
  * ])
76
80
  * .execute()
77
81
  *
78
- * result[0].id
79
- * result[0].favorite_pet.pet_id
80
- * result[0].favorite_pet.name
82
+ * result[0]?.id
83
+ * result[0]?.favorite_pet?.pet_id
84
+ * result[0]?.favorite_pet?.name
81
85
  * ```
82
86
  *
83
87
  * The generated SQL (MySQL):
@@ -121,10 +125,10 @@ export declare function jsonObjectFrom<O>(expr: SelectQueryBuilderExpression<O>)
121
125
  * ])
122
126
  * .execute()
123
127
  *
124
- * result[0].id
125
- * result[0].name.first
126
- * result[0].name.last
127
- * result[0].name.full
128
+ * result[0]?.id
129
+ * result[0]?.name.first
130
+ * result[0]?.name.last
131
+ * result[0]?.name.full
128
132
  * ```
129
133
  *
130
134
  * The generated SQL (MySQL):
@@ -12,6 +12,8 @@ import { getJsonObjectArgs } from '../util/json-object-args.js';
12
12
  * ### Examples
13
13
  *
14
14
  * ```ts
15
+ * import { jsonArrayFrom } from 'kysely/helpers/mysql'
16
+ *
15
17
  * const result = await db
16
18
  * .selectFrom('person')
17
19
  * .select((eb) => [
@@ -25,9 +27,9 @@ import { getJsonObjectArgs } from '../util/json-object-args.js';
25
27
  * ])
26
28
  * .execute()
27
29
  *
28
- * result[0].id
29
- * result[0].pets[0].pet_id
30
- * result[0].pets[0].name
30
+ * result[0]?.id
31
+ * result[0]?.pets[0]?.pet_id
32
+ * result[0]?.pets[0]?.name
31
33
  * ```
32
34
  *
33
35
  * The generated SQL (MySQL):
@@ -63,6 +65,8 @@ export function jsonArrayFrom(expr) {
63
65
  * ### Examples
64
66
  *
65
67
  * ```ts
68
+ * import { jsonObjectFrom } from 'kysely/helpers/mysql'
69
+ *
66
70
  * const result = await db
67
71
  * .selectFrom('person')
68
72
  * .select((eb) => [
@@ -76,9 +80,9 @@ export function jsonArrayFrom(expr) {
76
80
  * ])
77
81
  * .execute()
78
82
  *
79
- * result[0].id
80
- * result[0].favorite_pet.pet_id
81
- * result[0].favorite_pet.name
83
+ * result[0]?.id
84
+ * result[0]?.favorite_pet?.pet_id
85
+ * result[0]?.favorite_pet?.name
82
86
  * ```
83
87
  *
84
88
  * The generated SQL (MySQL):
@@ -124,10 +128,10 @@ export function jsonObjectFrom(expr) {
124
128
  * ])
125
129
  * .execute()
126
130
  *
127
- * result[0].id
128
- * result[0].name.first
129
- * result[0].name.last
130
- * result[0].name.full
131
+ * result[0]?.id
132
+ * result[0]?.name.first
133
+ * result[0]?.name.last
134
+ * result[0]?.name.full
131
135
  * ```
132
136
  *
133
137
  * The generated SQL (MySQL):
@@ -114,6 +114,9 @@ export declare function jsonObjectFrom<O>(expr: Expression<O>): RawBuilder<Simpl
114
114
  * ### Examples
115
115
  *
116
116
  * ```ts
117
+ * import { sql } from 'kysely'
118
+ * import { jsonBuildObject } from 'kysely/helpers/postgres'
119
+ *
117
120
  * const result = await db
118
121
  * .selectFrom('person')
119
122
  * .select((eb) => [
@@ -126,10 +129,10 @@ export declare function jsonObjectFrom<O>(expr: Expression<O>): RawBuilder<Simpl
126
129
  * ])
127
130
  * .execute()
128
131
  *
129
- * result[0].id
130
- * result[0].name.first
131
- * result[0].name.last
132
- * result[0].name.full
132
+ * result[0]?.id
133
+ * result[0]?.name.first
134
+ * result[0]?.name.last
135
+ * result[0]?.name.full
133
136
  * ```
134
137
  *
135
138
  * The generated SQL (PostgreSQL):
@@ -117,6 +117,9 @@ export function jsonObjectFrom(expr) {
117
117
  * ### Examples
118
118
  *
119
119
  * ```ts
120
+ * import { sql } from 'kysely'
121
+ * import { jsonBuildObject } from 'kysely/helpers/postgres'
122
+ *
120
123
  * const result = await db
121
124
  * .selectFrom('person')
122
125
  * .select((eb) => [
@@ -129,10 +132,10 @@ export function jsonObjectFrom(expr) {
129
132
  * ])
130
133
  * .execute()
131
134
  *
132
- * result[0].id
133
- * result[0].name.first
134
- * result[0].name.last
135
- * result[0].name.full
135
+ * result[0]?.id
136
+ * result[0]?.name.first
137
+ * result[0]?.name.last
138
+ * result[0]?.name.full
136
139
  * ```
137
140
  *
138
141
  * The generated SQL (PostgreSQL):
@@ -11,8 +11,14 @@ import { Simplify } from '../util/type-utils.js';
11
11
  * The plugin can be installed like this:
12
12
  *
13
13
  * ```ts
14
- * const db = new Kysely({
15
- * dialect: new SqliteDialect(config),
14
+ * import * as Sqlite from 'better-sqlite3'
15
+ * import { Kysely, ParseJSONResultsPlugin, SqliteDialect } from 'kysely'
16
+ * import type { Database } from 'type-editor' // imaginary module
17
+ *
18
+ * const db = new Kysely<Database>({
19
+ * dialect: new SqliteDialect({
20
+ * database: new Sqlite(':memory:')
21
+ * }),
16
22
  * plugins: [new ParseJSONResultsPlugin()]
17
23
  * })
18
24
  * ```
@@ -20,6 +26,8 @@ import { Simplify } from '../util/type-utils.js';
20
26
  * ### Examples
21
27
  *
22
28
  * ```ts
29
+ * import { jsonArrayFrom } from 'kysely/helpers/sqlite'
30
+ *
23
31
  * const result = await db
24
32
  * .selectFrom('person')
25
33
  * .select((eb) => [
@@ -33,9 +41,9 @@ import { Simplify } from '../util/type-utils.js';
33
41
  * ])
34
42
  * .execute()
35
43
  *
36
- * result[0].id
37
- * result[0].pets[0].pet_id
38
- * result[0].pets[0].name
44
+ * result[0]?.id
45
+ * result[0]?.pets[0].pet_id
46
+ * result[0]?.pets[0].name
39
47
  * ```
40
48
  *
41
49
  * The generated SQL (SQLite):
@@ -67,8 +75,14 @@ export declare function jsonArrayFrom<O>(expr: SelectQueryBuilderExpression<O>):
67
75
  * The plugin can be installed like this:
68
76
  *
69
77
  * ```ts
70
- * const db = new Kysely({
71
- * dialect: new SqliteDialect(config),
78
+ * import * as Sqlite from 'better-sqlite3'
79
+ * import { Kysely, ParseJSONResultsPlugin, SqliteDialect } from 'kysely'
80
+ * import type { Database } from 'type-editor' // imaginary module
81
+ *
82
+ * const db = new Kysely<Database>({
83
+ * dialect: new SqliteDialect({
84
+ * database: new Sqlite(':memory:')
85
+ * }),
72
86
  * plugins: [new ParseJSONResultsPlugin()]
73
87
  * })
74
88
  * ```
@@ -76,6 +90,8 @@ export declare function jsonArrayFrom<O>(expr: SelectQueryBuilderExpression<O>):
76
90
  * ### Examples
77
91
  *
78
92
  * ```ts
93
+ * import { jsonObjectFrom } from 'kysely/helpers/sqlite'
94
+ *
79
95
  * const result = await db
80
96
  * .selectFrom('person')
81
97
  * .select((eb) => [
@@ -89,9 +105,9 @@ export declare function jsonArrayFrom<O>(expr: SelectQueryBuilderExpression<O>):
89
105
  * ])
90
106
  * .execute()
91
107
  *
92
- * result[0].id
93
- * result[0].favorite_pet.pet_id
94
- * result[0].favorite_pet.name
108
+ * result[0]?.id
109
+ * result[0]?.favorite_pet?.pet_id
110
+ * result[0]?.favorite_pet?.name
95
111
  * ```
96
112
  *
97
113
  * The generated SQL (SQLite):
@@ -121,8 +137,14 @@ export declare function jsonObjectFrom<O>(expr: SelectQueryBuilderExpression<O>)
121
137
  * The plugin can be installed like this:
122
138
  *
123
139
  * ```ts
124
- * const db = new Kysely({
125
- * dialect: new SqliteDialect(config),
140
+ * import * as Sqlite from 'better-sqlite3'
141
+ * import { Kysely, ParseJSONResultsPlugin, SqliteDialect } from 'kysely'
142
+ * import type { Database } from 'type-editor' // imaginary module
143
+ *
144
+ * const db = new Kysely<Database>({
145
+ * dialect: new SqliteDialect({
146
+ * database: new Sqlite(':memory:')
147
+ * }),
126
148
  * plugins: [new ParseJSONResultsPlugin()]
127
149
  * })
128
150
  * ```
@@ -130,6 +152,9 @@ export declare function jsonObjectFrom<O>(expr: SelectQueryBuilderExpression<O>)
130
152
  * ### Examples
131
153
  *
132
154
  * ```ts
155
+ * import { sql } from 'kysely'
156
+ * import { jsonBuildObject } from 'kysely/helpers/sqlite'
157
+ *
133
158
  * const result = await db
134
159
  * .selectFrom('person')
135
160
  * .select((eb) => [
@@ -142,10 +167,10 @@ export declare function jsonObjectFrom<O>(expr: SelectQueryBuilderExpression<O>)
142
167
  * ])
143
168
  * .execute()
144
169
  *
145
- * result[0].id
146
- * result[0].name.first
147
- * result[0].name.last
148
- * result[0].name.full
170
+ * result[0]?.id
171
+ * result[0]?.name.first
172
+ * result[0]?.name.last
173
+ * result[0]?.name.full
149
174
  * ```
150
175
  *
151
176
  * The generated SQL (SQLite):
@@ -10,8 +10,14 @@ import { getJsonObjectArgs } from '../util/json-object-args.js';
10
10
  * The plugin can be installed like this:
11
11
  *
12
12
  * ```ts
13
- * const db = new Kysely({
14
- * dialect: new SqliteDialect(config),
13
+ * import * as Sqlite from 'better-sqlite3'
14
+ * import { Kysely, ParseJSONResultsPlugin, SqliteDialect } from 'kysely'
15
+ * import type { Database } from 'type-editor' // imaginary module
16
+ *
17
+ * const db = new Kysely<Database>({
18
+ * dialect: new SqliteDialect({
19
+ * database: new Sqlite(':memory:')
20
+ * }),
15
21
  * plugins: [new ParseJSONResultsPlugin()]
16
22
  * })
17
23
  * ```
@@ -19,6 +25,8 @@ import { getJsonObjectArgs } from '../util/json-object-args.js';
19
25
  * ### Examples
20
26
  *
21
27
  * ```ts
28
+ * import { jsonArrayFrom } from 'kysely/helpers/sqlite'
29
+ *
22
30
  * const result = await db
23
31
  * .selectFrom('person')
24
32
  * .select((eb) => [
@@ -32,9 +40,9 @@ import { getJsonObjectArgs } from '../util/json-object-args.js';
32
40
  * ])
33
41
  * .execute()
34
42
  *
35
- * result[0].id
36
- * result[0].pets[0].pet_id
37
- * result[0].pets[0].name
43
+ * result[0]?.id
44
+ * result[0]?.pets[0].pet_id
45
+ * result[0]?.pets[0].name
38
46
  * ```
39
47
  *
40
48
  * The generated SQL (SQLite):
@@ -68,8 +76,14 @@ export function jsonArrayFrom(expr) {
68
76
  * The plugin can be installed like this:
69
77
  *
70
78
  * ```ts
71
- * const db = new Kysely({
72
- * dialect: new SqliteDialect(config),
79
+ * import * as Sqlite from 'better-sqlite3'
80
+ * import { Kysely, ParseJSONResultsPlugin, SqliteDialect } from 'kysely'
81
+ * import type { Database } from 'type-editor' // imaginary module
82
+ *
83
+ * const db = new Kysely<Database>({
84
+ * dialect: new SqliteDialect({
85
+ * database: new Sqlite(':memory:')
86
+ * }),
73
87
  * plugins: [new ParseJSONResultsPlugin()]
74
88
  * })
75
89
  * ```
@@ -77,6 +91,8 @@ export function jsonArrayFrom(expr) {
77
91
  * ### Examples
78
92
  *
79
93
  * ```ts
94
+ * import { jsonObjectFrom } from 'kysely/helpers/sqlite'
95
+ *
80
96
  * const result = await db
81
97
  * .selectFrom('person')
82
98
  * .select((eb) => [
@@ -90,9 +106,9 @@ export function jsonArrayFrom(expr) {
90
106
  * ])
91
107
  * .execute()
92
108
  *
93
- * result[0].id
94
- * result[0].favorite_pet.pet_id
95
- * result[0].favorite_pet.name
109
+ * result[0]?.id
110
+ * result[0]?.favorite_pet?.pet_id
111
+ * result[0]?.favorite_pet?.name
96
112
  * ```
97
113
  *
98
114
  * The generated SQL (SQLite):
@@ -124,8 +140,14 @@ export function jsonObjectFrom(expr) {
124
140
  * The plugin can be installed like this:
125
141
  *
126
142
  * ```ts
127
- * const db = new Kysely({
128
- * dialect: new SqliteDialect(config),
143
+ * import * as Sqlite from 'better-sqlite3'
144
+ * import { Kysely, ParseJSONResultsPlugin, SqliteDialect } from 'kysely'
145
+ * import type { Database } from 'type-editor' // imaginary module
146
+ *
147
+ * const db = new Kysely<Database>({
148
+ * dialect: new SqliteDialect({
149
+ * database: new Sqlite(':memory:')
150
+ * }),
129
151
  * plugins: [new ParseJSONResultsPlugin()]
130
152
  * })
131
153
  * ```
@@ -133,6 +155,9 @@ export function jsonObjectFrom(expr) {
133
155
  * ### Examples
134
156
  *
135
157
  * ```ts
158
+ * import { sql } from 'kysely'
159
+ * import { jsonBuildObject } from 'kysely/helpers/sqlite'
160
+ *
136
161
  * const result = await db
137
162
  * .selectFrom('person')
138
163
  * .select((eb) => [
@@ -145,10 +170,10 @@ export function jsonObjectFrom(expr) {
145
170
  * ])
146
171
  * .execute()
147
172
  *
148
- * result[0].id
149
- * result[0].name.first
150
- * result[0].name.last
151
- * result[0].name.full
173
+ * result[0]?.id
174
+ * result[0]?.name.first
175
+ * result[0]?.name.last
176
+ * result[0]?.name.full
152
177
  * ```
153
178
  *
154
179
  * The generated SQL (SQLite):