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 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, StringKey, CoreQueryScopes, ColumnShapeQueryType, ColumnShapeOutput, ColumnShapeInput, ColumnSchemaConfig } from 'orchid-core';
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
- } : K extends 'selectable' ? SelectableFromShape<TableQuery['shape'], Name> : K extends 'join' ? RelJoin : K extends CreateMethodsNames ? never : TableQuery[K];
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
- } : K extends 'selectable' ? SelectableFromShape<TableQuery['shape'], Name> : K extends 'join' ? RelJoin : TableQuery[K];
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
- } : K extends 'selectable' ? SelectableFromShape<TableQuery['shape'], Name> : K extends 'join' ? RelJoin : K extends CreateMethodsNames ? never : TableQuery[K];
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
- } : K extends 'selectable' ? SelectableFromShape<TableQuery['shape'], Name> : K extends 'join' ? RelJoin : TableQuery[K];
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
- } : K extends 'selectable' ? SelectableFromShape<TableQuery['shape'], Name> : K extends 'join' ? RelJoin : K extends CreateMethodsNames | DeleteMethodsNames ? never : TableQuery[K];
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
- } : K extends 'selectable' ? SelectableFromShape<TableQuery['shape'], Name> : K extends 'join' ? RelJoin : TableQuery[K];
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 PropertyKey = PropertyKey, TableQuery extends Query = Query, Result extends RelationConfigBase = Relation extends BelongsTo ? BelongsToInfo<T, Relation, StringKey<K>, TableQuery> : Relation extends HasOne ? HasOneInfo<T, Relations, Relation, StringKey<K>, TableQuery> : Relation extends HasMany ? HasManyInfo<T, Relations, Relation, StringKey<K>, TableQuery> : Relation extends HasAndBelongsToMany ? HasAndBelongsToManyInfo<T, Relation, StringKey<K>, TableQuery> : never> = Result;
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;