orchid-orm 1.21.5 → 1.21.6
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 +23 -17
- package/dist/index.js.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -5
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Query, SelectableFromShape, CreateMethodsNames, AddQueryDefaults, RelationConfigBase, SetQueryReturnsOne, SetQueryReturnsOneOptional, RelationJoinQuery, UpdateData, WhereArg, CreateData, DeleteMethodsNames, Db, IsolationLevel, TransactionOptions, Adapter, FromArgs, FromResult, AdapterOptions, QueryLogOptions, NoPrimaryKeyOption, RelationQuery, RelationQueryBase, ComputedColumnsBase, MapTableScopesOption, QueryWithTable, QueryData, QueryBase, DbTableOptionScopes, DefaultSchemaConfig, DefaultColumnTypes, QueryBeforeHook, QueryAfterHook, AfterHook, WhereResult, MergeQuery, SetQueryReturns, QueryReturnType } from 'pqb';
|
|
2
2
|
export * from 'pqb';
|
|
3
|
-
import { ColumnsShapeBase, EmptyObject, MaybeArray,
|
|
3
|
+
import { ColumnsShapeBase, EmptyObject, MaybeArray, CoreQueryScopes, ColumnShapeQueryType, ColumnShapeOutput, ColumnShapeInput, ColumnSchemaConfig } from 'orchid-core';
|
|
4
4
|
|
|
5
5
|
type RelationCommonOptions<Related extends TableClass = TableClass, Scope extends Query = Query> = {
|
|
6
6
|
scope?: ScopeFn<Related, Scope>;
|
|
@@ -27,17 +27,19 @@ type HasOne = RelationThunkBase & {
|
|
|
27
27
|
};
|
|
28
28
|
type HasOneOptions<Columns extends ColumnsShapeBase = ColumnsShapeBase, Related extends TableClass = TableClass, Scope extends Query = Query, Through extends string = string, Source extends string = string> = RelationCommonOptions<Related, Scope> & (RelationHasOptions<keyof Columns, keyof InstanceType<Related>['columns']> | RelationThroughOptions<Through, Source>);
|
|
29
29
|
interface HasOneInfo<T extends Table, Relations extends RelationThunks, Relation extends HasOne, Name extends string, TableQuery extends Query, Populate extends Record<string, true> = Relation['options'] extends RelationRefsOptions ? Record<Relation['options']['references'][number], true> : Relation['options'] extends RelationKeysOptions ? Record<Relation['options']['foreignKey'], true> : never, Q extends Query = Relation['options'] extends RelationThroughOptions ? {
|
|
30
|
-
[K in keyof TableQuery]: K extends 'meta' ? TableQuery['meta'] & {
|
|
30
|
+
[K in keyof TableQuery]: K extends 'meta' ? Omit<TableQuery['meta'], 'selectable'> & {
|
|
31
31
|
as: Name;
|
|
32
32
|
defaults: Populate;
|
|
33
33
|
hasWhere: true;
|
|
34
|
-
|
|
34
|
+
selectable: SelectableFromShape<TableQuery['shape'], Name>;
|
|
35
|
+
} : K extends 'join' ? RelJoin : K extends CreateMethodsNames ? never : TableQuery[K];
|
|
35
36
|
} : {
|
|
36
|
-
[K in keyof TableQuery]: K extends 'meta' ? TableQuery['meta'] & {
|
|
37
|
+
[K in keyof TableQuery]: K extends 'meta' ? Omit<TableQuery['meta'], 'selectable'> & {
|
|
37
38
|
as: Name;
|
|
38
39
|
defaults: Populate;
|
|
39
40
|
hasWhere: true;
|
|
40
|
-
|
|
41
|
+
selectable: SelectableFromShape<TableQuery['shape'], Name>;
|
|
42
|
+
} : K extends 'join' ? RelJoin : TableQuery[K];
|
|
41
43
|
}, NestedCreateQuery extends Query = Relation['options'] extends RelationThroughOptions ? Q : AddQueryDefaults<Q, Populate>> extends RelationConfigBase {
|
|
42
44
|
query: Q;
|
|
43
45
|
methodQuery: Relation['options']['required'] extends true ? SetQueryReturnsOne<Q> : SetQueryReturnsOneOptional<Q>;
|
|
@@ -78,17 +80,19 @@ type HasMany = RelationThunkBase & {
|
|
|
78
80
|
};
|
|
79
81
|
type HasManyOptions<Columns extends ColumnsShapeBase = ColumnsShapeBase, Related extends TableClass = TableClass, Scope extends Query = Query, Through extends string = string, Source extends string = string> = HasOneOptions<Columns, Related, Scope, Through, Source>;
|
|
80
82
|
interface HasManyInfo<T extends Table, Relations extends RelationThunks, Relation extends HasMany, Name extends string, TableQuery extends Query, Populate extends Record<string, true> = Relation['options'] extends RelationRefsOptions ? Record<Relation['options']['references'][number], true> : Relation['options'] extends RelationKeysOptions ? Record<Relation['options']['foreignKey'], true> : never, Q extends Query = Relation['options'] extends RelationThroughOptions ? {
|
|
81
|
-
[K in keyof TableQuery]: K extends 'meta' ? TableQuery['meta'] & {
|
|
83
|
+
[K in keyof TableQuery]: K extends 'meta' ? Omit<TableQuery['meta'], 'selectable'> & {
|
|
82
84
|
as: Name;
|
|
83
85
|
defaults: Populate;
|
|
84
86
|
hasWhere: true;
|
|
85
|
-
|
|
87
|
+
selectable: SelectableFromShape<TableQuery['shape'], Name>;
|
|
88
|
+
} : K extends 'join' ? RelJoin : K extends CreateMethodsNames ? never : TableQuery[K];
|
|
86
89
|
} : {
|
|
87
|
-
[K in keyof TableQuery]: K extends 'meta' ? TableQuery['meta'] & {
|
|
90
|
+
[K in keyof TableQuery]: K extends 'meta' ? Omit<TableQuery['meta'], 'selectable'> & {
|
|
88
91
|
as: Name;
|
|
89
92
|
defaults: Populate;
|
|
90
93
|
hasWhere: true;
|
|
91
|
-
|
|
94
|
+
selectable: SelectableFromShape<TableQuery['shape'], Name>;
|
|
95
|
+
} : K extends 'join' ? RelJoin : TableQuery[K];
|
|
92
96
|
}, NestedCreateQuery extends Query = Relation['options'] extends RelationThroughOptions ? Q : AddQueryDefaults<Q, Populate>> extends RelationConfigBase {
|
|
93
97
|
query: Q;
|
|
94
98
|
methodQuery: Q;
|
|
@@ -126,10 +130,11 @@ type BelongsTo = RelationThunkBase & {
|
|
|
126
130
|
};
|
|
127
131
|
type BelongsToOptions<Columns extends ColumnsShapeBase = ColumnsShapeBase, Related extends TableClass = TableClass, Scope extends Query = Query> = RelationCommonOptions<Related, Scope> & RelationRefsOrKeysOptions<keyof Columns, keyof InstanceType<Related>['columns'], keyof InstanceType<Related>['columns'], keyof Columns>;
|
|
128
132
|
interface BelongsToInfo<T extends Table, Relation extends BelongsTo, Name extends string, TableQuery extends Query, FK extends string = Relation['options'] extends RelationRefsOptions ? Relation['options']['columns'][number] : Relation['options'] extends RelationKeysOptions ? Relation['options']['foreignKey'] : never, Required = Relation['options']['required'] extends true ? true : false, Q extends Query = {
|
|
129
|
-
[K in keyof TableQuery]: K extends 'meta' ? TableQuery['meta'] & {
|
|
133
|
+
[K in keyof TableQuery]: K extends 'meta' ? Omit<TableQuery['meta'], 'selectable'> & {
|
|
130
134
|
as: Name;
|
|
131
135
|
hasWhere: true;
|
|
132
|
-
|
|
136
|
+
selectable: SelectableFromShape<TableQuery['shape'], Name>;
|
|
137
|
+
} : K extends 'join' ? RelJoin : K extends CreateMethodsNames | DeleteMethodsNames ? never : TableQuery[K];
|
|
133
138
|
}> extends RelationConfigBase {
|
|
134
139
|
query: Q;
|
|
135
140
|
methodQuery: Required extends true ? SetQueryReturnsOne<Q> : SetQueryReturnsOneOptional<Q>;
|
|
@@ -277,10 +282,11 @@ type HasAndBelongsToManyOptions<Columns extends ColumnsShapeBase = ColumnsShapeB
|
|
|
277
282
|
associationForeignKey: keyof InstanceType<Related>['columns'];
|
|
278
283
|
});
|
|
279
284
|
interface HasAndBelongsToManyInfo<T extends Table, Relation extends HasAndBelongsToMany, Name extends string, TableQuery extends Query, Q extends Query = {
|
|
280
|
-
[K in keyof TableQuery]: K extends 'meta' ? TableQuery['meta'] & {
|
|
285
|
+
[K in keyof TableQuery]: K extends 'meta' ? Omit<TableQuery['meta'], 'selectable'> & {
|
|
281
286
|
as: Name;
|
|
282
287
|
hasWhere: true;
|
|
283
|
-
|
|
288
|
+
selectable: SelectableFromShape<TableQuery['shape'], Name>;
|
|
289
|
+
} : K extends 'join' ? RelJoin : TableQuery[K];
|
|
284
290
|
}> extends RelationConfigBase {
|
|
285
291
|
query: Q;
|
|
286
292
|
methodQuery: Q;
|
|
@@ -352,12 +358,12 @@ type RelationThunk = BelongsTo | HasOne | HasMany | HasAndBelongsToMany;
|
|
|
352
358
|
type RelationThunks = Record<string, RelationThunk>;
|
|
353
359
|
type RelationScopeOrTable<Relation extends RelationThunkBase> = Relation['options']['scope'] extends (q: Query) => Query ? ReturnType<Relation['options']['scope']> : RelationQueryFromFn<Relation>;
|
|
354
360
|
type RelationQueryFromFn<Relation extends RelationThunkBase, TC extends TableClass = ReturnType<Relation['fn']>, Q extends Query = DbTable<TC>> = Q;
|
|
355
|
-
type RelationConfig<T extends Table = Table, Relations extends RelationThunks = RelationThunks, Relation extends RelationThunk = RelationThunk, K extends
|
|
356
|
-
type MapRelation<T extends Table, Relations extends RelationThunks, RelationName extends keyof Relations, Relation extends RelationThunk = Relations[RelationName], TableQuery extends Query = RelationScopeOrTable<Relation>> = RelationQuery<RelationConfig<T, Relations, Relation, RelationName, TableQuery>>;
|
|
361
|
+
type RelationConfig<T extends Table = Table, Relations extends RelationThunks = RelationThunks, Relation extends RelationThunk = RelationThunk, K extends string = string, TableQuery extends Query = Query, Result extends RelationConfigBase = Relation extends BelongsTo ? BelongsToInfo<T, Relation, K, TableQuery> : Relation extends HasOne ? HasOneInfo<T, Relations, Relation, K, TableQuery> : Relation extends HasMany ? HasManyInfo<T, Relations, Relation, K, TableQuery> : Relation extends HasAndBelongsToMany ? HasAndBelongsToManyInfo<T, Relation, K, TableQuery> : never> = Result;
|
|
362
|
+
type MapRelation<T extends Table, Relations extends RelationThunks, RelationName extends keyof Relations & string, Relation extends RelationThunk = Relations[RelationName], TableQuery extends Query = RelationScopeOrTable<Relation>> = RelationQuery<RelationConfig<T, Relations, Relation, RelationName, TableQuery>>;
|
|
357
363
|
type MapRelations<T extends Table> = T extends {
|
|
358
364
|
relations: RelationThunks;
|
|
359
365
|
} ? {
|
|
360
|
-
[K in keyof T['relations']]: MapRelation<T, T['relations'], K>;
|
|
366
|
+
[K in keyof T['relations'] & string]: MapRelation<T, T['relations'], K>;
|
|
361
367
|
} : EmptyObject;
|
|
362
368
|
|
|
363
369
|
type TableClass<T extends Table = Table> = {
|
|
@@ -396,7 +402,7 @@ type Insertable<T extends Table> = ColumnShapeInput<T['columns']>;
|
|
|
396
402
|
type Updateable<T extends Table> = Partial<Insertable<T>>;
|
|
397
403
|
type BeforeHookMethod = <T extends Table>(cb: QueryBeforeHook) => T;
|
|
398
404
|
type AfterHookMethod = <T extends Table>(cb: QueryAfterHook) => T;
|
|
399
|
-
type AfterSelectableHookMethod = <T extends Table, S extends (keyof T['columns'])[]>(this: T, select: S, cb: AfterHook<S, T['columns']>) => T;
|
|
405
|
+
type AfterSelectableHookMethod = <T extends Table, S extends (keyof T['columns'] & string)[]>(this: T, select: S, cb: AfterHook<S, T['columns']>) => T;
|
|
400
406
|
interface BaseTableInstance<ColumnTypes> {
|
|
401
407
|
table: string;
|
|
402
408
|
columns: ColumnsShapeBase;
|