orchid-orm 1.29.2 → 1.31.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 CHANGED
@@ -1,6 +1,6 @@
1
- import { Query, SelectableFromShape, CreateMethodsNames, AddQueryDefaults, SetQueryReturnsOne, SetQueryReturnsOneOptional, RelationJoinQuery, UpdateData, WhereArg, CreateData, JoinQueryMethod, DeleteMethodsNames, Db, IsolationLevel, TransactionOptions, Adapter, FromArg, FromResult, AdapterOptions, DbSharedOptions, RelationQuery, ShapeColumnPrimaryKeys, ShapeUniqueColumns, TableDataItemsUniqueColumns, TableDataItemsUniqueColumnTuples, UniqueConstraints, TableDataItemsUniqueConstraints, MapTableScopesOption, TableDataItem, ComputedColumnsBase, QueryData, QueryBase, TableDataFn, DbTableOptionScopes, SqlMethod, 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, FromResult, AdapterOptions, DbSharedOptions, RelationQuery, ShapeColumnPrimaryKeys, ShapeUniqueColumns, TableDataItemsUniqueColumns, TableDataItemsUniqueColumnTuples, UniqueConstraints, TableDataItemsUniqueConstraints, ComputedColumnsFromOptions, MapTableScopesOption, TableDataItem, ComputedOptionsFactory, QueryData, QueryBase, TableDataFn, DbTableOptionScopes, SqlMethod, DefaultSchemaConfig, DefaultColumnTypes, RelationQueryBase, QueryBeforeHook, QueryAfterHook, AfterHook, WhereResult, MergeQuery } from 'pqb';
2
2
  export * from 'pqb';
3
- import { ColumnsShapeBase, EmptyObject, MaybeArray, RecordUnknown, CoreQueryScopes, ColumnShapeOutput, ColumnShapeInput, ColumnShapeInputPartial, ColumnSchemaConfig, QueryReturnType } from 'orchid-core';
3
+ import { ColumnsShapeBase, EmptyObject, MaybeArray, CoreQueryScopes, ColumnShapeOutput, ColumnShapeInput, ColumnShapeInputPartial, ColumnSchemaConfig, RecordUnknown, QueryReturnType } from 'orchid-core';
4
4
  export * from 'orchid-core';
5
5
 
6
6
  interface RelationCommonOptions<Related extends TableClass = TableClass, Scope extends Query = Query> {
@@ -56,6 +56,7 @@ interface HasOneInfo<T extends RelationConfigSelf, Name extends keyof T['relatio
56
56
  table: Q;
57
57
  }>;
58
58
  };
59
+ dataForCreate: never;
59
60
  dataForUpdate: {
60
61
  disconnect: boolean;
61
62
  } | {
@@ -110,6 +111,7 @@ interface HasManyInfo<T extends RelationConfigSelf, Name extends keyof T['relati
110
111
  table: Q;
111
112
  }>;
112
113
  };
114
+ dataForCreate: never;
113
115
  dataForUpdate: {
114
116
  disconnect?: MaybeArray<WhereArg<Q>>;
115
117
  delete?: MaybeArray<WhereArg<Q>>;
@@ -187,6 +189,9 @@ declare function transaction<T extends {
187
189
  $queryBuilder: Db;
188
190
  }, Result>(this: T, options: IsolationLevel | TransactionOptions, fn: () => Promise<Result>): Promise<Result>;
189
191
 
192
+ interface FromQuery extends Query {
193
+ returnType: 'all';
194
+ }
190
195
  type OrchidORM<T extends TableClasses = TableClasses> = {
191
196
  [K in keyof T]: DbTable<InstanceType<T[K]>>;
192
197
  } & {
@@ -253,7 +258,7 @@ type OrchidORM<T extends TableClasses = TableClasses> = {
253
258
  /**
254
259
  * See {@link FromMethods.from}
255
260
  */
256
- $from<Arg extends MaybeArray<FromArg<Query>>>(arg: Arg): FromResult<Query, Arg>;
261
+ $from<Arg extends MaybeArray<FromArg<Query>>>(arg: Arg): FromResult<FromQuery, Arg>;
257
262
  $close(): Promise<void>;
258
263
  };
259
264
  type OrchidOrmArg = true | null extends true ? 'Set strict: true to tsconfig' : ({
@@ -307,6 +312,7 @@ interface HasAndBelongsToManyInfo<T extends RelationConfigSelf, Name extends key
307
312
  table: Q;
308
313
  }>;
309
314
  };
315
+ dataForCreate: never;
310
316
  dataForUpdate: {
311
317
  disconnect?: MaybeArray<WhereArg<Q>>;
312
318
  set?: MaybeArray<WhereArg<Q>>;
@@ -399,9 +405,7 @@ interface TableClasses {
399
405
  interface RelationQueriesBase {
400
406
  [K: string]: RelationQueryBase;
401
407
  }
402
- interface TableToDb<T extends Table, RelationQueries extends RelationQueriesBase> extends Db<T['table'], T['columns']['shape'], keyof ShapeColumnPrimaryKeys<T['columns']['shape']> extends never ? never : ShapeColumnPrimaryKeys<T['columns']['shape']>, ShapeUniqueColumns<T['columns']['shape']> | TableDataItemsUniqueColumns<T['columns']['shape'], T['columns']['data']>, TableDataItemsUniqueColumnTuples<T['columns']['shape'], T['columns']['data']>, UniqueConstraints<T['columns']['shape']> | TableDataItemsUniqueConstraints<T['columns']['data']>, RelationQueries, T['types'], T['computed'] extends RecordUnknown ? T['columns']['shape'] & {
403
- [K in keyof T['computed']]: ReturnType<T['computed'][K]>['result']['value'];
404
- } : T['columns']['shape'], MapTableScopesOption<T['scopes'], T['softDelete']>> {
408
+ interface TableToDb<T extends Table, RelationQueries extends RelationQueriesBase> extends Db<T['table'], T['columns']['shape'], keyof ShapeColumnPrimaryKeys<T['columns']['shape']> extends never ? never : ShapeColumnPrimaryKeys<T['columns']['shape']>, ShapeUniqueColumns<T['columns']['shape']> | TableDataItemsUniqueColumns<T['columns']['shape'], T['columns']['data']>, TableDataItemsUniqueColumnTuples<T['columns']['shape'], T['columns']['data']>, UniqueConstraints<T['columns']['shape']> | TableDataItemsUniqueConstraints<T['columns']['data']>, RelationQueries, T['types'], T['columns']['shape'] & ComputedColumnsFromOptions<T['computed']>, MapTableScopesOption<T['scopes'], T['softDelete']>> {
405
409
  definedAs: string;
406
410
  db: OrchidORM;
407
411
  getFilePath(): string;
@@ -423,7 +427,7 @@ interface Table {
423
427
  /**
424
428
  * collect computed columns returned by {@link BaseTable.setColumns}
425
429
  */
426
- computed?: ComputedColumnsBase<never>;
430
+ computed?: ComputedOptionsFactory<never, never>;
427
431
  scopes?: CoreQueryScopes;
428
432
  readonly softDelete?: true | string;
429
433
  comment?: string;
@@ -548,16 +552,20 @@ interface BaseTableInstance<ColumnTypes> {
548
552
  *
549
553
  * @param computed - object where keys are column names and values are functions returning raw SQL
550
554
  */
551
- setComputed<Table extends string, Shape extends ColumnsShapeBase, Computed extends ComputedColumnsBase<Db<Table, Shape, never, never, never, never, EmptyObject, ColumnTypes>>>(computed: Computed): Computed;
555
+ setComputed<Shape extends ColumnsShapeBase, Computed extends ComputedOptionsFactory<ColumnTypes, Shape>>(this: {
556
+ columns: {
557
+ shape: Shape;
558
+ };
559
+ }, computed: Computed): Computed;
552
560
  /**
553
561
  * See {@link ScopeMethods}
554
562
  */
555
- setScopes<Table extends string, Columns extends ColumnsShapeBase, Keys extends string>(this: {
563
+ setScopes<Table extends string, Shape extends ColumnsShapeBase, Keys extends string>(this: {
556
564
  table: Table;
557
565
  columns: {
558
- shape: Columns;
566
+ shape: Shape;
559
567
  };
560
- }, scopes: DbTableOptionScopes<Table, Columns, Keys>): CoreQueryScopes<Keys>;
568
+ }, scopes: DbTableOptionScopes<Table, Shape, Keys>): CoreQueryScopes<Keys>;
561
569
  belongsTo<Columns extends ColumnsShapeBase, Related extends TableClass, Scope extends Query, Options extends BelongsToOptions<Columns, Related, Scope>>(this: {
562
570
  columns: {
563
571
  shape: Columns;
@@ -632,7 +640,7 @@ declare function createBaseTable<SchemaConfig extends ColumnSchemaConfig = Defau
632
640
 
633
641
  type QueryMethods<T extends Query> = Record<string, (q: T, ...args: any[]) => any>;
634
642
  type QueryOne<T extends Query> = {
635
- [K in keyof T]: K extends 'returnType' ? Exclude<QueryReturnType, 'all'> : T[K];
643
+ [K in keyof T]: K extends 'returnType' ? Exclude<QueryReturnType, 'all' | undefined> : T[K];
636
644
  };
637
645
  interface MethodsBase<T extends Query> {
638
646
  queryMethods?: QueryMethods<T>;
package/dist/index.js CHANGED
@@ -437,7 +437,10 @@ const nestedUpdate$3 = ({ query, primaryKeys, foreignKeys, len }) => {
437
437
  } else if (params.create) {
438
438
  const q3 = query.clone();
439
439
  q3.q.select = primaryKeys;
440
- const record = await pqb._queryCreate(q3, params.create);
440
+ const record = await pqb._queryCreate(
441
+ q3,
442
+ params.create
443
+ );
441
444
  for (let i = 0; i < len; i++) {
442
445
  update[foreignKeys[i]] = record[primaryKeys[i]];
443
446
  }
@@ -474,7 +477,10 @@ const nestedUpdate$3 = ({ query, primaryKeys, foreignKeys, len }) => {
474
477
  );
475
478
  } else {
476
479
  const data = typeof upsert.create === "function" ? upsert.create() : upsert.create;
477
- const result = await pqb._queryCreate(query.select(...primaryKeys), data);
480
+ const result = await pqb._queryCreate(
481
+ query.select(...primaryKeys),
482
+ data
483
+ );
478
484
  const collectData = {};
479
485
  state.collect = {
480
486
  keys: primaryKeys,
@@ -1885,7 +1891,8 @@ const orchidORM = (_a, tables) => {
1885
1891
  softDelete: table.softDelete,
1886
1892
  snakeCase: table.snakeCase,
1887
1893
  comment: table.comment,
1888
- noPrimaryKey: table.noPrimaryKey ? "ignore" : void 0
1894
+ noPrimaryKey: table.noPrimaryKey ? "ignore" : void 0,
1895
+ computed: table.computed
1889
1896
  });
1890
1897
  const dbTable = new pqb.Db(
1891
1898
  adapter,
@@ -1902,12 +1909,6 @@ const orchidORM = (_a, tables) => {
1902
1909
  dbTable.db = result;
1903
1910
  dbTable.filePath = table.filePath;
1904
1911
  dbTable.name = table.constructor.name;
1905
- if (table.computed) {
1906
- pqb.addComputedColumns(
1907
- dbTable,
1908
- table.computed
1909
- );
1910
- }
1911
1912
  result[key] = dbTable;
1912
1913
  }
1913
1914
  applyRelations(qb, tableInstances, result);