drizzle-orm 0.27.3-e080bed → 0.28.0-5dd9190
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/{alias-5aeeb2f5.cjs → alias-3f5ac719.cjs} +267 -142
- package/alias-3f5ac719.cjs.map +1 -0
- package/{alias-6eaa2e87.mjs → alias-7164ff43.mjs} +223 -126
- package/alias-7164ff43.mjs.map +1 -0
- package/aws-data-api/pg/index.cjs +1 -1
- package/aws-data-api/pg/index.d.ts +4 -4
- package/aws-data-api/pg/index.mjs +2 -2
- package/aws-data-api/pg/migrator.d.ts +4 -4
- package/better-sqlite3/index.cjs +2 -2
- package/better-sqlite3/index.d.ts +5 -5
- package/better-sqlite3/index.mjs +2 -2
- package/better-sqlite3/migrator.d.ts +5 -5
- package/bun-sqlite/index.cjs +2 -2
- package/bun-sqlite/index.d.ts +5 -5
- package/bun-sqlite/index.mjs +2 -2
- package/bun-sqlite/migrator.d.ts +5 -5
- package/column.d-9d2f4045.d.ts +1151 -0
- package/d1/index.cjs +2 -2
- package/d1/index.d.ts +5 -5
- package/d1/index.mjs +2 -2
- package/d1/migrator.d.ts +5 -5
- package/{driver.d-58d095ec.d.ts → driver.d-055d4782.d.ts} +2 -2
- package/{driver.d-d2f034d7.d.ts → driver.d-20707624.d.ts} +2 -2
- package/{driver.d-7f308b1e.d.ts → driver.d-ab0f126f.d.ts} +2 -2
- package/{driver.d-f55c470d.d.ts → driver.d-b8dd753f.d.ts} +2 -2
- package/{driver.d-28b0b849.d.ts → driver.d-c4dd56f7.d.ts} +2 -2
- package/{driver.d-53ed595e.d.ts → driver.d-eb654ed5.d.ts} +2 -2
- package/index.cjs +3 -3
- package/index.d.ts +4 -4
- package/index.mjs +2 -2
- package/knex/index.d.ts +1 -1
- package/kysely/index.d.ts +1 -1
- package/libsql/index.cjs +2 -2
- package/libsql/index.d.ts +5 -5
- package/libsql/index.mjs +2 -2
- package/libsql/migrator.d.ts +5 -5
- package/mysql-core/index.cjs +57 -21
- package/mysql-core/index.cjs.map +1 -1
- package/mysql-core/index.d.ts +184 -344
- package/mysql-core/index.mjs +58 -22
- package/mysql-core/index.mjs.map +1 -1
- package/mysql2/index.cjs +14 -10
- package/mysql2/index.cjs.map +1 -1
- package/mysql2/index.d.ts +16 -12
- package/mysql2/index.mjs +15 -11
- package/mysql2/index.mjs.map +1 -1
- package/mysql2/migrator.d.ts +4 -4
- package/neon-http/index.cjs +1 -1
- package/neon-http/index.d.ts +4 -4
- package/neon-http/index.mjs +2 -2
- package/neon-http/migrator.cjs +1 -1
- package/neon-http/migrator.d.ts +4 -4
- package/neon-http/migrator.mjs +1 -1
- package/neon-serverless/index.cjs +1 -1
- package/neon-serverless/index.d.ts +4 -4
- package/neon-serverless/index.mjs +2 -2
- package/neon-serverless/migrator.d.ts +4 -4
- package/node-postgres/index.cjs +1 -1
- package/node-postgres/index.d.ts +4 -4
- package/node-postgres/index.mjs +2 -2
- package/node-postgres/migrator.d.ts +4 -4
- package/package.json +3 -3
- package/pg-core/index.cjs +1 -1
- package/pg-core/index.cjs.map +1 -1
- package/pg-core/index.d.ts +207 -373
- package/pg-core/index.mjs +48 -18
- package/pg-core/index.mjs.map +1 -1
- package/planetscale-serverless/index.cjs +5 -5
- package/planetscale-serverless/index.cjs.map +1 -1
- package/planetscale-serverless/index.d.ts +5 -5
- package/planetscale-serverless/index.mjs +5 -5
- package/planetscale-serverless/index.mjs.map +1 -1
- package/planetscale-serverless/migrator.d.ts +4 -4
- package/postgres-js/index.cjs +1 -1
- package/postgres-js/index.d.ts +4 -4
- package/postgres-js/index.mjs +2 -2
- package/postgres-js/migrator.d.ts +4 -4
- package/{query-promise.d-fd15f63a.d.ts → query-promise.d-bc96befc.d.ts} +48 -45
- package/{db.d-2e828d8c.d.ts → select.types.d-570dd25a.d.ts} +281 -465
- package/{select.types.d-35b6e089.d.ts → select.types.d-73209a67.d.ts} +47 -258
- package/{select.types.d-1ea8ee3b.d.ts → select.types.d-a3c4c974.d.ts} +20 -19
- package/{db.d-9d586c00.d.ts → select.types.d-d0a10728.d.ts} +471 -731
- package/{session-c47f12d9.mjs → session-0c131cde.mjs} +2 -2
- package/{session-c47f12d9.mjs.map → session-0c131cde.mjs.map} +1 -1
- package/{session-2431f9e1.mjs → session-16f863cd.mjs} +36 -64
- package/session-16f863cd.mjs.map +1 -0
- package/{session-6bfef963.cjs → session-805d2876.cjs} +64 -131
- package/session-805d2876.cjs.map +1 -0
- package/{session-fa99bfce.mjs → session-ac71392b.mjs} +67 -134
- package/session-ac71392b.mjs.map +1 -0
- package/{session-fa9720a5.cjs → session-e9306785.cjs} +61 -71
- package/session-e9306785.cjs.map +1 -0
- package/sql-js/index.cjs +2 -2
- package/sql-js/index.d.ts +5 -5
- package/sql-js/index.mjs +2 -2
- package/sql-js/migrator.d.ts +5 -5
- package/sqlite-core/index.cjs +2 -2
- package/sqlite-core/index.d.ts +83 -137
- package/sqlite-core/index.mjs +28 -10
- package/sqlite-core/index.mjs.map +1 -1
- package/sqlite-proxy/index.cjs +2 -2
- package/sqlite-proxy/index.d.ts +6 -6
- package/sqlite-proxy/index.mjs +2 -2
- package/sqlite-proxy/migrator.cjs +1 -1
- package/sqlite-proxy/migrator.d.ts +5 -5
- package/sqlite-proxy/migrator.mjs +1 -1
- package/vercel-postgres/index.cjs +1 -1
- package/vercel-postgres/index.d.ts +4 -4
- package/vercel-postgres/index.mjs +2 -2
- package/vercel-postgres/migrator.d.ts +4 -4
- package/version.cjs +1 -1
- package/version.d.ts +1 -1
- package/version.mjs +1 -1
- package/alias-5aeeb2f5.cjs.map +0 -1
- package/alias-6eaa2e87.mjs.map +0 -1
- package/column.d-9d74a4f3.d.ts +0 -558
- package/session-2431f9e1.mjs.map +0 -1
- package/session-6bfef963.cjs.map +0 -1
- package/session-fa9720a5.cjs.map +0 -1
- package/session-fa99bfce.mjs.map +0 -1
|
@@ -1,242 +1,18 @@
|
|
|
1
|
-
import { a as SQL,
|
|
2
|
-
import { A as AddAliasToSelection, T as TypedQueryBuilder, G as GetSelectTableName, a as GetSelectTableSelection, S as SelectMode, J as JoinNullability, B as BuildSubquerySelection, b as SelectResult, c as JoinType, M as MapColumnsToTableAlias, d as AppendToResult, e as AppendToNullabilityMap } from './select.types.d-
|
|
3
|
-
import { Q as QueryPromise, T as TablesRelationalConfig,
|
|
1
|
+
import { a as SQL, aq as UpdateSet, bh as AnyMySqlTable, G as GetColumnData, e as entityKind, X as SQLWrapper, Q as Query, av as Assume, a9 as Param, I as InferModel, ad as Placeholder, bi as AnyMySqlColumn, aF as KnownKeysOnly, aJ as ColumnsSelection, h as Dialect, ah as Subquery, ai as WithSubquery, ax as DrizzleTypeError, aw as Equal, ay as ValueOrArray, bj as MySqlColumnBuilder, o as BuildColumns, V as View, bk as MySqlTable, T as Table, bl as MySqlTableWithColumns, al as UpdateTableConfig, y as SelectedFieldsFlat$1, E as SelectedFields$1, F as SelectedFieldsOrdered$1 } from './column.d-9d2f4045.js';
|
|
2
|
+
import { A as AddAliasToSelection, T as TypedQueryBuilder, G as GetSelectTableName, a as GetSelectTableSelection, S as SelectMode, J as JoinNullability, B as BuildSubquerySelection, b as SelectResult, c as JoinType, M as MapColumnsToTableAlias, d as AppendToResult, e as AppendToNullabilityMap } from './select.types.d-a3c4c974.js';
|
|
3
|
+
import { Q as QueryPromise, T as TablesRelationalConfig, L as TableRelationalConfig, K as DBQueryConfig, a as Relation, a3 as BuildRelationalQueryResult, V as BuildQueryResult, N as ExtractTablesWithRelations, R as RelationalSchemaConfig } from './query-promise.d-bc96befc.js';
|
|
4
4
|
import { ResultSetHeader } from 'mysql2/promise';
|
|
5
5
|
import { MigrationMeta, MigrationConfig } from './migrator.js';
|
|
6
6
|
|
|
7
|
-
declare class CheckBuilder {
|
|
8
|
-
name: string;
|
|
9
|
-
value: SQL;
|
|
10
|
-
static readonly [entityKind]: string;
|
|
11
|
-
protected brand: 'MySqlConstraintBuilder';
|
|
12
|
-
constructor(name: string, value: SQL);
|
|
13
|
-
}
|
|
14
|
-
declare class Check {
|
|
15
|
-
table: AnyMySqlTable;
|
|
16
|
-
static readonly [entityKind]: string;
|
|
17
|
-
readonly name: string;
|
|
18
|
-
readonly value: SQL;
|
|
19
|
-
constructor(table: AnyMySqlTable, builder: CheckBuilder);
|
|
20
|
-
}
|
|
21
|
-
declare function check(name: string, value: SQL): CheckBuilder;
|
|
22
|
-
|
|
23
|
-
interface IndexConfig {
|
|
24
|
-
name: string;
|
|
25
|
-
columns: IndexColumn[];
|
|
26
|
-
/**
|
|
27
|
-
* If true, the index will be created as `create unique index` instead of `create index`.
|
|
28
|
-
*/
|
|
29
|
-
unique?: boolean;
|
|
30
|
-
/**
|
|
31
|
-
* If set, the index will be created as `create index ... using { 'btree' | 'hash' }`.
|
|
32
|
-
*/
|
|
33
|
-
using?: 'btree' | 'hash';
|
|
34
|
-
/**
|
|
35
|
-
* If set, the index will be created as `create index ... algorythm { 'default' | 'inplace' | 'copy' }`.
|
|
36
|
-
*/
|
|
37
|
-
algorythm?: 'default' | 'inplace' | 'copy';
|
|
38
|
-
/**
|
|
39
|
-
* If set, adds locks to the index creation.
|
|
40
|
-
*/
|
|
41
|
-
lock?: 'default' | 'none' | 'shared' | 'exclusive';
|
|
42
|
-
}
|
|
43
|
-
type IndexColumn = AnyMySqlColumn | SQL;
|
|
44
|
-
declare class IndexBuilderOn {
|
|
45
|
-
private name;
|
|
46
|
-
private unique;
|
|
47
|
-
static readonly [entityKind]: string;
|
|
48
|
-
constructor(name: string, unique: boolean);
|
|
49
|
-
on(...columns: [IndexColumn, ...IndexColumn[]]): IndexBuilder;
|
|
50
|
-
}
|
|
51
|
-
interface AnyIndexBuilder {
|
|
52
|
-
build(table: AnyMySqlTable): Index;
|
|
53
|
-
}
|
|
54
|
-
interface IndexBuilder extends AnyIndexBuilder {
|
|
55
|
-
}
|
|
56
|
-
declare class IndexBuilder implements AnyIndexBuilder {
|
|
57
|
-
static readonly [entityKind]: string;
|
|
58
|
-
constructor(name: string, columns: IndexColumn[], unique: boolean);
|
|
59
|
-
using(using: IndexConfig['using']): Omit<this, 'using'>;
|
|
60
|
-
algorythm(algorythm: IndexConfig['algorythm']): Omit<this, 'algorythm'>;
|
|
61
|
-
lock(lock: IndexConfig['lock']): Omit<this, 'lock'>;
|
|
62
|
-
}
|
|
63
|
-
declare class Index {
|
|
64
|
-
static readonly [entityKind]: string;
|
|
65
|
-
readonly config: IndexConfig & {
|
|
66
|
-
table: AnyMySqlTable;
|
|
67
|
-
};
|
|
68
|
-
constructor(config: IndexConfig, table: AnyMySqlTable);
|
|
69
|
-
}
|
|
70
|
-
type GetColumnsTableName<TColumns> = TColumns extends AnyMySqlColumn<{
|
|
71
|
-
tableName: infer TTableName extends string;
|
|
72
|
-
}> | AnyMySqlColumn<{
|
|
73
|
-
tableName: infer TTableName extends string;
|
|
74
|
-
}>[] ? TTableName : never;
|
|
75
|
-
declare function index(name: string): IndexBuilderOn;
|
|
76
|
-
declare function uniqueIndex(name: string): IndexBuilderOn;
|
|
77
|
-
|
|
78
|
-
declare function primaryKey<TTableName extends string, TColumns extends AnyMySqlColumn<{
|
|
79
|
-
tableName: TTableName;
|
|
80
|
-
}>[]>(...columns: TColumns): PrimaryKeyBuilder;
|
|
81
|
-
declare class PrimaryKeyBuilder {
|
|
82
|
-
static readonly [entityKind]: string;
|
|
83
|
-
constructor(columns: AnyMySqlColumn[]);
|
|
84
|
-
}
|
|
85
|
-
declare class PrimaryKey {
|
|
86
|
-
readonly table: AnyMySqlTable;
|
|
87
|
-
static readonly [entityKind]: string;
|
|
88
|
-
readonly columns: AnyMySqlColumn<{}>[];
|
|
89
|
-
constructor(table: AnyMySqlTable, columns: AnyMySqlColumn<{}>[]);
|
|
90
|
-
getName(): string;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
declare function unique(name?: string): UniqueOnConstraintBuilder;
|
|
94
|
-
declare function uniqueKeyName(table: AnyMySqlTable, columns: string[]): string;
|
|
95
|
-
declare class UniqueConstraintBuilder {
|
|
96
|
-
private name?;
|
|
97
|
-
static readonly [entityKind]: string;
|
|
98
|
-
constructor(columns: AnyMySqlColumn[], name?: string | undefined);
|
|
99
|
-
}
|
|
100
|
-
declare class UniqueOnConstraintBuilder {
|
|
101
|
-
static readonly [entityKind]: string;
|
|
102
|
-
constructor(name?: string);
|
|
103
|
-
on(...columns: [AnyMySqlColumn, ...AnyMySqlColumn[]]): UniqueConstraintBuilder;
|
|
104
|
-
}
|
|
105
|
-
declare class UniqueConstraint {
|
|
106
|
-
readonly table: AnyMySqlTable;
|
|
107
|
-
static readonly [entityKind]: string;
|
|
108
|
-
readonly columns: AnyMySqlColumn<{}>[];
|
|
109
|
-
readonly name?: string;
|
|
110
|
-
readonly nullsNotDistinct: boolean;
|
|
111
|
-
constructor(table: AnyMySqlTable, columns: AnyMySqlColumn<{}>[], name?: string);
|
|
112
|
-
getName(): string | undefined;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
type MySqlTableExtraConfig = Record<string, AnyIndexBuilder | CheckBuilder | ForeignKeyBuilder | PrimaryKeyBuilder | UniqueConstraintBuilder>;
|
|
116
|
-
type TableConfig = TableConfig$1<AnyMySqlColumn>;
|
|
117
|
-
declare class MySqlTable<T extends TableConfig> extends Table<T> {
|
|
118
|
-
static readonly [entityKind]: string;
|
|
119
|
-
protected $columns: T['columns'];
|
|
120
|
-
}
|
|
121
|
-
type AnyMySqlTable<TPartial extends Partial<TableConfig> = {}> = MySqlTable<UpdateTableConfig<TableConfig, TPartial>>;
|
|
122
|
-
type MySqlTableWithColumns<T extends TableConfig> = MySqlTable<T> & {
|
|
123
|
-
[Key in keyof T['columns']]: T['columns'][Key];
|
|
124
|
-
};
|
|
125
|
-
declare function mysqlTableWithSchema<TTableName extends string, TSchemaName extends string | undefined, TColumnsMap extends Record<string, AnyMySqlColumnBuilder>>(name: TTableName, columns: TColumnsMap, extraConfig: ((self: BuildColumns<TTableName, TColumnsMap>) => MySqlTableExtraConfig) | undefined, schema: TSchemaName, baseName?: TTableName): MySqlTableWithColumns<{
|
|
126
|
-
name: TTableName;
|
|
127
|
-
schema: TSchemaName;
|
|
128
|
-
columns: BuildColumns<TTableName, TColumnsMap>;
|
|
129
|
-
}>;
|
|
130
|
-
interface MySqlTableFn<TSchemaName extends string | undefined = undefined> {
|
|
131
|
-
<TTableName extends string, TColumnsMap extends Record<string, AnyMySqlColumnBuilder>>(name: TTableName, columns: TColumnsMap, extraConfig?: (self: BuildColumns<TTableName, TColumnsMap>) => MySqlTableExtraConfig): MySqlTableWithColumns<{
|
|
132
|
-
name: TTableName;
|
|
133
|
-
schema: TSchemaName;
|
|
134
|
-
columns: BuildColumns<TTableName, TColumnsMap>;
|
|
135
|
-
}>;
|
|
136
|
-
}
|
|
137
|
-
declare const mysqlTable: MySqlTableFn;
|
|
138
|
-
declare function mysqlTableCreator(customizeTableName: (name: string) => string): MySqlTableFn;
|
|
139
|
-
|
|
140
|
-
type UpdateDeleteAction = 'cascade' | 'restrict' | 'no action' | 'set null' | 'set default';
|
|
141
|
-
type Reference = () => {
|
|
142
|
-
readonly columns: AnyMySqlColumn[];
|
|
143
|
-
readonly foreignTable: AnyMySqlTable;
|
|
144
|
-
readonly foreignColumns: AnyMySqlColumn[];
|
|
145
|
-
};
|
|
146
|
-
declare class ForeignKeyBuilder {
|
|
147
|
-
static readonly [entityKind]: string;
|
|
148
|
-
constructor(config: () => {
|
|
149
|
-
columns: AnyMySqlColumn[];
|
|
150
|
-
foreignColumns: AnyMySqlColumn[];
|
|
151
|
-
}, actions?: {
|
|
152
|
-
onUpdate?: UpdateDeleteAction;
|
|
153
|
-
onDelete?: UpdateDeleteAction;
|
|
154
|
-
} | undefined);
|
|
155
|
-
onUpdate(action: UpdateDeleteAction): this;
|
|
156
|
-
onDelete(action: UpdateDeleteAction): this;
|
|
157
|
-
}
|
|
158
|
-
type AnyForeignKeyBuilder = ForeignKeyBuilder;
|
|
159
|
-
declare class ForeignKey {
|
|
160
|
-
readonly table: AnyMySqlTable;
|
|
161
|
-
static readonly [entityKind]: string;
|
|
162
|
-
readonly reference: Reference;
|
|
163
|
-
readonly onUpdate: UpdateDeleteAction | undefined;
|
|
164
|
-
readonly onDelete: UpdateDeleteAction | undefined;
|
|
165
|
-
constructor(table: AnyMySqlTable, builder: ForeignKeyBuilder);
|
|
166
|
-
getName(): string;
|
|
167
|
-
}
|
|
168
|
-
type ColumnsWithTable<TTableName extends string, TColumns extends AnyMySqlColumn[]> = {
|
|
169
|
-
[Key in keyof TColumns]: AnyMySqlColumn<{
|
|
170
|
-
tableName: TTableName;
|
|
171
|
-
}>;
|
|
172
|
-
};
|
|
173
|
-
type GetColumnsTable<TColumns extends AnyMySqlColumn | AnyMySqlColumn[]> = (TColumns extends AnyMySqlColumn ? TColumns : TColumns extends AnyMySqlColumn[] ? TColumns[number] : never) extends AnyMySqlColumn<{
|
|
174
|
-
tableName: infer TTableName extends string;
|
|
175
|
-
}> ? TTableName : never;
|
|
176
|
-
declare function foreignKey<TTableName extends string, TForeignTableName extends string, TColumns extends [AnyMySqlColumn<{
|
|
177
|
-
tableName: TTableName;
|
|
178
|
-
}>, ...AnyMySqlColumn<{
|
|
179
|
-
tableName: TTableName;
|
|
180
|
-
}>[]]>(config: {
|
|
181
|
-
columns: TColumns;
|
|
182
|
-
foreignColumns: ColumnsWithTable<TForeignTableName, TColumns>;
|
|
183
|
-
}): ForeignKeyBuilder;
|
|
184
|
-
|
|
185
|
-
interface ReferenceConfig {
|
|
186
|
-
ref: () => AnyMySqlColumn;
|
|
187
|
-
actions: {
|
|
188
|
-
onUpdate?: UpdateDeleteAction;
|
|
189
|
-
onDelete?: UpdateDeleteAction;
|
|
190
|
-
};
|
|
191
|
-
}
|
|
192
|
-
interface MySqlColumnBuilderHKT extends ColumnBuilderHKTBase {
|
|
193
|
-
_type: MySqlColumnBuilder<MySqlColumnBuilderHKT, Assume<this['config'], ColumnBuilderBaseConfig>>;
|
|
194
|
-
_columnHKT: MySqlColumnHKT;
|
|
195
|
-
}
|
|
196
|
-
interface MySqlColumnHKT extends ColumnHKTBase {
|
|
197
|
-
_type: MySqlColumn<MySqlColumnHKT, Assume<this['config'], ColumnBaseConfig>>;
|
|
198
|
-
}
|
|
199
|
-
declare abstract class MySqlColumnBuilder<THKT extends ColumnBuilderHKTBase, T extends ColumnBuilderBaseConfig, TRuntimeConfig extends object = {}, TTypeConfig extends object = {}> extends ColumnBuilder<THKT, T, TRuntimeConfig, TTypeConfig & {
|
|
200
|
-
mysqlBrand: 'MySqlColumnBuilder';
|
|
201
|
-
}> {
|
|
202
|
-
static readonly [entityKind]: string;
|
|
203
|
-
private foreignKeyConfigs;
|
|
204
|
-
references(ref: ReferenceConfig['ref'], actions?: ReferenceConfig['actions']): this;
|
|
205
|
-
unique(name?: string): this;
|
|
206
|
-
}
|
|
207
|
-
type AnyMySqlColumnBuilder<TPartial extends Partial<ColumnBuilderBaseConfig> = {}> = MySqlColumnBuilder<MySqlColumnBuilderHKT, Required<Update<ColumnBuilderBaseConfig, TPartial>>>;
|
|
208
|
-
declare abstract class MySqlColumn<THKT extends ColumnHKT, T extends ColumnBaseConfig, TRuntimeConfig extends object = {}> extends Column<THKT, T, TRuntimeConfig, {
|
|
209
|
-
mysqlBrand: 'MySqlColumn';
|
|
210
|
-
}> {
|
|
211
|
-
readonly table: AnyMySqlTable;
|
|
212
|
-
static readonly [entityKind]: string;
|
|
213
|
-
constructor(table: AnyMySqlTable, config: ColumnBuilderRuntimeConfig<T['data']> & TRuntimeConfig);
|
|
214
|
-
}
|
|
215
|
-
type AnyMySqlColumn<TPartial extends Partial<ColumnBaseConfig> = {}> = MySqlColumn<MySqlColumnHKT, Required<Update<ColumnBaseConfig, TPartial>>>;
|
|
216
|
-
interface MySqlColumnWithAutoIncrementConfig {
|
|
217
|
-
autoIncrement: boolean;
|
|
218
|
-
}
|
|
219
|
-
declare abstract class MySqlColumnBuilderWithAutoIncrement<THKT extends ColumnBuilderHKTBase, T extends ColumnBuilderBaseConfig, TRuntimeConfig extends object = {}> extends MySqlColumnBuilder<THKT, T, TRuntimeConfig & MySqlColumnWithAutoIncrementConfig> {
|
|
220
|
-
static readonly [entityKind]: string;
|
|
221
|
-
constructor(name: NonNullable<T['name']>);
|
|
222
|
-
autoincrement(): MySqlColumnBuilderWithAutoIncrement<THKT, UpdateCBConfig<T, {
|
|
223
|
-
hasDefault: true;
|
|
224
|
-
}>, TRuntimeConfig>;
|
|
225
|
-
}
|
|
226
|
-
declare abstract class MySqlColumnWithAutoIncrement<THKT extends ColumnHKT, T extends ColumnBaseConfig, TRuntimeConfig extends object = {}> extends MySqlColumn<THKT, T, MySqlColumnWithAutoIncrementConfig & TRuntimeConfig> {
|
|
227
|
-
static readonly [entityKind]: string;
|
|
228
|
-
readonly autoIncrement: boolean;
|
|
229
|
-
}
|
|
230
|
-
|
|
231
7
|
interface MySqlUpdateConfig {
|
|
232
8
|
where?: SQL | undefined;
|
|
233
9
|
set: UpdateSet;
|
|
234
10
|
table: AnyMySqlTable;
|
|
235
11
|
returning?: SelectedFieldsOrdered;
|
|
236
12
|
}
|
|
237
|
-
type MySqlUpdateSetSource<TTable extends AnyMySqlTable> =
|
|
13
|
+
type MySqlUpdateSetSource<TTable extends AnyMySqlTable> = {
|
|
238
14
|
[Key in keyof TTable['_']['columns']]?: GetColumnData<TTable['_']['columns'][Key], 'query'> | SQL;
|
|
239
|
-
}
|
|
15
|
+
} & {};
|
|
240
16
|
declare class MySqlUpdateBuilder<TTable extends AnyMySqlTable, TQueryResult extends QueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase> {
|
|
241
17
|
private table;
|
|
242
18
|
private session;
|
|
@@ -255,8 +31,11 @@ declare class MySqlUpdate<TTable extends AnyMySqlTable, TQueryResult extends Que
|
|
|
255
31
|
protected $table: TTable;
|
|
256
32
|
private config;
|
|
257
33
|
constructor(table: TTable, set: UpdateSet, session: MySqlSession, dialect: MySqlDialect);
|
|
258
|
-
where(where: SQL | undefined):
|
|
259
|
-
toSQL():
|
|
34
|
+
where(where: SQL | undefined): this;
|
|
35
|
+
toSQL(): {
|
|
36
|
+
sql: Query['sql'];
|
|
37
|
+
params: Query['params'];
|
|
38
|
+
};
|
|
260
39
|
prepare(): Assume<(TPreparedQueryHKT & {
|
|
261
40
|
readonly config: PreparedQueryConfig & {
|
|
262
41
|
execute: QueryResultKind<TQueryResult, never>;
|
|
@@ -278,9 +57,9 @@ interface MySqlInsertConfig<TTable extends AnyMySqlTable = AnyMySqlTable> {
|
|
|
278
57
|
onConflict?: SQL;
|
|
279
58
|
}
|
|
280
59
|
type AnyMySqlInsertConfig = MySqlInsertConfig<AnyMySqlTable>;
|
|
281
|
-
type MySqlInsertValue<TTable extends AnyMySqlTable> =
|
|
60
|
+
type MySqlInsertValue<TTable extends AnyMySqlTable> = {
|
|
282
61
|
[Key in keyof InferModel<TTable, 'insert'>]: InferModel<TTable, 'insert'>[Key] | SQL | Placeholder;
|
|
283
|
-
}
|
|
62
|
+
} & {};
|
|
284
63
|
declare class MySqlInsertBuilder<TTable extends AnyMySqlTable, TQueryResult extends QueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase> {
|
|
285
64
|
private table;
|
|
286
65
|
private session;
|
|
@@ -304,7 +83,10 @@ declare class MySqlInsert<TTable extends AnyMySqlTable, TQueryResult extends Que
|
|
|
304
83
|
onDuplicateKeyUpdate(config: {
|
|
305
84
|
set: MySqlUpdateSetSource<TTable>;
|
|
306
85
|
}): this;
|
|
307
|
-
toSQL():
|
|
86
|
+
toSQL(): {
|
|
87
|
+
sql: Query['sql'];
|
|
88
|
+
params: Query['params'];
|
|
89
|
+
};
|
|
308
90
|
prepare(): Assume<(TPreparedQueryHKT & {
|
|
309
91
|
readonly config: PreparedQueryConfig & {
|
|
310
92
|
execute: QueryResultKind<TQueryResult, never>;
|
|
@@ -375,9 +157,9 @@ declare class RelationalQueryBuilder<TPreparedQueryHKT extends PreparedQueryHKTB
|
|
|
375
157
|
private tableConfig;
|
|
376
158
|
private dialect;
|
|
377
159
|
private session;
|
|
378
|
-
private
|
|
160
|
+
private mode;
|
|
379
161
|
static readonly [entityKind]: string;
|
|
380
|
-
constructor(fullSchema: Record<string, unknown>, schema: TSchema, tableNamesMap: Record<string, string>, table: AnyMySqlTable, tableConfig: TableRelationalConfig, dialect: MySqlDialect, session: MySqlSession,
|
|
162
|
+
constructor(fullSchema: Record<string, unknown>, schema: TSchema, tableNamesMap: Record<string, string>, table: AnyMySqlTable, tableConfig: TableRelationalConfig, dialect: MySqlDialect, session: MySqlSession, mode: Mode);
|
|
381
163
|
findMany<TConfig extends DBQueryConfig<'many', true, TSchema, TFields>>(config?: KnownKeysOnly<TConfig, DBQueryConfig<'many', true, TSchema, TFields>>): MySqlRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TConfig>[]>;
|
|
382
164
|
findFirst<TSelection extends Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>(config?: KnownKeysOnly<TSelection, Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>): MySqlRelationalQuery<TPreparedQueryHKT, BuildQueryResult<TSchema, TFields, TSelection> | undefined>;
|
|
383
165
|
}
|
|
@@ -390,11 +172,11 @@ declare class MySqlRelationalQuery<TPreparedQueryHKT extends PreparedQueryHKTBas
|
|
|
390
172
|
private dialect;
|
|
391
173
|
private session;
|
|
392
174
|
private config;
|
|
393
|
-
private
|
|
394
|
-
private
|
|
175
|
+
private queryMode;
|
|
176
|
+
private mode?;
|
|
395
177
|
static readonly [entityKind]: string;
|
|
396
178
|
protected $brand: 'MySqlRelationalQuery';
|
|
397
|
-
constructor(fullSchema: Record<string, unknown>, schema: TablesRelationalConfig, tableNamesMap: Record<string, string>, table: AnyMySqlTable, tableConfig: TableRelationalConfig, dialect: MySqlDialect, session: MySqlSession, config: DBQueryConfig<'many', true> | true,
|
|
179
|
+
constructor(fullSchema: Record<string, unknown>, schema: TablesRelationalConfig, tableNamesMap: Record<string, string>, table: AnyMySqlTable, tableConfig: TableRelationalConfig, dialect: MySqlDialect, session: MySqlSession, config: DBQueryConfig<'many', true> | true, queryMode: 'many' | 'first', mode?: Mode | undefined);
|
|
398
180
|
prepare(): Assume<(TPreparedQueryHKT & {
|
|
399
181
|
readonly config: PreparedQueryConfig & {
|
|
400
182
|
execute: TResult;
|
|
@@ -405,11 +187,11 @@ declare class MySqlRelationalQuery<TPreparedQueryHKT extends PreparedQueryHKTBas
|
|
|
405
187
|
execute(): Promise<TResult>;
|
|
406
188
|
}
|
|
407
189
|
|
|
408
|
-
type SubqueryWithSelection<TSelection extends ColumnsSelection, TAlias extends string> = Subquery<TAlias, AddAliasToSelection<TSelection, TAlias>> & AddAliasToSelection<TSelection, TAlias>;
|
|
409
|
-
type WithSubqueryWithSelection<TSelection extends ColumnsSelection, TAlias extends string> = WithSubquery<TAlias, AddAliasToSelection<TSelection, TAlias>> & AddAliasToSelection<TSelection, TAlias>;
|
|
190
|
+
type SubqueryWithSelection<TSelection extends ColumnsSelection, TAlias extends string, TDialect extends Dialect> = Subquery<TAlias, AddAliasToSelection<TSelection, TAlias, TDialect>> & AddAliasToSelection<TSelection, TAlias, TDialect>;
|
|
191
|
+
type WithSubqueryWithSelection<TSelection extends ColumnsSelection, TAlias extends string, TDialect extends Dialect> = WithSubquery<TAlias, AddAliasToSelection<TSelection, TAlias, TDialect>> & AddAliasToSelection<TSelection, TAlias, TDialect>;
|
|
410
192
|
|
|
411
193
|
declare class MySqlDatabase<TQueryResult extends QueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase, TFullSchema extends Record<string, unknown> = {}, TSchema extends TablesRelationalConfig = ExtractTablesWithRelations<TFullSchema>> {
|
|
412
|
-
protected readonly
|
|
194
|
+
protected readonly mode: Mode;
|
|
413
195
|
static readonly [entityKind]: string;
|
|
414
196
|
readonly _: {
|
|
415
197
|
readonly schema: TSchema | undefined;
|
|
@@ -422,9 +204,9 @@ declare class MySqlDatabase<TQueryResult extends QueryResultHKT, TPreparedQueryH
|
|
|
422
204
|
/** @internal */
|
|
423
205
|
dialect: MySqlDialect,
|
|
424
206
|
/** @internal */
|
|
425
|
-
session: MySqlSession<any, any, any, any>, schema: RelationalSchemaConfig<TSchema> | undefined,
|
|
207
|
+
session: MySqlSession<any, any, any, any>, schema: RelationalSchemaConfig<TSchema> | undefined, mode: Mode);
|
|
426
208
|
$with<TAlias extends string>(alias: TAlias): {
|
|
427
|
-
as<TSelection extends ColumnsSelection>(qb: TypedQueryBuilder<TSelection, unknown> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelection, unknown>)): WithSubqueryWithSelection<TSelection, TAlias>;
|
|
209
|
+
as<TSelection extends ColumnsSelection>(qb: TypedQueryBuilder<TSelection, unknown> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelection, unknown>)): WithSubqueryWithSelection<TSelection, TAlias, "mysql">;
|
|
428
210
|
};
|
|
429
211
|
with(...queries: WithSubquery[]): {
|
|
430
212
|
select: {
|
|
@@ -449,6 +231,7 @@ declare class MySqlDatabase<TQueryResult extends QueryResultHKT, TPreparedQueryH
|
|
|
449
231
|
transaction<T>(transaction: (tx: MySqlTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema>, config?: MySqlTransactionConfig) => Promise<T>, config?: MySqlTransactionConfig): Promise<T>;
|
|
450
232
|
}
|
|
451
233
|
|
|
234
|
+
type Mode = 'default' | 'planetscale';
|
|
452
235
|
interface QueryResultHKT {
|
|
453
236
|
readonly $brand: 'MySqlQueryRowHKT';
|
|
454
237
|
readonly row: unknown;
|
|
@@ -496,7 +279,7 @@ declare abstract class MySqlTransaction<TQueryResult extends QueryResultHKT, TPr
|
|
|
496
279
|
protected schema: RelationalSchemaConfig<TSchema> | undefined;
|
|
497
280
|
protected readonly nestedIndex: number;
|
|
498
281
|
static readonly [entityKind]: string;
|
|
499
|
-
constructor(dialect: MySqlDialect, session: MySqlSession, schema: RelationalSchemaConfig<TSchema> | undefined, nestedIndex
|
|
282
|
+
constructor(dialect: MySqlDialect, session: MySqlSession, schema: RelationalSchemaConfig<TSchema> | undefined, nestedIndex: number, mode: Mode);
|
|
500
283
|
rollback(): never;
|
|
501
284
|
/** Nested transactions (aka savepoints) only work with InnoDB engine. */
|
|
502
285
|
abstract transaction<T>(transaction: (tx: MySqlTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema>) => Promise<T>): Promise<T>;
|
|
@@ -520,7 +303,10 @@ declare class MySqlDelete<TTable extends AnyMySqlTable, TQueryResult extends Que
|
|
|
520
303
|
private config;
|
|
521
304
|
constructor(table: TTable, session: MySqlSession, dialect: MySqlDialect);
|
|
522
305
|
where(where: SQL | undefined): Omit<this, 'where'>;
|
|
523
|
-
toSQL():
|
|
306
|
+
toSQL(): {
|
|
307
|
+
sql: Query['sql'];
|
|
308
|
+
params: Query['params'];
|
|
309
|
+
};
|
|
524
310
|
prepare(): Assume<(TPreparedQueryHKT & {
|
|
525
311
|
readonly config: PreparedQueryConfig & {
|
|
526
312
|
execute: QueryResultKind<TQueryResult, never>;
|
|
@@ -588,8 +374,11 @@ declare abstract class MySqlSelectQueryBuilder<THKT extends MySqlSelectHKTBase,
|
|
|
588
374
|
limit(limit: number): this;
|
|
589
375
|
offset(offset: number): this;
|
|
590
376
|
for(strength: LockStrength, config?: LockConfig): this;
|
|
591
|
-
toSQL():
|
|
592
|
-
|
|
377
|
+
toSQL(): {
|
|
378
|
+
sql: Query['sql'];
|
|
379
|
+
params: Query['params'];
|
|
380
|
+
};
|
|
381
|
+
as<TAlias extends string>(alias: TAlias): SubqueryWithSelection<BuildSubquerySelection<TSelection, TNullabilityMap>, TAlias, 'mysql'>;
|
|
593
382
|
}
|
|
594
383
|
interface MySqlSelect<TTableName extends string | undefined, TSelection extends ColumnsSelection, TSelectMode extends SelectMode, TPreparedQueryHKT extends PreparedQueryHKTBase, TNullabilityMap extends Record<string, JoinNullability> = TTableName extends string ? Record<TTableName, 'not-null'> : {}> extends MySqlSelectQueryBuilder<MySqlSelectHKT, TTableName, TSelection, TSelectMode, TNullabilityMap>, QueryPromise<SelectResult<TSelection, TSelectMode, TNullabilityMap>[]> {
|
|
595
384
|
}
|
|
@@ -613,7 +402,7 @@ declare class QueryBuilder {
|
|
|
613
402
|
static readonly [entityKind]: string;
|
|
614
403
|
private dialect;
|
|
615
404
|
$with<TAlias extends string>(alias: TAlias): {
|
|
616
|
-
as<TSelection extends ColumnsSelection>(qb: TypedQueryBuilder<TSelection, unknown> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelection, unknown>)): WithSubqueryWithSelection<TSelection, TAlias>;
|
|
405
|
+
as<TSelection extends ColumnsSelection>(qb: TypedQueryBuilder<TSelection, unknown> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelection, unknown>)): WithSubqueryWithSelection<TSelection, TAlias, "mysql">;
|
|
617
406
|
};
|
|
618
407
|
with(...queries: WithSubquery[]): {
|
|
619
408
|
select: {
|
|
@@ -660,17 +449,17 @@ declare class ViewBuilder<TName extends string = string> extends ViewBuilderCore
|
|
|
660
449
|
name: TName;
|
|
661
450
|
}> {
|
|
662
451
|
static readonly [entityKind]: string;
|
|
663
|
-
as<TSelectedFields extends SelectedFields>(qb: TypedQueryBuilder<TSelectedFields> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelectedFields>)): MySqlViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName>>;
|
|
452
|
+
as<TSelectedFields extends SelectedFields>(qb: TypedQueryBuilder<TSelectedFields> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelectedFields>)): MySqlViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'mysql'>>;
|
|
664
453
|
}
|
|
665
|
-
declare class ManualViewBuilder<TName extends string = string, TColumns extends Record<string,
|
|
454
|
+
declare class ManualViewBuilder<TName extends string = string, TColumns extends Record<string, MySqlColumnBuilder> = Record<string, MySqlColumnBuilder>> extends ViewBuilderCore<{
|
|
666
455
|
name: TName;
|
|
667
456
|
columns: TColumns;
|
|
668
457
|
}> {
|
|
669
458
|
static readonly [entityKind]: string;
|
|
670
459
|
private columns;
|
|
671
460
|
constructor(name: TName, columns: TColumns, schema: string | undefined);
|
|
672
|
-
existing(): MySqlViewWithSelection<TName, true, BuildColumns<TName, TColumns>>;
|
|
673
|
-
as(query: SQL): MySqlViewWithSelection<TName, false, BuildColumns<TName, TColumns>>;
|
|
461
|
+
existing(): MySqlViewWithSelection<TName, true, BuildColumns<TName, TColumns, 'mysql'>>;
|
|
462
|
+
as(query: SQL): MySqlViewWithSelection<TName, false, BuildColumns<TName, TColumns, 'mysql'>>;
|
|
674
463
|
}
|
|
675
464
|
declare abstract class MySqlViewBase<TName extends string = string, TExisting extends boolean = boolean, TSelectedFields extends ColumnsSelection = ColumnsSelection> extends View<TName, TExisting, TSelectedFields> {
|
|
676
465
|
static readonly [entityKind]: string;
|
|
@@ -695,7 +484,7 @@ declare class MySqlView<TName extends string = string, TExisting extends boolean
|
|
|
695
484
|
}
|
|
696
485
|
type MySqlViewWithSelection<TName extends string, TExisting extends boolean, TSelectedFields extends ColumnsSelection> = MySqlView<TName, TExisting, TSelectedFields> & TSelectedFields;
|
|
697
486
|
declare function mysqlView<TName extends string>(name: TName): ViewBuilder<TName>;
|
|
698
|
-
declare function mysqlView<TName extends string, TColumns extends Record<string,
|
|
487
|
+
declare function mysqlView<TName extends string, TColumns extends Record<string, MySqlColumnBuilder>>(name: TName, columns: TColumns): ManualViewBuilder<TName, TColumns>;
|
|
699
488
|
|
|
700
489
|
interface Join {
|
|
701
490
|
on: SQL | undefined;
|
|
@@ -705,10 +494,10 @@ interface Join {
|
|
|
705
494
|
lateral?: boolean;
|
|
706
495
|
}
|
|
707
496
|
type AnyMySqlSelect = MySqlSelect<any, any, any, any>;
|
|
708
|
-
type BuildAliasTable<TTable extends
|
|
497
|
+
type BuildAliasTable<TTable extends MySqlTable | View, TAlias extends string> = TTable extends Table ? MySqlTableWithColumns<UpdateTableConfig<TTable['_']['config'], {
|
|
709
498
|
name: TAlias;
|
|
710
|
-
columns: MapColumnsToTableAlias<TTable['_']['columns'], TAlias>;
|
|
711
|
-
}
|
|
499
|
+
columns: MapColumnsToTableAlias<TTable['_']['columns'], TAlias, 'mysql'>;
|
|
500
|
+
}>> : TTable extends View ? MySqlViewWithSelection<TAlias, TTable['_']['existing'], MapColumnsToTableAlias<TTable['_']['selectedFields'], TAlias, 'mysql'>> : never;
|
|
712
501
|
interface MySqlSelectConfig {
|
|
713
502
|
withList?: Subquery[];
|
|
714
503
|
fields: Record<string, unknown>;
|
|
@@ -763,4 +552,4 @@ interface MySqlSelectHKT extends MySqlSelectHKTBase {
|
|
|
763
552
|
_type: MySqlSelect<this['tableName'], Assume<this['selection'], ColumnsSelection>, this['selectMode'], Assume<this['preparedQueryHKT'], PreparedQueryHKTBase>, Assume<this['nullabilityMap'], Record<string, JoinNullability>>>;
|
|
764
553
|
}
|
|
765
554
|
|
|
766
|
-
export {
|
|
555
|
+
export { AnyMySqlInsertConfig as A, BuildAliasTable as B, MySqlUpdate as C, Mode as D, QueryResultHKT as E, QueryResultKind as F, PreparedQueryHKT as G, PreparedQueryKind as H, PreparedQuery as I, Join as J, MySqlTransactionConfig as K, LockStrength as L, MySqlViewBase as M, MySqlSession as N, MySqlTransaction as O, PreparedQueryConfig as P, QueryBuilder as Q, PreparedQueryHKTBase as R, SelectedFieldsFlat as S, SubqueryWithSelection as T, ViewBuilderCore as U, ViewBuilderConfig as V, WithSubqueryWithSelection as W, ViewBuilder as X, ManualViewBuilder as Y, MySqlViewConfig as Z, MySqlViewWithSelection as _, MySqlView as a, MySqlDatabase as b, MySqlDialect as c, MySqlDeleteConfig as d, MySqlDelete as e, MySqlInsertConfig as f, MySqlInsertValue as g, MySqlInsertBuilder as h, MySqlInsert as i, MySqlSelectBuilder as j, MySqlSelectQueryBuilder as k, MySqlSelect as l, mysqlView as m, AnyMySqlSelect as n, MySqlSelectConfig as o, JoinFn as p, SelectedFields as q, SelectedFieldsOrdered as r, LockConfig as s, MySqlSelectHKTBase as t, MySqlSelectKind as u, MySqlSelectQueryBuilderHKT as v, MySqlSelectHKT as w, MySqlUpdateConfig as x, MySqlUpdateSetSource as y, MySqlUpdateBuilder as z };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { X as SQLWrapper, e as entityKind, a as SQL, an as AnyTable, d as Column, A as AnyColumn, aJ as ColumnsSelection, h as Dialect, p as ChangeColumnTableName, av as Assume, S as Simplify, aH as IsAny, E as SelectedFields, T as Table, ax as DrizzleTypeError, ah as Subquery, V as View, aw as Equal, G as GetColumnData, U as UpdateColConfig } from './column.d-9d2f4045.js';
|
|
2
2
|
|
|
3
3
|
declare abstract class TypedQueryBuilder<TSelection, TResult = unknown> implements SQLWrapper {
|
|
4
4
|
static readonly [entityKind]: string;
|
|
@@ -12,31 +12,31 @@ declare abstract class TypedQueryBuilder<TSelection, TResult = unknown> implemen
|
|
|
12
12
|
type JoinType = 'inner' | 'left' | 'right' | 'full';
|
|
13
13
|
type JoinNullability = 'nullable' | 'not-null';
|
|
14
14
|
type ApplyNullability<T, TNullability extends JoinNullability> = TNullability extends 'nullable' ? T | null : TNullability extends 'null' ? null : T;
|
|
15
|
-
type ApplyNullabilityToColumn<TColumn extends
|
|
15
|
+
type ApplyNullabilityToColumn<TColumn extends Column, TNullability extends JoinNullability> = TNullability extends 'not-null' ? TColumn : Column<UpdateColConfig<TColumn['_'], {
|
|
16
16
|
notNull: TNullability extends 'nullable' ? false : TColumn['_']['notNull'];
|
|
17
17
|
}>>;
|
|
18
|
-
type ApplyNotNullMapToJoins<TResult, TNullabilityMap extends Record<string, JoinNullability>> =
|
|
18
|
+
type ApplyNotNullMapToJoins<TResult, TNullabilityMap extends Record<string, JoinNullability>> = {
|
|
19
19
|
[TTableName in keyof TResult & keyof TNullabilityMap & string]: ApplyNullability<TResult[TTableName], TNullabilityMap[TTableName]>;
|
|
20
|
-
}
|
|
20
|
+
} & {};
|
|
21
21
|
type SelectMode = 'partial' | 'single' | 'multiple';
|
|
22
22
|
type SelectResult<TResult, TSelectMode extends SelectMode, TNullabilityMap extends Record<string, JoinNullability>> = TSelectMode extends 'partial' ? SelectPartialResult<TResult, TNullabilityMap> : TSelectMode extends 'single' ? SelectResultFields<TResult> : ApplyNotNullMapToJoins<SelectResultFields<TResult>, TNullabilityMap>;
|
|
23
23
|
type IsUnion<T, U extends T = T> = (T extends any ? (U extends T ? false : true) : never) extends false ? false : true;
|
|
24
24
|
type Not<T extends boolean> = T extends true ? false : true;
|
|
25
25
|
type SelectPartialResult<TFields, TNullability extends Record<string, JoinNullability>> = TNullability extends TNullability ? {
|
|
26
|
-
[Key in keyof TFields]: TFields[Key] extends infer TField ? TField extends AnyTable ? TField['_']['name'] extends keyof TNullability ? ApplyNullability<SelectResultFields<TField['_']['columns']>, TNullability[TField['_']['name']]> : never : TField extends
|
|
26
|
+
[Key in keyof TFields]: TFields[Key] extends infer TField ? TField extends AnyTable ? TField['_']['name'] extends keyof TNullability ? ApplyNullability<SelectResultFields<TField['_']['columns']>, TNullability[TField['_']['name']]> : never : TField extends Column ? TField['_']['tableName'] extends keyof TNullability ? ApplyNullability<SelectResultField<TField>, TNullability[TField['_']['tableName']]> : never : TField extends SQL | SQL.Aliased ? SelectResultField<TField> : TField extends Record<string, any> ? TField[keyof TField] extends AnyColumn<{
|
|
27
27
|
tableName: infer TTableName extends string;
|
|
28
28
|
}> | SQL | SQL.Aliased ? Not<IsUnion<TTableName>> extends true ? ApplyNullability<SelectResultFields<TField>, TNullability[TTableName]> : SelectPartialResult<TField, TNullability> : never : never : never;
|
|
29
29
|
} : never;
|
|
30
|
-
type MapColumnsToTableAlias<TColumns extends ColumnsSelection, TAlias extends string> =
|
|
31
|
-
[Key in keyof TColumns]: TColumns[Key] extends
|
|
32
|
-
}
|
|
33
|
-
type AddAliasToSelection<TSelection extends ColumnsSelection, TAlias extends string> =
|
|
34
|
-
[Key in keyof TSelection]: TSelection[Key] extends
|
|
35
|
-
}>;
|
|
36
|
-
type AppendToResult<TTableName extends string | undefined, TResult, TJoinedName extends string | undefined, TSelectedFields extends SelectedFields<AnyColumn, Table>, TOldSelectMode extends SelectMode> = TOldSelectMode extends 'partial' ? TResult : TOldSelectMode extends 'single' ? (TTableName extends string ? Record<TTableName, TResult> : TResult) & (TJoinedName extends string ? Record<TJoinedName, TSelectedFields> : TSelectedFields) : TResult & (TJoinedName extends string ? Record<TJoinedName, TSelectedFields> : TSelectedFields);
|
|
37
|
-
type BuildSubquerySelection<TSelection extends ColumnsSelection, TNullability extends Record<string, JoinNullability>> = TSelection extends never ? any : SimplifyShallow<{
|
|
38
|
-
[Key in keyof TSelection]: TSelection[Key] extends SQL ? DrizzleTypeError<'You cannot reference this field without assigning it an alias first - use `.as(<alias>)`'> : TSelection[Key] extends SQL.Aliased ? TSelection[Key] : TSelection[Key] extends AnyColumn ? ApplyNullabilityToColumn<TSelection[Key], TNullability[TSelection[Key]['_']['tableName']]> : TSelection[Key] extends ColumnsSelection ? BuildSubquerySelection<TSelection[Key], TNullability> : never;
|
|
30
|
+
type MapColumnsToTableAlias<TColumns extends ColumnsSelection, TAlias extends string, TDialect extends Dialect> = {
|
|
31
|
+
[Key in keyof TColumns]: TColumns[Key] extends Column ? ChangeColumnTableName<Assume<TColumns[Key], Column>, TAlias, TDialect> : TColumns[Key];
|
|
32
|
+
} & {};
|
|
33
|
+
type AddAliasToSelection<TSelection extends ColumnsSelection, TAlias extends string, TDialect extends Dialect> = Simplify<IsAny<TSelection> extends true ? any : {
|
|
34
|
+
[Key in keyof TSelection]: TSelection[Key] extends Column ? ChangeColumnTableName<TSelection[Key], TAlias, TDialect> : TSelection[Key] extends SQL | SQL.Aliased ? TSelection[Key] : TSelection[Key] extends ColumnsSelection ? MapColumnsToTableAlias<TSelection[Key], TAlias, TDialect> : never;
|
|
39
35
|
}>;
|
|
36
|
+
type AppendToResult<TTableName extends string | undefined, TResult, TJoinedName extends string | undefined, TSelectedFields extends SelectedFields<Column, Table>, TOldSelectMode extends SelectMode> = TOldSelectMode extends 'partial' ? TResult : TOldSelectMode extends 'single' ? (TTableName extends string ? Record<TTableName, TResult> : TResult) & (TJoinedName extends string ? Record<TJoinedName, TSelectedFields> : TSelectedFields) : TResult & (TJoinedName extends string ? Record<TJoinedName, TSelectedFields> : TSelectedFields);
|
|
37
|
+
type BuildSubquerySelection<TSelection extends ColumnsSelection, TNullability extends Record<string, JoinNullability>> = TSelection extends never ? any : {
|
|
38
|
+
[Key in keyof TSelection]: TSelection[Key] extends SQL ? DrizzleTypeError<'You cannot reference this field without assigning it an alias first - use `.as(<alias>)`'> : TSelection[Key] extends SQL.Aliased ? TSelection[Key] : TSelection[Key] extends Column ? ApplyNullabilityToColumn<TSelection[Key], TNullability[TSelection[Key]['_']['tableName']]> : TSelection[Key] extends ColumnsSelection ? BuildSubquerySelection<TSelection[Key], TNullability> : never;
|
|
39
|
+
} & {};
|
|
40
40
|
type SetJoinsNullability<TNullabilityMap extends Record<string, JoinNullability>, TValue extends JoinNullability> = {
|
|
41
41
|
[Key in keyof TNullabilityMap]: TValue;
|
|
42
42
|
};
|
|
@@ -49,11 +49,12 @@ type AppendToNullabilityMap<TJoinsNotNull extends Record<string, JoinNullability
|
|
|
49
49
|
} : 'full' extends TJoinType ? SetJoinsNullability<TJoinsNotNull, 'nullable'> & {
|
|
50
50
|
[name in TJoinedName]: 'nullable';
|
|
51
51
|
} : never : TJoinsNotNull;
|
|
52
|
-
type
|
|
53
|
-
type
|
|
54
|
-
type
|
|
55
|
-
type
|
|
52
|
+
type TableLike = Table | Subquery | View | SQL;
|
|
53
|
+
type GetSelectTableName<TTable extends TableLike> = TTable extends Table ? TTable['_']['name'] : TTable extends Subquery ? TTable['_']['alias'] : TTable extends View ? TTable['_']['name'] : TTable extends SQL ? undefined : never;
|
|
54
|
+
type GetSelectTableSelection<TTable extends TableLike> = TTable extends Table ? TTable['_']['columns'] : TTable extends Subquery | View ? Assume<TTable['_']['selectedFields'], ColumnsSelection> : TTable extends SQL ? {} : never;
|
|
55
|
+
type SelectResultField<T, TDeep extends boolean = true> = T extends DrizzleTypeError<any> ? T : T extends Table ? Equal<TDeep, true> extends true ? SelectResultField<T['_']['columns'], false> : never : T extends Column ? GetColumnData<T> : T extends SQL | SQL.Aliased ? T['_']['type'] : T extends Record<string, any> ? SelectResultFields<T, true> : never;
|
|
56
|
+
type SelectResultFields<TSelectedFields, TDeep extends boolean = true> = {
|
|
56
57
|
[Key in keyof TSelectedFields & string]: SelectResultField<TSelectedFields[Key], TDeep>;
|
|
57
|
-
}
|
|
58
|
+
} & {};
|
|
58
59
|
|
|
59
60
|
export { AddAliasToSelection as A, BuildSubquerySelection as B, GetSelectTableName as G, JoinNullability as J, MapColumnsToTableAlias as M, SelectMode as S, TypedQueryBuilder as T, GetSelectTableSelection as a, SelectResult as b, JoinType as c, AppendToResult as d, AppendToNullabilityMap as e, SelectResultFields as f };
|