kysely 0.3.8 → 0.3.9

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.
@@ -75,7 +75,8 @@ class QueryBuilder {
75
75
  * Usage in a subquery:
76
76
  *
77
77
  * ```ts
78
- * db.selectFrom('person)
78
+ * const persons = await db
79
+ * .selectFrom('person')
79
80
  * .selectAll('person')
80
81
  * .select((qb) => qb
81
82
  * .subQuery('pet')
@@ -84,6 +85,7 @@ class QueryBuilder {
84
85
  * .limit(1)
85
86
  * .as('pet_name')
86
87
  * )
88
+ * .execute()
87
89
  * ```
88
90
  *
89
91
  * The generated SQL (postgresql):
@@ -93,8 +95,9 @@ class QueryBuilder {
93
95
  * select "name"
94
96
  * from "pet"
95
97
  * where "pet"."owner_id" = "person"."id"
96
- * ) as pet_name
97
- * from "person"`
98
+ * limit $1
99
+ * ) as "pet_name"
100
+ * from "person"
98
101
  */
99
102
  whereRef(lhs, op, rhs) {
100
103
  ensureCanHaveWhereClause(this.#queryNode);
@@ -132,7 +135,8 @@ class QueryBuilder {
132
135
  * The query below selets all persons that own a pet named Catto:
133
136
  *
134
137
  * ```ts
135
- * db.selectFrom('person')
138
+ * const persons = await db
139
+ * .selectFrom('person')
136
140
  * .selectAll()
137
141
  * .whereExists((qb) => qb
138
142
  * .subQuery('pet')
@@ -140,6 +144,7 @@ class QueryBuilder {
140
144
  * .whereRef('person.id', '=', 'pet.owner_id')
141
145
  * .where('pet.name', '=', 'Catto')
142
146
  * )
147
+ * .execute()
143
148
  * ```
144
149
  *
145
150
  * The generated SQL (postgresql):
@@ -452,7 +457,7 @@ class QueryBuilder {
452
457
  });
453
458
  }
454
459
  /**
455
- * Sets the values to update for an `updateTable` query.
460
+ * Sets the values to update for an {@link Kysely.updateTable | update} query.
456
461
  *
457
462
  * This method takes an object whose keys are column names and values are
458
463
  * values to update. In addition to the column's type, the values can be `raw`
@@ -483,7 +488,7 @@ class QueryBuilder {
483
488
  * ```
484
489
  *
485
490
  * @example
486
- * On postgresql you need to chain `returning` to the query to get
491
+ * On postgresql you ca chain `returning` to the query to get
487
492
  * the updated rows' columns (or any other expression) as the
488
493
  * return value:
489
494
  *
@@ -496,7 +501,7 @@ class QueryBuilder {
496
501
  * })
497
502
  * .where('id', '=', 1)
498
503
  * .returning('id')
499
- * .executeTakeFirst()
504
+ * .executeTakeFirstOrThrow()
500
505
  *
501
506
  * row.id
502
507
  * ```
@@ -40,7 +40,7 @@ export declare type RowType<DB, TB extends keyof DB> = UnionToIntersection<DB[TB
40
40
  */
41
41
  export declare type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
42
42
  /**
43
- * Given a database type and a union of table name in that db returns
43
+ * Given a database type and a union of table names in that db, returns
44
44
  * a union type with all possible column names.
45
45
  *
46
46
  * Example:
@@ -74,7 +74,7 @@ export declare type AnyColumn<DB, TB extends keyof DB> = {
74
74
  [T in TB]: keyof DB[T];
75
75
  }[TB];
76
76
  /**
77
- * Given a database type and a union of table names in that db returns
77
+ * Given a database type and a union of table names in that db, returns
78
78
  * a union type with all possible `table`.`column` combinations.
79
79
  *
80
80
  * Example:
@@ -107,21 +107,30 @@ export declare type AnyColumn<DB, TB extends keyof DB> = {
107
107
  export declare type AnyColumnWithTable<DB, TB extends keyof DB> = {
108
108
  [T in TB]: T extends string ? keyof DB[T] extends string ? `${T}.${keyof DB[T]}` : never : never;
109
109
  }[TB];
110
+ /**
111
+ * Just like {@link AnyColumn} but with a ` as <string>` suffix.
112
+ */
110
113
  export declare type AnyAliasedColumn<DB, TB extends keyof DB> = {
111
114
  [T in TB]: T extends string ? keyof DB[T] extends string ? `${keyof DB[T]} as ${string}` : never : never;
112
115
  }[TB];
113
- export declare type AnyAliasedColumnWithTable<DB, TB extends keyof DB> = `${AnyColumnWithTable<DB, TB>} as ${string}`;
114
116
  /**
115
- * Extracts an array item type.
117
+ * Just like {@link AnyColumnWithTable} but with a ` as <string>` suffix.
118
+ */
119
+ export declare type AnyAliasedColumnWithTable<DB, TB extends keyof DB> = {
120
+ [T in TB]: T extends string ? keyof DB[T] extends string ? `${T}.${keyof DB[T]} as ${string}` : never : never;
121
+ }[TB];
122
+ /**
123
+ * Extracts the item type of an array.
116
124
  */
117
125
  export declare type ArrayItemType<T> = T extends ReadonlyArray<infer I> ? I : never;
118
126
  export declare type AnyQueryBuilder = QueryBuilder<any, any, any>;
119
127
  export declare type AnyAliasedQueryBuilder = AliasedQueryBuilder<any, any, any, any>;
120
128
  export declare type AnyRawBuilder = RawBuilder<any>;
129
+ export declare type AnyAliasedRawBuilder = AliasedRawBuilder<any, any>;
121
130
  export declare type QueryBuilderFactory<DB, TB extends keyof DB> = (qb: SubQueryBuilder<DB, TB>) => QueryBuilder<any, any, any>;
122
131
  export declare type AliasedQueryBuilderFactory<DB, TB extends keyof DB> = (qb: SubQueryBuilder<DB, TB>) => AnyAliasedQueryBuilder;
123
132
  export declare type RawBuilderFactory<DB, TB extends keyof DB> = (qb: SubQueryBuilder<DB, TB>) => AnyRawBuilder;
124
- export declare type AliasedRawBuilderFactory<DB, TB extends keyof DB> = (qb: SubQueryBuilder<DB, TB>) => AliasedRawBuilder<any, any>;
133
+ export declare type AliasedRawBuilderFactory<DB, TB extends keyof DB> = (qb: SubQueryBuilder<DB, TB>) => AnyAliasedRawBuilder;
125
134
  export interface InsertResultTypeTag {
126
135
  /** @internal */
127
136
  __isInsertResultTypeTag__: true;
@@ -23,6 +23,7 @@ export class PostgresDriver extends Driver {
23
23
  port: cfg.port,
24
24
  user: cfg.user,
25
25
  password: cfg.password,
26
+ ssl: cfg.ssl,
26
27
  // Pool options.
27
28
  connectionTimeoutMillis: cfg.pool.connectionTimeoutMillis,
28
29
  idleTimeoutMillis: cfg.pool.idleTimeoutMillis,
@@ -1,3 +1,5 @@
1
+ /// <reference types="node" />
2
+ import { SecureContextOptions } from 'tls';
1
3
  import { DatabaseConnection } from './database-connection.js';
2
4
  export interface DriverConfig {
3
5
  /**
@@ -24,6 +26,10 @@ export interface DriverConfig {
24
26
  * Connection pooling config.
25
27
  */
26
28
  pool?: PoolConfig;
29
+ /**
30
+ * Optional SSL configuration.
31
+ */
32
+ ssl?: SecureContextOptions;
27
33
  }
28
34
  export interface PoolConfig {
29
35
  /**
@@ -1,12 +1,12 @@
1
1
  import { AliasedRawBuilder } from '../raw-builder/raw-builder.js';
2
2
  import { AliasedQueryBuilder, QueryBuilder } from '../query-builder/query-builder.js';
3
3
  import { SelectionNode } from '../operation-node/selection-node.js';
4
- import { AliasedQueryBuilderFactory, AliasedRawBuilderFactory, AnyAliasedColumn, AnyAliasedColumnWithTable, AnyAliasedQueryBuilder, AnyColumn, AnyColumnWithTable, InsertResultTypeTag, RowType, ValueType } from '../query-builder/type-utils.js';
4
+ import { AliasedQueryBuilderFactory, AliasedRawBuilderFactory, AnyAliasedColumn, AnyAliasedColumnWithTable, AnyAliasedQueryBuilder, AnyAliasedRawBuilder, AnyColumn, AnyColumnWithTable, InsertResultTypeTag, RowType, ValueType } from '../query-builder/type-utils.js';
5
5
  import { DynamicReferenceBuilder } from '../dynamic/dynamic-reference-builder.js';
6
6
  /**
7
7
  * A selection expression.
8
8
  */
9
- export declare type SelectExpression<DB, TB extends keyof DB> = AnyAliasedColumnWithTable<DB, TB> | AnyAliasedColumn<DB, TB> | AnyColumnWithTable<DB, TB> | AnyColumn<DB, TB> | AliasedRawBuilder<any, any> | AliasedRawBuilderFactory<DB, TB> | AnyAliasedQueryBuilder | AliasedQueryBuilderFactory<DB, TB> | DynamicReferenceBuilder<any>;
9
+ export declare type SelectExpression<DB, TB extends keyof DB> = AnyAliasedColumnWithTable<DB, TB> | AnyAliasedColumn<DB, TB> | AnyColumnWithTable<DB, TB> | AnyColumn<DB, TB> | AnyAliasedRawBuilder | AliasedRawBuilderFactory<DB, TB> | AnyAliasedQueryBuilder | AliasedQueryBuilderFactory<DB, TB> | DynamicReferenceBuilder<any>;
10
10
  export declare type SelectExpressionOrList<DB, TB extends keyof DB> = SelectExpression<DB, TB> | ReadonlyArray<SelectExpression<DB, TB>>;
11
11
  /**
12
12
  * Given a selection expression returns a query builder type that
@@ -1,10 +1,10 @@
1
1
  import { AliasedQueryBuilder, QueryBuilder } from '../query-builder/query-builder.js';
2
2
  import { TableNode } from '../operation-node/table-node.js';
3
- import { AliasedQueryBuilderFactory, AnyAliasedQueryBuilder } from '../query-builder/type-utils.js';
3
+ import { AliasedQueryBuilderFactory, AnyAliasedQueryBuilder, AnyAliasedRawBuilder } from '../query-builder/type-utils.js';
4
4
  import { AliasedRawBuilder } from '../raw-builder/raw-builder.js';
5
5
  import { TableExpressionNode } from '../operation-node/operation-node-utils.js';
6
6
  export declare type TableExpression<DB, TB extends keyof DB> = TableReference<DB> | AnyAliasedQueryBuilder | AliasedQueryBuilderFactory<DB, TB>;
7
- export declare type TableReference<DB> = AnyAliasedTable<DB, any, any> | AnyTable<DB> | AliasedRawBuilder<any, any>;
7
+ export declare type TableReference<DB> = AnyAliasedTable<DB, any, any> | AnyTable<DB> | AnyAliasedRawBuilder;
8
8
  export declare type QueryBuilderWithTable<DB, TB extends keyof DB, O, TE> = QueryBuilder<TableExpressionDatabaseType<DB, TE>, TB | ExtractAliasFromTableExpression<DB, TE>, O>;
9
9
  export declare type TableExpressionDatabaseType<DB, TE> = DB extends ExtractDatabaseTypeFromTableExpression<DB, TE> ? DB : DB & ExtractDatabaseTypeFromTableExpression<DB, TE>;
10
10
  export declare type ExtractAliasFromTableExpression<DB, TE> = TE extends `${string} as ${infer TA}` ? TA : TE extends keyof DB ? TE : TE extends AliasedQueryBuilder<any, any, any, infer QA> ? QA : TE extends (qb: any) => AliasedQueryBuilder<any, any, any, infer QA> ? QA : TE extends (qb: any) => AliasedRawBuilder<any, infer RA> ? RA : never;