orchid-orm 1.22.1 → 1.23.1

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
- import { Query, SelectableFromShape, CreateMethodsNames, AddQueryDefaults, RelationConfigBase, SetQueryReturnsOne, SetQueryReturnsOneOptional, RelationJoinQuery, UpdateData, WhereArg, CreateData, JoinQueryMethod, DeleteMethodsNames, Db, IsolationLevel, TransactionOptions, Adapter, FromArgs, FromResult, AdapterOptions, QueryLogOptions, NoPrimaryKeyOption, RelationQuery, MapTableScopesOption, ComputedColumnsBase, QueryData, QueryBase, DbTableOptionScopes, DefaultSchemaConfig, DefaultColumnTypes, RelationQueryBase, QueryBeforeHook, QueryAfterHook, AfterHook, WhereResult, MergeQuery } from 'pqb';
1
+ import { Query, SelectableFromShape, CreateMethodsNames, AddQueryDefaults, SetQueryReturnsOne, SetQueryReturnsOneOptional, RelationJoinQuery, UpdateData, WhereArg, CreateData, JoinQueryMethod, DeleteMethodsNames, Db, IsolationLevel, TransactionOptions, Adapter, FromArg, FromArgOptions, FromResult, AdapterOptions, QueryLogOptions, NoPrimaryKeyOption, RelationQuery, MapTableScopesOption, ComputedColumnsBase, QueryData, QueryBase, DbTableOptionScopes, DefaultSchemaConfig, DefaultColumnTypes, RelationQueryBase, QueryBeforeHook, QueryAfterHook, AfterHook, WhereResult, MergeQuery } from 'pqb';
2
2
  export * from 'pqb';
3
- import { ColumnsShapeBase, RecordKeyTrue, EmptyObject, MaybeArray, RecordUnknown, CoreQueryScopes, ColumnShapeOutput, ColumnShapeInput, ColumnShapeInputPartial, ColumnSchemaConfig, QueryReturnType } from 'orchid-core';
3
+ import { ColumnsShapeBase, EmptyObject, MaybeArray, RecordUnknown, CoreQueryScopes, ColumnShapeOutput, ColumnShapeInput, ColumnShapeInputPartial, ColumnSchemaConfig, QueryReturnType } from 'orchid-core';
4
4
 
5
5
  interface RelationCommonOptions<Related extends TableClass = TableClass, Scope extends Query = Query> {
6
6
  scope?: ScopeFn<Related, Scope>;
@@ -29,7 +29,7 @@ type HasOneOptions<Columns extends ColumnsShapeBase = ColumnsShapeBase, Related
29
29
  type HasOneParams<T extends RelationConfigSelf, Relation extends RelationThunkBase> = Relation['options'] extends RelationRefsOptions ? {
30
30
  [Name in Relation['options']['columns'][number]]: T['columns'][Name]['type'];
31
31
  } : Relation['options'] extends RelationKeysOptions ? Record<Relation['options']['primaryKey'], T['columns'][Relation['options']['primaryKey']]['type']> : Relation['options'] extends RelationThroughOptions ? RelationConfigParams<T, T['relations'][Relation['options']['through']]> : never;
32
- interface HasOneInfo<T extends RelationConfigSelf, Name extends keyof T['relations'] & string, TableQuery extends Query, Populate extends RecordKeyTrue = T['relations'][Name]['options'] extends RelationRefsOptions ? Record<T['relations'][Name]['options']['references'][number], true> : T['relations'][Name]['options'] extends RelationKeysOptions ? Record<T['relations'][Name]['options']['foreignKey'], true> : never, Q extends Query = T['relations'][Name]['options'] extends RelationThroughOptions ? {
32
+ interface HasOneInfo<T extends RelationConfigSelf, Name extends keyof T['relations'] & string, TableQuery extends Query, Populate = T['relations'][Name]['options'] extends RelationRefsOptions ? Record<T['relations'][Name]['options']['references'][number], true> : T['relations'][Name]['options'] extends RelationKeysOptions ? Record<T['relations'][Name]['options']['foreignKey'], true> : never, Q extends Query = T['relations'][Name]['options'] extends RelationThroughOptions ? {
33
33
  [K in keyof TableQuery]: K extends 'meta' ? Omit<TableQuery['meta'], 'selectable'> & {
34
34
  as: Name;
35
35
  defaults: Populate;
@@ -43,7 +43,7 @@ interface HasOneInfo<T extends RelationConfigSelf, Name extends keyof T['relatio
43
43
  hasWhere: true;
44
44
  selectable: SelectableFromShape<TableQuery['shape'], Name>;
45
45
  } : K extends 'join' ? RelJoin : TableQuery[K];
46
- }, NestedCreateQuery extends Query = T['relations'][Name]['options'] extends RelationThroughOptions ? Q : AddQueryDefaults<Q, Populate>> extends RelationConfigBase {
46
+ }, NestedCreateQuery extends Query = T['relations'][Name]['options'] extends RelationThroughOptions ? Q : AddQueryDefaults<Q, Populate>> {
47
47
  query: Q;
48
48
  methodQuery: T['relations'][Name]['options']['required'] extends true ? SetQueryReturnsOne<Q> : SetQueryReturnsOneOptional<Q>;
49
49
  joinQuery: RelationJoinQuery;
@@ -97,7 +97,7 @@ interface HasManyInfo<T extends RelationConfigSelf, Name extends keyof T['relati
97
97
  hasWhere: true;
98
98
  selectable: SelectableFromShape<TableQuery['shape'], Name>;
99
99
  } : K extends 'join' ? RelJoin : TableQuery[K];
100
- }> extends RelationConfigBase {
100
+ }> {
101
101
  query: Q;
102
102
  methodQuery: Q;
103
103
  joinQuery: RelationJoinQuery;
@@ -135,14 +135,14 @@ type BelongsToFKey<Relation extends RelationThunkBase> = Relation['options'] ext
135
135
  type BelongsToParams<T extends RelationConfigSelf, Relation extends RelationThunkBase> = {
136
136
  [Name in BelongsToFKey<Relation>]: T['columns'][Name]['type'];
137
137
  };
138
- interface BelongsToInfo<T extends RelationConfigSelf, Name extends keyof T['relations'] & string, TableQuery extends Query, FK extends string = BelongsToFKey<T['relations'][Name]>, Required = T['relations'][Name]['options']['required'] extends true ? true : false, Q extends Query = {
139
- [K in keyof TableQuery]: K extends 'meta' ? // Omit is optimal
138
+ interface BelongsToInfo<T extends RelationConfigSelf, Name extends keyof T['relations'] & string, TableQuery extends Query, FK extends string, Required, Q extends Query = {
139
+ [P in keyof TableQuery]: P extends 'meta' ? // Omit is optimal
140
140
  Omit<TableQuery['meta'], 'selectable'> & {
141
141
  as: Name;
142
142
  hasWhere: true;
143
143
  selectable: SelectableFromShape<TableQuery['shape'], Name>;
144
- } : K extends 'join' ? RelJoin : K extends CreateMethodsNames | DeleteMethodsNames ? never : TableQuery[K];
145
- }> extends RelationConfigBase {
144
+ } : P extends 'join' ? RelJoin : P extends CreateMethodsNames | DeleteMethodsNames ? never : TableQuery[P];
145
+ }> {
146
146
  query: Q;
147
147
  methodQuery: Required extends true ? SetQueryReturnsOne<Q> : SetQueryReturnsOneOptional<Q>;
148
148
  joinQuery: RelationJoinQuery;
@@ -249,7 +249,7 @@ type OrchidORM<T extends TableClasses = TableClasses> = {
249
249
  * @param args - SQL template literal, or an object { raw: string, values?: unknown[] }
250
250
  */
251
251
  $queryArrays: Db['queryArrays'];
252
- $from<Args extends FromArgs<Query>>(...args: Args): FromResult<Query, Args>;
252
+ $from<Arg extends FromArg<Query>>(arg: Arg, options?: FromArgOptions): FromResult<Query, Arg>;
253
253
  $close(): Promise<void>;
254
254
  };
255
255
  declare const orchidORM: <T extends TableClasses>({ log, logger, autoPreparedStatements, noPrimaryKey, ...options }: (Omit<AdapterOptions, "log"> | {
@@ -293,7 +293,7 @@ interface HasAndBelongsToManyInfo<T extends RelationConfigSelf, Name extends key
293
293
  hasWhere: true;
294
294
  selectable: SelectableFromShape<TableQuery['shape'], Name>;
295
295
  } : K extends 'join' ? RelJoin : TableQuery[K];
296
- }> extends RelationConfigBase {
296
+ }> {
297
297
  query: Q;
298
298
  methodQuery: Q;
299
299
  joinQuery: RelationJoinQuery;
@@ -380,7 +380,7 @@ interface RelationConfigSelf {
380
380
  relations: RelationThunks;
381
381
  }
382
382
  type RelationConfigParams<T extends RelationConfigSelf, Relation extends RelationThunk> = Relation extends BelongsTo ? BelongsToParams<T, Relation> : Relation extends HasOne ? HasOneParams<T, Relation> : Relation extends HasMany ? HasManyParams<T, Relation> : Relation extends HasAndBelongsToMany ? HasAndBelongsToManyParams<T, Relation> : never;
383
- type MapRelation<T extends RelationConfigSelf, K extends keyof T['relations'] & string> = RelationQuery<T['relations'][K] extends BelongsTo ? BelongsToInfo<T, K, RelationScopeOrTable<T['relations'][K]>> : T['relations'][K] extends HasOne ? HasOneInfo<T, K, RelationScopeOrTable<T['relations'][K]>> : T['relations'][K] extends HasMany ? HasManyInfo<T, K, RelationScopeOrTable<T['relations'][K]>> : T['relations'][K] extends HasAndBelongsToMany ? HasAndBelongsToManyInfo<T, K, RelationScopeOrTable<T['relations'][K]>> : never>;
383
+ type MapRelation<T extends RelationConfigSelf, K extends keyof T['relations'] & string> = RelationQuery<T['relations'][K] extends BelongsTo ? BelongsToInfo<T, K, RelationScopeOrTable<T['relations'][K]>, BelongsToFKey<T['relations'][K]>, T['relations'][K]['options']['required']> : T['relations'][K] extends HasOne ? HasOneInfo<T, K, RelationScopeOrTable<T['relations'][K]>> : T['relations'][K] extends HasMany ? HasManyInfo<T, K, RelationScopeOrTable<T['relations'][K]>> : T['relations'][K] extends HasAndBelongsToMany ? HasAndBelongsToManyInfo<T, K, RelationScopeOrTable<T['relations'][K]>> : never>;
384
384
  type MapRelations<T> = T extends {
385
385
  columns: ColumnsShapeBase;
386
386
  relations: RelationThunks;
package/dist/index.js CHANGED
@@ -1844,7 +1844,7 @@ const orchidORM = (_a, tables) => {
1844
1844
  $queryBuilder: qb,
1845
1845
  $query: (...args) => qb.query(...args),
1846
1846
  $queryArrays: (...args) => qb.queryArrays(...args),
1847
- $from: (...args) => qb.from(...args),
1847
+ $from: (arg, options2) => qb.from(arg, options2),
1848
1848
  $close: () => adapter.close()
1849
1849
  };
1850
1850
  const tableInstances = {};