kysely 0.10.1 → 0.11.3

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 (156) hide show
  1. package/README.md +7 -3
  2. package/dist/cjs/dialect/dialect-adapter.d.ts +3 -2
  3. package/dist/cjs/dialect/mysql/mysql-adapter.js +1 -1
  4. package/dist/cjs/dialect/mysql/mysql-dialect.d.ts +3 -3
  5. package/dist/cjs/dialect/mysql/mysql-driver.js +25 -32
  6. package/dist/cjs/dialect/mysql/mysql-query-compiler.d.ts +0 -2
  7. package/dist/cjs/dialect/mysql/mysql-query-compiler.js +0 -6
  8. package/dist/cjs/dialect/postgres/postgres-dialect.d.ts +2 -2
  9. package/dist/cjs/dialect/postgres/postgres-driver.js +8 -19
  10. package/dist/cjs/dialect/postgres/postgres-query-compiler.d.ts +3 -0
  11. package/dist/cjs/dialect/postgres/postgres-query-compiler.js +9 -1
  12. package/dist/cjs/dialect/sqlite/sqlite-adapter.d.ts +7 -0
  13. package/dist/cjs/dialect/sqlite/sqlite-adapter.js +18 -0
  14. package/dist/cjs/dialect/sqlite/sqlite-dialect.d.ts +64 -0
  15. package/dist/cjs/dialect/sqlite/sqlite-dialect.js +33 -0
  16. package/dist/cjs/dialect/sqlite/sqlite-driver.d.ts +14 -0
  17. package/dist/cjs/dialect/sqlite/sqlite-driver.js +116 -0
  18. package/dist/cjs/dialect/sqlite/sqlite-introspector.d.ts +7 -0
  19. package/dist/cjs/dialect/sqlite/sqlite-introspector.js +44 -0
  20. package/dist/cjs/dialect/sqlite/sqlite-query-compiler.d.ts +7 -0
  21. package/dist/cjs/dialect/sqlite/sqlite-query-compiler.js +19 -0
  22. package/dist/cjs/driver/database-connection.d.ts +2 -2
  23. package/dist/cjs/driver/runtime-driver.js +1 -1
  24. package/dist/cjs/index.d.ts +46 -30
  25. package/dist/cjs/index.js +45 -29
  26. package/dist/cjs/kysely.d.ts +28 -10
  27. package/dist/cjs/kysely.js +6 -4
  28. package/dist/cjs/migration/migration.d.ts +1 -1
  29. package/dist/cjs/migration/migration.js +3 -3
  30. package/dist/cjs/operation-node/alias-node.d.ts +1 -1
  31. package/dist/cjs/operation-node/create-view-node.d.ts +1 -0
  32. package/dist/cjs/operation-node/having-node.d.ts +4 -8
  33. package/dist/cjs/operation-node/having-node.js +3 -3
  34. package/dist/cjs/operation-node/join-node.d.ts +6 -9
  35. package/dist/cjs/operation-node/join-node.js +10 -7
  36. package/dist/cjs/operation-node/on-node.d.ts +14 -0
  37. package/dist/cjs/operation-node/on-node.js +28 -0
  38. package/dist/cjs/operation-node/operation-node-transformer.d.ts +2 -0
  39. package/dist/cjs/operation-node/operation-node-transformer.js +8 -0
  40. package/dist/cjs/operation-node/operation-node-utils.d.ts +1 -1
  41. package/dist/cjs/operation-node/operation-node-visitor.d.ts +3 -0
  42. package/dist/cjs/operation-node/operation-node-visitor.js +4 -0
  43. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  44. package/dist/cjs/operation-node/query-node.d.ts +3 -3
  45. package/dist/cjs/operation-node/select-query-node.d.ts +4 -4
  46. package/dist/cjs/operation-node/where-node.d.ts +4 -8
  47. package/dist/cjs/operation-node/where-node.js +3 -3
  48. package/dist/cjs/parser/filter-parser.d.ts +1 -0
  49. package/dist/cjs/parser/filter-parser.js +49 -52
  50. package/dist/cjs/parser/returning-parser.d.ts +4 -2
  51. package/dist/cjs/parser/select-parser.d.ts +2 -2
  52. package/dist/cjs/plugin/immediate-value.ts/immediate-value-plugin.d.ts +1 -1
  53. package/dist/cjs/query-builder/delete-result.d.ts +5 -0
  54. package/dist/cjs/query-builder/delete-result.js +13 -0
  55. package/dist/cjs/query-builder/expression-builder.d.ts +2 -2
  56. package/dist/cjs/query-builder/expression-builder.js +1 -1
  57. package/dist/cjs/query-builder/function-builder.d.ts +5 -5
  58. package/dist/cjs/query-builder/function-builder.js +3 -3
  59. package/dist/cjs/query-builder/insert-result.d.ts +27 -0
  60. package/dist/cjs/query-builder/insert-result.js +35 -0
  61. package/dist/cjs/query-builder/join-builder.d.ts +3 -0
  62. package/dist/cjs/query-builder/query-builder.d.ts +95 -81
  63. package/dist/cjs/query-builder/query-builder.js +38 -41
  64. package/dist/cjs/query-builder/update-result.d.ts +5 -0
  65. package/dist/cjs/query-builder/update-result.js +13 -0
  66. package/dist/cjs/query-compiler/compiled-query.d.ts +5 -0
  67. package/dist/cjs/query-compiler/compiled-query.js +12 -0
  68. package/dist/cjs/query-compiler/default-query-compiler.d.ts +2 -0
  69. package/dist/cjs/query-compiler/default-query-compiler.js +24 -13
  70. package/dist/cjs/query-creator.d.ts +36 -26
  71. package/dist/cjs/query-creator.js +25 -17
  72. package/dist/cjs/schema/create-view-builder.d.ts +4 -0
  73. package/dist/cjs/schema/create-view-builder.js +11 -0
  74. package/dist/cjs/util/dynamic-import.d.ts +2 -0
  75. package/dist/cjs/util/dynamic-import.js +32 -0
  76. package/dist/cjs/util/log.d.ts +10 -8
  77. package/dist/cjs/util/log.js +29 -9
  78. package/dist/cjs/util/type-utils.d.ts +4 -15
  79. package/dist/esm/dialect/dialect-adapter.d.ts +3 -2
  80. package/dist/esm/dialect/mysql/mysql-adapter.js +1 -1
  81. package/dist/esm/dialect/mysql/mysql-dialect.d.ts +3 -3
  82. package/dist/esm/dialect/mysql/mysql-driver.js +26 -33
  83. package/dist/esm/dialect/mysql/mysql-query-compiler.d.ts +0 -2
  84. package/dist/esm/dialect/mysql/mysql-query-compiler.js +0 -6
  85. package/dist/esm/dialect/postgres/postgres-dialect.d.ts +2 -2
  86. package/dist/esm/dialect/postgres/postgres-driver.js +8 -19
  87. package/dist/esm/dialect/postgres/postgres-query-compiler.d.ts +3 -0
  88. package/dist/esm/dialect/postgres/postgres-query-compiler.js +9 -1
  89. package/dist/esm/dialect/sqlite/sqlite-adapter.d.ts +7 -0
  90. package/dist/esm/dialect/sqlite/sqlite-adapter.js +14 -0
  91. package/dist/esm/dialect/sqlite/sqlite-dialect.d.ts +64 -0
  92. package/dist/esm/dialect/sqlite/sqlite-dialect.js +29 -0
  93. package/dist/esm/dialect/sqlite/sqlite-driver.d.ts +14 -0
  94. package/dist/esm/dialect/sqlite/sqlite-driver.js +112 -0
  95. package/dist/esm/dialect/sqlite/sqlite-introspector.d.ts +7 -0
  96. package/dist/esm/dialect/sqlite/sqlite-introspector.js +40 -0
  97. package/dist/esm/dialect/sqlite/sqlite-query-compiler.d.ts +7 -0
  98. package/dist/esm/dialect/sqlite/sqlite-query-compiler.js +15 -0
  99. package/dist/esm/driver/database-connection.d.ts +2 -2
  100. package/dist/esm/driver/runtime-driver.js +1 -1
  101. package/dist/esm/index.d.ts +46 -30
  102. package/dist/esm/index.js +45 -29
  103. package/dist/esm/kysely.d.ts +28 -10
  104. package/dist/esm/kysely.js +6 -4
  105. package/dist/esm/migration/migration.d.ts +1 -1
  106. package/dist/esm/migration/migration.js +3 -3
  107. package/dist/esm/operation-node/alias-node.d.ts +1 -1
  108. package/dist/esm/operation-node/create-view-node.d.ts +1 -0
  109. package/dist/esm/operation-node/having-node.d.ts +4 -8
  110. package/dist/esm/operation-node/having-node.js +3 -3
  111. package/dist/esm/operation-node/join-node.d.ts +6 -9
  112. package/dist/esm/operation-node/join-node.js +10 -7
  113. package/dist/esm/operation-node/on-node.d.ts +14 -0
  114. package/dist/esm/operation-node/on-node.js +25 -0
  115. package/dist/esm/operation-node/operation-node-transformer.d.ts +2 -0
  116. package/dist/esm/operation-node/operation-node-transformer.js +8 -0
  117. package/dist/esm/operation-node/operation-node-utils.d.ts +1 -1
  118. package/dist/esm/operation-node/operation-node-visitor.d.ts +3 -0
  119. package/dist/esm/operation-node/operation-node-visitor.js +4 -0
  120. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  121. package/dist/esm/operation-node/query-node.d.ts +3 -3
  122. package/dist/esm/operation-node/select-query-node.d.ts +4 -4
  123. package/dist/esm/operation-node/where-node.d.ts +4 -8
  124. package/dist/esm/operation-node/where-node.js +3 -3
  125. package/dist/esm/parser/filter-parser.d.ts +1 -0
  126. package/dist/esm/parser/filter-parser.js +48 -52
  127. package/dist/esm/parser/returning-parser.d.ts +4 -2
  128. package/dist/esm/parser/select-parser.d.ts +2 -2
  129. package/dist/esm/plugin/immediate-value.ts/immediate-value-plugin.d.ts +1 -1
  130. package/dist/esm/query-builder/delete-result.d.ts +5 -0
  131. package/dist/esm/query-builder/delete-result.js +9 -0
  132. package/dist/esm/query-builder/expression-builder.d.ts +2 -2
  133. package/dist/esm/query-builder/expression-builder.js +1 -1
  134. package/dist/esm/query-builder/function-builder.d.ts +5 -5
  135. package/dist/esm/query-builder/function-builder.js +3 -3
  136. package/dist/esm/query-builder/insert-result.d.ts +27 -0
  137. package/dist/esm/query-builder/insert-result.js +31 -0
  138. package/dist/esm/query-builder/join-builder.d.ts +3 -0
  139. package/dist/esm/query-builder/query-builder.d.ts +95 -81
  140. package/dist/esm/query-builder/query-builder.js +38 -41
  141. package/dist/esm/query-builder/update-result.d.ts +5 -0
  142. package/dist/esm/query-builder/update-result.js +9 -0
  143. package/dist/esm/query-compiler/compiled-query.d.ts +5 -0
  144. package/dist/esm/query-compiler/compiled-query.js +11 -1
  145. package/dist/esm/query-compiler/default-query-compiler.d.ts +2 -0
  146. package/dist/esm/query-compiler/default-query-compiler.js +24 -13
  147. package/dist/esm/query-creator.d.ts +36 -26
  148. package/dist/esm/query-creator.js +25 -17
  149. package/dist/esm/schema/create-view-builder.d.ts +4 -0
  150. package/dist/esm/schema/create-view-builder.js +11 -0
  151. package/dist/esm/util/dynamic-import.d.ts +2 -0
  152. package/dist/esm/util/dynamic-import.js +27 -0
  153. package/dist/esm/util/log.d.ts +10 -8
  154. package/dist/esm/util/log.js +30 -10
  155. package/dist/esm/util/type-utils.d.ts +4 -15
  156. package/package.json +3 -1
@@ -26,7 +26,7 @@ export declare class ExpressionBuilder<DB, TB extends keyof DB> {
26
26
  * .execute()
27
27
  * ```
28
28
  *
29
- * The generated SQL (postgresql):
29
+ * The generated SQL (PostgreSQL):
30
30
  *
31
31
  * ```sql
32
32
  * select "person"."id", count("pet"."id") as "pet_count"
@@ -62,7 +62,7 @@ export declare class ExpressionBuilder<DB, TB extends keyof DB> {
62
62
  * console.log(result[0].owner_name)
63
63
  * ```
64
64
  *
65
- * The generated SQL (postgresql):
65
+ * The generated SQL (PostgreSQL):
66
66
  *
67
67
  * ```sql
68
68
  * select
@@ -31,7 +31,7 @@ export class ExpressionBuilder {
31
31
  * .execute()
32
32
  * ```
33
33
  *
34
- * The generated SQL (postgresql):
34
+ * The generated SQL (PostgreSQL):
35
35
  *
36
36
  * ```sql
37
37
  * select "person"."id", count("pet"."id") as "pet_count"
@@ -19,7 +19,7 @@ import { RawBuilder } from '../raw-builder/raw-builder.js';
19
19
  * .execute()
20
20
  * ```
21
21
  *
22
- * The generated SQL (postgresql):
22
+ * The generated SQL (PostgreSQL):
23
23
  *
24
24
  * ```sql
25
25
  * select "person"."id", count("pet"."id") as "pet_count"
@@ -66,7 +66,7 @@ export declare class FunctionBuilder<DB, TB extends keyof DB> {
66
66
  * Calls the `sum` function for the column given as the argument.
67
67
  *
68
68
  * If this is used in a `select` statement the type of the selected expression
69
- * will be `number | string | BigInt` by default. This is because Kysely can't
69
+ * will be `number | string | bigint` by default. This is because Kysely can't
70
70
  * know the type the db driver outputs. Sometimes the output can be larger than
71
71
  * the largest javascript number and a string is returned instead. Most drivers
72
72
  * allow you to configure the output type of large numbers and Kysely can't
@@ -83,12 +83,12 @@ export declare class FunctionBuilder<DB, TB extends keyof DB> {
83
83
  * .execute()
84
84
  * ```
85
85
  */
86
- sum<O extends number | string | BigInt, C extends StringReference<DB, TB> = any>(column: C): RawBuilder<O>;
86
+ sum<O extends number | string | bigint, C extends StringReference<DB, TB> = any>(column: C): RawBuilder<O>;
87
87
  /**
88
88
  * Calls the `count` function for the column given as the argument.
89
89
  *
90
90
  * If this is used in a `select` statement the type of the selected expression
91
- * will be `number | string | BigInt` by default. This is because Kysely can't
91
+ * will be `number | string |bigint` by default. This is because Kysely can't
92
92
  * know the type the db driver outputs. Sometimes the output can be larger than
93
93
  * the largest javascript number and a string is returned instead. Most drivers
94
94
  * allow you to configure the output type of large numbers and Kysely can't
@@ -105,7 +105,7 @@ export declare class FunctionBuilder<DB, TB extends keyof DB> {
105
105
  * .execute()
106
106
  * ```
107
107
  */
108
- count<O extends number | string | BigInt, C extends StringReference<DB, TB> = any>(column: C): RawBuilder<O>;
108
+ count<O extends number | string | bigint, C extends StringReference<DB, TB> = any>(column: C): RawBuilder<O>;
109
109
  }
110
110
  export interface FunctionBuilderProps {
111
111
  readonly executor: QueryExecutor;
@@ -19,7 +19,7 @@ import { createQueryId } from '../util/query-id.js';
19
19
  * .execute()
20
20
  * ```
21
21
  *
22
- * The generated SQL (postgresql):
22
+ * The generated SQL (PostgreSQL):
23
23
  *
24
24
  * ```sql
25
25
  * select "person"."id", count("pet"."id") as "pet_count"
@@ -79,7 +79,7 @@ export class FunctionBuilder {
79
79
  * Calls the `sum` function for the column given as the argument.
80
80
  *
81
81
  * If this is used in a `select` statement the type of the selected expression
82
- * will be `number | string | BigInt` by default. This is because Kysely can't
82
+ * will be `number | string | bigint` by default. This is because Kysely can't
83
83
  * know the type the db driver outputs. Sometimes the output can be larger than
84
84
  * the largest javascript number and a string is returned instead. Most drivers
85
85
  * allow you to configure the output type of large numbers and Kysely can't
@@ -103,7 +103,7 @@ export class FunctionBuilder {
103
103
  * Calls the `count` function for the column given as the argument.
104
104
  *
105
105
  * If this is used in a `select` statement the type of the selected expression
106
- * will be `number | string | BigInt` by default. This is because Kysely can't
106
+ * will be `number | string |bigint` by default. This is because Kysely can't
107
107
  * know the type the db driver outputs. Sometimes the output can be larger than
108
108
  * the largest javascript number and a string is returned instead. Most drivers
109
109
  * allow you to configure the output type of large numbers and Kysely can't
@@ -0,0 +1,27 @@
1
+ /**
2
+ * The result of an insert query.
3
+ *
4
+ * If the table has an auto incrementing primary key {@link insertId} will hold
5
+ * the generated id on dialects that support it. For example PostgreSQL doesn't
6
+ * return the id by default and {@link insertId} is undefined. On PostgreSQL you
7
+ * need to use {@link QueryBuilder.returning} or {@link QueryBuilder.returningAll}
8
+ * to get out the inserted id.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * const result = await db
13
+ * .insertInto('person')
14
+ * .values(person)
15
+ * .executeTakeFirst()
16
+ *
17
+ * console.log(result.insertId)
18
+ * ```
19
+ */
20
+ export declare class InsertResult {
21
+ #private;
22
+ constructor(insertId: bigint | undefined);
23
+ /**
24
+ * The auto incrementing primary key
25
+ */
26
+ get insertId(): bigint | undefined;
27
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * The result of an insert query.
3
+ *
4
+ * If the table has an auto incrementing primary key {@link insertId} will hold
5
+ * the generated id on dialects that support it. For example PostgreSQL doesn't
6
+ * return the id by default and {@link insertId} is undefined. On PostgreSQL you
7
+ * need to use {@link QueryBuilder.returning} or {@link QueryBuilder.returningAll}
8
+ * to get out the inserted id.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * const result = await db
13
+ * .insertInto('person')
14
+ * .values(person)
15
+ * .executeTakeFirst()
16
+ *
17
+ * console.log(result.insertId)
18
+ * ```
19
+ */
20
+ export class InsertResult {
21
+ #insertId;
22
+ constructor(insertId) {
23
+ this.#insertId = insertId;
24
+ }
25
+ /**
26
+ * The auto incrementing primary key
27
+ */
28
+ get insertId() {
29
+ return this.#insertId;
30
+ }
31
+ }
@@ -4,6 +4,7 @@ import { ExistsExpression, FilterOperator } from '../parser/filter-parser.js';
4
4
  import { ParseContext } from '../parser/parse-context.js';
5
5
  import { ReferenceExpression } from '../parser/reference-parser.js';
6
6
  import { ValueExpressionOrList } from '../parser/value-parser.js';
7
+ import { AnyRawBuilder } from '../util/type-utils.js';
7
8
  export declare class JoinBuilder<DB, TB extends keyof DB> implements OperationNodeSource {
8
9
  #private;
9
10
  constructor(props: JoinBuilderProps);
@@ -15,6 +16,7 @@ export declare class JoinBuilder<DB, TB extends keyof DB> implements OperationNo
15
16
  */
16
17
  on<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: FilterOperator, rhs: ValueExpressionOrList<DB, TB, RE>): JoinBuilder<DB, TB>;
17
18
  on(grouper: (qb: JoinBuilder<DB, TB>) => JoinBuilder<DB, TB>): JoinBuilder<DB, TB>;
19
+ on(raw: AnyRawBuilder): JoinBuilder<DB, TB>;
18
20
  /**
19
21
  * Just like {@link QueryBuilder.orWhere} but adds an item to the join's
20
22
  * `on` clause instead.
@@ -23,6 +25,7 @@ export declare class JoinBuilder<DB, TB extends keyof DB> implements OperationNo
23
25
  */
24
26
  orOn<RE extends ReferenceExpression<DB, TB>>(lhs: RE, op: FilterOperator, rhs: ValueExpressionOrList<DB, TB, RE>): JoinBuilder<DB, TB>;
25
27
  orOn(grouper: (qb: JoinBuilder<DB, TB>) => JoinBuilder<DB, TB>): JoinBuilder<DB, TB>;
28
+ orOn(raw: AnyRawBuilder): JoinBuilder<DB, TB>;
26
29
  /**
27
30
  * Just like {@link QueryBuilder.whereRef} but adds an item to the join's
28
31
  * `on` clause instead.