orchid-orm 1.6.39 → 1.7.0
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/dist/index.d.ts +57 -54
- package/dist/index.js +78 -86
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +63 -63
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -6
- package/dist/bin.js +0 -515
- package/dist/bin.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as pqb from 'pqb';
|
|
2
|
-
import { BelongsToRelation, HasManyRelation, HasOneRelation, Db, Adapter, FromArgs, Query, FromResult, AdapterOptions, QueryLogOptions, NoPrimaryKeyOption, HasAndBelongsToManyRelation, SetQueryTableAlias, defaultsKey, BaseRelation, RelationQuery, SetQueryReturnsOne, SetQueryReturnsOneOptional, SetQueryReturnsAll, DefaultColumnTypes, ColumnsShape, WhereResult, MergeQuery, SetQueryReturns, QueryReturnType } from 'pqb';
|
|
2
|
+
import { BelongsToRelation, HasManyRelation, HasOneRelation, Db, IsolationLevel, TransactionOptions, Adapter, FromArgs, Query, FromResult, AdapterOptions, QueryLogOptions, NoPrimaryKeyOption, HasAndBelongsToManyRelation, SetQueryTableAlias, defaultsKey, BaseRelation, RelationQuery, SetQueryReturnsOne, SetQueryReturnsOneOptional, SetQueryReturnsAll, DefaultColumnTypes, ColumnsShape, WhereResult, MergeQuery, SetQueryReturns, QueryReturnType } from 'pqb';
|
|
3
3
|
export { OrchidOrmError, OrchidOrmInternalError, columnTypes } from 'pqb';
|
|
4
4
|
import * as orchid_core from 'orchid-core';
|
|
5
5
|
import { StringKey, EmptyObject, ColumnTypesBase, ColumnShapeOutput, SetOptional } from 'orchid-core';
|
|
@@ -10,7 +10,7 @@ interface BelongsTo extends RelationThunkBase {
|
|
|
10
10
|
returns: 'one';
|
|
11
11
|
options: BelongsToRelation['options'];
|
|
12
12
|
}
|
|
13
|
-
|
|
13
|
+
type BelongsToInfo<T extends Table, Relation extends BelongsTo, FK extends string = Relation['options']['foreignKey']> = {
|
|
14
14
|
params: Record<FK, T['columns']['shape'][FK]['type']>;
|
|
15
15
|
populate: never;
|
|
16
16
|
chainedCreate: false;
|
|
@@ -22,7 +22,7 @@ interface HasMany extends RelationThunkBase {
|
|
|
22
22
|
returns: 'many';
|
|
23
23
|
options: HasManyRelation['options'];
|
|
24
24
|
}
|
|
25
|
-
|
|
25
|
+
type HasManyInfo<T extends Table, Relations extends RelationThunks, Relation extends HasMany> = {
|
|
26
26
|
params: Relation['options'] extends {
|
|
27
27
|
primaryKey: string;
|
|
28
28
|
} ? Record<Relation['options']['primaryKey'], T['columns']['shape'][Relation['options']['primaryKey']]['type']> : Relation['options'] extends {
|
|
@@ -42,7 +42,7 @@ interface HasOne extends RelationThunkBase {
|
|
|
42
42
|
returns: 'one';
|
|
43
43
|
options: HasOneRelation['options'];
|
|
44
44
|
}
|
|
45
|
-
|
|
45
|
+
type HasOneInfo<T extends Table, Relations extends RelationThunks, Relation extends HasOne> = {
|
|
46
46
|
params: Relation['options'] extends {
|
|
47
47
|
primaryKey: string;
|
|
48
48
|
} ? Record<Relation['options']['primaryKey'], T['columns']['shape'][Relation['options']['primaryKey']]['type']> : Relation['options'] extends {
|
|
@@ -59,9 +59,12 @@ declare type HasOneInfo<T extends Table, Relations extends RelationThunks, Relat
|
|
|
59
59
|
|
|
60
60
|
declare function transaction<T extends {
|
|
61
61
|
$queryBuilder: Db;
|
|
62
|
-
}, Result>(this: T, fn: (
|
|
62
|
+
}, Result>(this: T, fn: () => Promise<Result>): Promise<Result>;
|
|
63
|
+
declare function transaction<T extends {
|
|
64
|
+
$queryBuilder: Db;
|
|
65
|
+
}, Result>(this: T, options: IsolationLevel | TransactionOptions, fn: () => Promise<Result>): Promise<Result>;
|
|
63
66
|
|
|
64
|
-
|
|
67
|
+
type OrchidORM<T extends TableClasses> = {
|
|
65
68
|
[K in keyof T]: DbTable<T[K]>;
|
|
66
69
|
} & {
|
|
67
70
|
$transaction: typeof transaction;
|
|
@@ -82,7 +85,7 @@ interface HasAndBelongsToMany extends RelationThunkBase {
|
|
|
82
85
|
returns: 'many';
|
|
83
86
|
options: HasAndBelongsToManyRelation['options'];
|
|
84
87
|
}
|
|
85
|
-
|
|
88
|
+
type HasAndBelongsToManyInfo<T extends Table, Relation extends HasAndBelongsToMany> = {
|
|
86
89
|
params: Record<Relation['options']['primaryKey'], T['columns']['shape'][Relation['options']['primaryKey']]['type']>;
|
|
87
90
|
populate: never;
|
|
88
91
|
chainedCreate: true;
|
|
@@ -95,9 +98,9 @@ interface RelationThunkBase {
|
|
|
95
98
|
fn(): TableClass;
|
|
96
99
|
options: BaseRelation['options'];
|
|
97
100
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
+
type RelationThunk = BelongsTo | HasOne | HasMany | HasAndBelongsToMany;
|
|
102
|
+
type RelationThunks = Record<string, RelationThunk>;
|
|
103
|
+
type Relation<T extends Table, Relations extends RelationThunks, K extends StringKey<keyof Relations>, M extends Query = SetQueryTableAlias<DbTable<ReturnType<Relations[K]['fn']>>, K>, Info extends RelationInfo = RelationInfo<T, Relations, Relations[K]>> = {
|
|
101
104
|
type: Relations[K]['type'];
|
|
102
105
|
returns: Relations[K]['returns'];
|
|
103
106
|
key: K;
|
|
@@ -111,33 +114,33 @@ declare type Relation<T extends Table, Relations extends RelationThunks, K exten
|
|
|
111
114
|
primaryKey: string;
|
|
112
115
|
options: Relations[K]['options'];
|
|
113
116
|
};
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
+
type RelationScopeOrTable<Relation extends RelationThunkBase> = Relation['options']['scope'] extends (q: Query) => Query ? ReturnType<Relation['options']['scope']> : DbTable<ReturnType<Relation['fn']>>;
|
|
118
|
+
type RelationInfo<T extends Table = Table, Relations extends RelationThunks = RelationThunks, Relation extends RelationThunk = RelationThunk> = Relation extends BelongsTo ? BelongsToInfo<T, Relation> : Relation extends HasOne ? HasOneInfo<T, Relations, Relation> : Relation extends HasMany ? HasManyInfo<T, Relations, Relation> : Relation extends HasAndBelongsToMany ? HasAndBelongsToManyInfo<T, Relation> : never;
|
|
119
|
+
type MapRelation<T extends Table, Relations extends RelationThunks, RelationName extends keyof Relations, Relation extends RelationThunk = Relations[RelationName], RelatedQuery extends Query = RelationScopeOrTable<Relation>, Info extends {
|
|
117
120
|
params: Record<string, unknown>;
|
|
118
121
|
populate: string;
|
|
119
122
|
chainedCreate: boolean;
|
|
120
123
|
chainedDelete: boolean;
|
|
121
124
|
} = RelationInfo<T, Relations, Relation>> = RelationQuery<RelationName, Info['params'], Info['populate'], Relation['returns'] extends 'one' ? Relation['options']['required'] extends true ? SetQueryReturnsOne<RelatedQuery> : SetQueryReturnsOneOptional<RelatedQuery> : SetQueryReturnsAll<RelatedQuery>, Relation['options']['required'] extends boolean ? Relation['options']['required'] : false, Info['chainedCreate'], Info['chainedDelete']>;
|
|
122
|
-
|
|
125
|
+
type MapRelations<T extends Table> = 'relations' extends keyof T ? T['relations'] extends RelationThunks ? {
|
|
123
126
|
[K in keyof T['relations']]: MapRelation<T, T['relations'], K>;
|
|
124
127
|
} : EmptyObject : EmptyObject;
|
|
125
128
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
+
type TableClass<T extends Table = Table> = new () => T;
|
|
130
|
+
type TableClasses = Record<string, TableClass>;
|
|
131
|
+
type TableToDb<T extends Table> = Db<T['table'], T['columns']['shape'], 'relations' extends keyof T ? T['relations'] extends RelationThunks ? {
|
|
129
132
|
[K in StringKey<keyof T['relations']>]: Relation<T, T['relations'], K>;
|
|
130
133
|
} : Query['relations'] : Query['relations'], T['columnTypes']> & {
|
|
131
134
|
definedAs: string;
|
|
132
135
|
db: OrchidORM<TableClasses>;
|
|
133
136
|
};
|
|
134
|
-
|
|
135
|
-
|
|
137
|
+
type DbTable<T extends TableClass> = TableToDb<InstanceType<T>> & Omit<MapRelations<InstanceType<T>>, keyof Query>;
|
|
138
|
+
type TableConfig = {
|
|
136
139
|
shape: ColumnsShape;
|
|
137
140
|
type: unknown;
|
|
138
141
|
};
|
|
139
|
-
|
|
140
|
-
|
|
142
|
+
type ScopeFn<Related extends TableClass, Scope extends Query> = (q: DbTable<Related>) => Scope;
|
|
143
|
+
type Table = {
|
|
141
144
|
table: string;
|
|
142
145
|
columns: TableConfig;
|
|
143
146
|
schema?: string;
|
|
@@ -159,8 +162,8 @@ declare const createBaseTable: <CT extends ColumnTypesBase>({ columnTypes, snake
|
|
|
159
162
|
};
|
|
160
163
|
timestamp(): T;
|
|
161
164
|
}) => {
|
|
162
|
-
createdAt: orchid_core.ColumnWithDefault<T, orchid_core.RawExpression
|
|
163
|
-
updatedAt: orchid_core.ColumnWithDefault<T, orchid_core.RawExpression
|
|
165
|
+
createdAt: orchid_core.ColumnWithDefault<T, orchid_core.RawExpression>;
|
|
166
|
+
updatedAt: orchid_core.ColumnWithDefault<T, orchid_core.RawExpression>;
|
|
164
167
|
};
|
|
165
168
|
timestampsSnakeCase: <T_1 extends orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>(this: {
|
|
166
169
|
name(name: string): {
|
|
@@ -168,8 +171,8 @@ declare const createBaseTable: <CT extends ColumnTypesBase>({ columnTypes, snake
|
|
|
168
171
|
};
|
|
169
172
|
timestamp(): T_1;
|
|
170
173
|
}) => {
|
|
171
|
-
createdAt: orchid_core.ColumnWithDefault<T_1, orchid_core.RawExpression
|
|
172
|
-
updatedAt: orchid_core.ColumnWithDefault<T_1, orchid_core.RawExpression
|
|
174
|
+
createdAt: orchid_core.ColumnWithDefault<T_1, orchid_core.RawExpression>;
|
|
175
|
+
updatedAt: orchid_core.ColumnWithDefault<T_1, orchid_core.RawExpression>;
|
|
173
176
|
};
|
|
174
177
|
name: typeof orchid_core.name;
|
|
175
178
|
raw: (sql: string, values?: false | Record<string, unknown> | undefined) => orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>;
|
|
@@ -240,12 +243,12 @@ declare const createBaseTable: <CT extends ColumnTypesBase>({ columnTypes, snake
|
|
|
240
243
|
nativeEnum: <T_9 extends orchid_core.EnumLike>(givenEnum: T_9) => orchid_core.JSONNativeEnum<T_9>;
|
|
241
244
|
nullable: <T_10 extends orchid_core.JSONTypeAny>(type: T_10) => orchid_core.JSONNullable<T_10>;
|
|
242
245
|
nullish: <T_11 extends orchid_core.JSONTypeAny>(type: T_11) => orchid_core.JSONNullish<T_11>;
|
|
243
|
-
object: <T_12 extends orchid_core.JSONObjectShape, UnknownKeys extends orchid_core.UnknownKeysParam = "strip", Catchall extends orchid_core.JSONTypeAny = orchid_core.JSONTypeAny>(shape: T_12) => orchid_core.JSONObject<T_12, UnknownKeys, Catchall, orchid_core.JSONTypeAny extends Catchall ? orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer T_13 extends object ? { [k in keyof T_13]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }>[k]; } : never : (orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer
|
|
246
|
+
object: <T_12 extends orchid_core.JSONObjectShape, UnknownKeys extends orchid_core.UnknownKeysParam = "strip", Catchall extends orchid_core.JSONTypeAny = orchid_core.JSONTypeAny>(shape: T_12) => orchid_core.JSONObject<T_12, UnknownKeys, Catchall, orchid_core.JSONTypeAny extends Catchall ? orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer T_13 extends object ? { [k in keyof T_13]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }>[k]; } : never : (orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer T_16 extends object ? { [k in keyof T_16]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }>[k]; } : never) & {
|
|
244
247
|
[k: string]: Catchall["type"];
|
|
245
|
-
} extends infer T_14 extends object ? { [k_2 in keyof T_14]: ((orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer
|
|
248
|
+
} extends infer T_14 extends object ? { [k_2 in keyof T_14]: ((orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer T_15 extends object ? { [k in keyof T_15]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }>[k]; } : never) & {
|
|
246
249
|
[k: string]: Catchall["type"];
|
|
247
250
|
})[k_2]; } : never>;
|
|
248
|
-
optional: <
|
|
251
|
+
optional: <T_17 extends orchid_core.JSONTypeAny>(type: T_17) => orchid_core.JSONOptional<T_17>;
|
|
249
252
|
record: typeof orchid_core.record;
|
|
250
253
|
}) => Type)): pqb.JSONColumn<Type>;
|
|
251
254
|
jsonText(this: ColumnTypesBase): pqb.JSONTextColumn;
|
|
@@ -257,29 +260,29 @@ declare const createBaseTable: <CT extends ColumnTypesBase>({ columnTypes, snake
|
|
|
257
260
|
} | undefined): {};
|
|
258
261
|
index(columns: orchid_core.MaybeArray<string | pqb.IndexColumnOptions>, options?: pqb.IndexOptions): {};
|
|
259
262
|
unique(columns: orchid_core.MaybeArray<string | pqb.IndexColumnOptions>, options?: pqb.IndexOptions): {};
|
|
260
|
-
constraint<Table_1 extends string | (() => pqb.ForeignKeyTable), Columns extends Table_1 extends () => pqb.ForeignKeyTable ? [
|
|
263
|
+
constraint<Table_1 extends string | (() => pqb.ForeignKeyTable), Columns extends Table_1 extends () => pqb.ForeignKeyTable ? [pqb.ColumnNameOfTable<ReturnType<Table_1>>, ...pqb.ColumnNameOfTable<ReturnType<Table_1>>[]] : [string, ...string[]]>({ name, references, check, dropMode, }: {
|
|
261
264
|
name?: string | undefined;
|
|
262
265
|
references?: [columns: string[], fnOrTable: Table_1, foreignColumns: Columns, options?: pqb.ForeignKeyOptions | undefined] | undefined;
|
|
263
|
-
check?: orchid_core.RawExpression
|
|
266
|
+
check?: orchid_core.RawExpression | undefined;
|
|
264
267
|
dropMode?: pqb.DropMode | undefined;
|
|
265
268
|
}): {};
|
|
266
|
-
foreignKey<Table_2 extends string | (() => pqb.ForeignKeyTable), Columns_1 extends Table_2 extends () => pqb.ForeignKeyTable ? [
|
|
269
|
+
foreignKey<Table_2 extends string | (() => pqb.ForeignKeyTable), Columns_1 extends Table_2 extends () => pqb.ForeignKeyTable ? [pqb.ColumnNameOfTable<ReturnType<Table_2>>, ...pqb.ColumnNameOfTable<ReturnType<Table_2>>[]] : [string, ...string[]]>(columns: string[], fnOrTable: Table_2, foreignColumns: Columns_1, options?: (pqb.ForeignKeyOptions & {
|
|
267
270
|
name?: string | undefined;
|
|
268
271
|
dropMode?: pqb.DropMode | undefined;
|
|
269
272
|
}) | undefined): {};
|
|
270
|
-
check(check: orchid_core.RawExpression
|
|
273
|
+
check(check: orchid_core.RawExpression): {};
|
|
271
274
|
} : CT;
|
|
272
275
|
noPrimaryKey?: boolean | undefined;
|
|
273
276
|
snakeCase: boolean | undefined;
|
|
274
|
-
setColumns: <
|
|
277
|
+
setColumns: <T_18 extends ColumnsShape>(fn: (t: ColumnTypesBase extends CT ? {
|
|
275
278
|
timestamps: <T extends orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>(this: {
|
|
276
279
|
name(name: string): {
|
|
277
280
|
timestamp(): T;
|
|
278
281
|
};
|
|
279
282
|
timestamp(): T;
|
|
280
283
|
}) => {
|
|
281
|
-
createdAt: orchid_core.ColumnWithDefault<T, orchid_core.RawExpression
|
|
282
|
-
updatedAt: orchid_core.ColumnWithDefault<T, orchid_core.RawExpression
|
|
284
|
+
createdAt: orchid_core.ColumnWithDefault<T, orchid_core.RawExpression>;
|
|
285
|
+
updatedAt: orchid_core.ColumnWithDefault<T, orchid_core.RawExpression>;
|
|
283
286
|
};
|
|
284
287
|
timestampsSnakeCase: <T_1 extends orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>(this: {
|
|
285
288
|
name(name: string): {
|
|
@@ -287,8 +290,8 @@ declare const createBaseTable: <CT extends ColumnTypesBase>({ columnTypes, snake
|
|
|
287
290
|
};
|
|
288
291
|
timestamp(): T_1;
|
|
289
292
|
}) => {
|
|
290
|
-
createdAt: orchid_core.ColumnWithDefault<T_1, orchid_core.RawExpression
|
|
291
|
-
updatedAt: orchid_core.ColumnWithDefault<T_1, orchid_core.RawExpression
|
|
293
|
+
createdAt: orchid_core.ColumnWithDefault<T_1, orchid_core.RawExpression>;
|
|
294
|
+
updatedAt: orchid_core.ColumnWithDefault<T_1, orchid_core.RawExpression>;
|
|
292
295
|
};
|
|
293
296
|
name: typeof orchid_core.name;
|
|
294
297
|
raw: (sql: string, values?: false | Record<string, unknown> | undefined) => orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>;
|
|
@@ -359,12 +362,12 @@ declare const createBaseTable: <CT extends ColumnTypesBase>({ columnTypes, snake
|
|
|
359
362
|
nativeEnum: <T_9 extends orchid_core.EnumLike>(givenEnum: T_9) => orchid_core.JSONNativeEnum<T_9>;
|
|
360
363
|
nullable: <T_10 extends orchid_core.JSONTypeAny>(type: T_10) => orchid_core.JSONNullable<T_10>;
|
|
361
364
|
nullish: <T_11 extends orchid_core.JSONTypeAny>(type: T_11) => orchid_core.JSONNullish<T_11>;
|
|
362
|
-
object: <T_12 extends orchid_core.JSONObjectShape, UnknownKeys extends orchid_core.UnknownKeysParam = "strip", Catchall extends orchid_core.JSONTypeAny = orchid_core.JSONTypeAny>(shape: T_12) => orchid_core.JSONObject<T_12, UnknownKeys, Catchall, orchid_core.JSONTypeAny extends Catchall ? orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer
|
|
365
|
+
object: <T_12 extends orchid_core.JSONObjectShape, UnknownKeys extends orchid_core.UnknownKeysParam = "strip", Catchall extends orchid_core.JSONTypeAny = orchid_core.JSONTypeAny>(shape: T_12) => orchid_core.JSONObject<T_12, UnknownKeys, Catchall, orchid_core.JSONTypeAny extends Catchall ? orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer T_19 extends object ? { [k in keyof T_19]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }>[k]; } : never : (orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer T_22 extends object ? { [k in keyof T_22]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }>[k]; } : never) & {
|
|
363
366
|
[k: string]: Catchall["type"];
|
|
364
|
-
} extends infer
|
|
367
|
+
} extends infer T_20 extends object ? { [k_2 in keyof T_20]: ((orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer T_21 extends object ? { [k in keyof T_21]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }>[k]; } : never) & {
|
|
365
368
|
[k: string]: Catchall["type"];
|
|
366
369
|
})[k_2]; } : never>;
|
|
367
|
-
optional: <
|
|
370
|
+
optional: <T_17 extends orchid_core.JSONTypeAny>(type: T_17) => orchid_core.JSONOptional<T_17>;
|
|
368
371
|
record: typeof orchid_core.record;
|
|
369
372
|
}) => Type)): pqb.JSONColumn<Type>;
|
|
370
373
|
jsonText(this: ColumnTypesBase): pqb.JSONTextColumn;
|
|
@@ -376,20 +379,20 @@ declare const createBaseTable: <CT extends ColumnTypesBase>({ columnTypes, snake
|
|
|
376
379
|
} | undefined): {};
|
|
377
380
|
index(columns: orchid_core.MaybeArray<string | pqb.IndexColumnOptions>, options?: pqb.IndexOptions): {};
|
|
378
381
|
unique(columns: orchid_core.MaybeArray<string | pqb.IndexColumnOptions>, options?: pqb.IndexOptions): {};
|
|
379
|
-
constraint<Table_1 extends string | (() => pqb.ForeignKeyTable), Columns extends Table_1 extends () => pqb.ForeignKeyTable ? [
|
|
382
|
+
constraint<Table_1 extends string | (() => pqb.ForeignKeyTable), Columns extends Table_1 extends () => pqb.ForeignKeyTable ? [pqb.ColumnNameOfTable<ReturnType<Table_1>>, ...pqb.ColumnNameOfTable<ReturnType<Table_1>>[]] : [string, ...string[]]>({ name, references, check, dropMode, }: {
|
|
380
383
|
name?: string | undefined;
|
|
381
384
|
references?: [columns: string[], fnOrTable: Table_1, foreignColumns: Columns, options?: pqb.ForeignKeyOptions | undefined] | undefined;
|
|
382
|
-
check?: orchid_core.RawExpression
|
|
385
|
+
check?: orchid_core.RawExpression | undefined;
|
|
383
386
|
dropMode?: pqb.DropMode | undefined;
|
|
384
387
|
}): {};
|
|
385
|
-
foreignKey<Table_2 extends string | (() => pqb.ForeignKeyTable), Columns_1 extends Table_2 extends () => pqb.ForeignKeyTable ? [
|
|
388
|
+
foreignKey<Table_2 extends string | (() => pqb.ForeignKeyTable), Columns_1 extends Table_2 extends () => pqb.ForeignKeyTable ? [pqb.ColumnNameOfTable<ReturnType<Table_2>>, ...pqb.ColumnNameOfTable<ReturnType<Table_2>>[]] : [string, ...string[]]>(columns: string[], fnOrTable: Table_2, foreignColumns: Columns_1, options?: (pqb.ForeignKeyOptions & {
|
|
386
389
|
name?: string | undefined;
|
|
387
390
|
dropMode?: pqb.DropMode | undefined;
|
|
388
391
|
}) | undefined): {};
|
|
389
|
-
check(check: orchid_core.RawExpression
|
|
390
|
-
} : CT) =>
|
|
391
|
-
shape:
|
|
392
|
-
type: ColumnShapeOutput<
|
|
392
|
+
check(check: orchid_core.RawExpression): {};
|
|
393
|
+
} : CT) => T_18) => {
|
|
394
|
+
shape: T_18;
|
|
395
|
+
type: ColumnShapeOutput<T_18>;
|
|
393
396
|
};
|
|
394
397
|
belongsTo<Self extends any, Related extends TableClass<Table>, Scope extends Query, Options extends {
|
|
395
398
|
primaryKey: keyof InstanceType<Related>["columns"]["shape"];
|
|
@@ -449,20 +452,20 @@ declare const createBaseTable: <CT extends ColumnTypesBase>({ columnTypes, snake
|
|
|
449
452
|
};
|
|
450
453
|
};
|
|
451
454
|
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
+
type QueryMethods<T extends Query> = Record<string, (q: T, ...args: any[]) => any>;
|
|
456
|
+
type QueryOne<T extends Query> = SetQueryReturns<T, Exclude<QueryReturnType, 'all'>>;
|
|
457
|
+
type MethodsBase<T extends Query> = {
|
|
455
458
|
queryMethods?: QueryMethods<T>;
|
|
456
459
|
queryOneMethods?: QueryMethods<QueryOne<T>>;
|
|
457
460
|
queryWithWhereMethods?: QueryMethods<WhereResult<T>>;
|
|
458
461
|
queryOneWithWhereMethods?: QueryMethods<QueryOne<WhereResult<T>>>;
|
|
459
462
|
methods?: Record<string, unknown>;
|
|
460
463
|
};
|
|
461
|
-
|
|
464
|
+
type MapQueryMethods<T extends Query, BaseQuery extends Query, Methods> = Methods extends QueryMethods<T> ? {
|
|
462
465
|
[K in keyof Methods]: Methods[K] extends (q: any, ...args: infer Args) => infer Result ? <T extends BaseQuery>(this: T, ...args: Args) => Result extends Query ? MergeQuery<T, Result> : Result : never;
|
|
463
466
|
} : EmptyObject;
|
|
464
|
-
|
|
465
|
-
|
|
467
|
+
type MapMethods<T extends Query, Methods extends MethodsBase<T>> = MapQueryMethods<T, Query, Methods['queryMethods']> & MapQueryMethods<QueryOne<T>, QueryOne<Query>, Methods['queryOneMethods']> & MapQueryMethods<WhereResult<T>, WhereResult<Query>, Methods['queryWithWhereMethods']> & MapQueryMethods<QueryOne<WhereResult<T>>, QueryOne<WhereResult<Query>>, Methods['queryOneWithWhereMethods']> & (Methods['methods'] extends Record<string, unknown> ? Methods['methods'] : EmptyObject);
|
|
468
|
+
type Repo<T extends Query, Methods extends MethodsBase<T>, Mapped = MapMethods<T, Methods>> = (<Q extends {
|
|
466
469
|
table: T['table'];
|
|
467
470
|
shape: T['shape'];
|
|
468
471
|
}>(q: Q) => Q & Mapped) & T & Mapped;
|
|
@@ -470,7 +473,7 @@ declare const createRepo: <T extends Query, Methods extends MethodsBase<T>>(tabl
|
|
|
470
473
|
|
|
471
474
|
declare class AppCodeUpdaterError extends Error {
|
|
472
475
|
}
|
|
473
|
-
|
|
476
|
+
type AppCodeUpdaterConfig = {
|
|
474
477
|
tablePath(tableName: string): string;
|
|
475
478
|
baseTablePath: string;
|
|
476
479
|
baseTableName: string;
|