orchid-orm 1.18.0 → 1.18.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 +29 -13
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +5 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -5
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Query, QueryWithTable, SetQueryTableAlias, RelationJoinQuery, WhereArg, UpdateData, CreateData, AddQueryDefaults, Db, IsolationLevel, TransactionOptions, Adapter, FromArgs, FromResult, AdapterOptions, QueryLogOptions, NoPrimaryKeyOption, RelationQuery, RelationConfigBase, RelationQueryBase, ComputedColumnsBase, QueryData, QueryBase, DefaultColumnTypes, QueryBeforeHook, QueryAfterHook, AfterHook, WhereResult, MergeQuery, SetQueryReturns, QueryReturnType } from 'pqb';
|
|
1
|
+
import { Query, QueryWithTable, SetQueryTableAlias, RelationJoinQuery, WhereArg, UpdateData, CreateData, AddQueryDefaults, Db, IsolationLevel, TransactionOptions, Adapter, FromArgs, FromResult, AdapterOptions, QueryLogOptions, NoPrimaryKeyOption, RelationQuery, RelationConfigBase, RelationQueryBase, ComputedColumnsBase, QueryData, QueryBase, DbTableOptionScopes, DefaultColumnTypes, QueryBeforeHook, QueryAfterHook, AfterHook, WhereResult, MergeQuery, SetQueryReturns, QueryReturnType } from 'pqb';
|
|
2
2
|
export * from 'pqb';
|
|
3
|
-
import { EmptyObject, MaybeArray, StringKey,
|
|
3
|
+
import { ColumnsShapeBase, EmptyObject, MaybeArray, StringKey, CoreQueryScopes, ColumnShapeQueryType, ColumnShapeOutput, ColumnShapeInput } from 'orchid-core';
|
|
4
4
|
|
|
5
5
|
type RelationCommonOptions<Related extends TableClass = TableClass, Scope extends Query = Query> = {
|
|
6
6
|
scope?: ScopeFn<Related, Scope>;
|
|
@@ -25,7 +25,7 @@ type BelongsTo = RelationThunkBase & {
|
|
|
25
25
|
type: 'belongsTo';
|
|
26
26
|
options: BelongsToOptions;
|
|
27
27
|
};
|
|
28
|
-
type BelongsToOptions<
|
|
28
|
+
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>;
|
|
29
29
|
type BelongsToInfo<T extends Table, Relation extends BelongsTo, K extends string, FK extends string = Relation['options'] extends RelationRefsOptions ? Relation['options']['columns'][number] : Relation['options'] extends RelationKeysOptions ? Relation['options']['foreignKey'] : never, Q extends QueryWithTable = SetQueryTableAlias<DbTable<ReturnType<Relation['fn']>>, K>, DataForCreate = RelationToOneDataForCreate<{
|
|
30
30
|
nestedCreateQuery: Q;
|
|
31
31
|
table: Q;
|
|
@@ -76,7 +76,7 @@ type HasMany = RelationThunkBase & {
|
|
|
76
76
|
type: 'hasMany';
|
|
77
77
|
options: HasManyOptions;
|
|
78
78
|
};
|
|
79
|
-
type HasManyOptions<
|
|
79
|
+
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
80
|
type HasManyInfo<T extends Table, Relations extends RelationThunks, Relation extends HasMany, K extends string, 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, TC extends TableClass = ReturnType<Relation['fn']>, Q extends QueryWithTable = SetQueryTableAlias<DbTable<TC>, K>, NestedCreateQuery extends Query = Relation['options'] extends RelationThroughOptions ? Q : AddQueryDefaults<Q, Populate>> = {
|
|
81
81
|
table: Q;
|
|
82
82
|
query: Q;
|
|
@@ -114,7 +114,7 @@ type HasOne = RelationThunkBase & {
|
|
|
114
114
|
type: 'hasOne';
|
|
115
115
|
options: HasOneOptions;
|
|
116
116
|
};
|
|
117
|
-
type HasOneOptions<
|
|
117
|
+
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>);
|
|
118
118
|
type HasOneInfo<T extends Table, Relations extends RelationThunks, Relation extends HasOne, K extends string, 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, TC extends TableClass = ReturnType<Relation['fn']>, Q extends QueryWithTable = SetQueryTableAlias<DbTable<TC>, K>, NestedCreateQuery extends Query = Relation['options'] extends RelationThroughOptions ? Q : AddQueryDefaults<Q, Populate>> = {
|
|
119
119
|
table: Q;
|
|
120
120
|
query: Q;
|
|
@@ -239,8 +239,8 @@ type HasAndBelongsToMany = RelationThunkBase & {
|
|
|
239
239
|
type: 'hasAndBelongsToMany';
|
|
240
240
|
options: HasAndBelongsToManyOptions;
|
|
241
241
|
};
|
|
242
|
-
type HasAndBelongsToManyOptions<
|
|
243
|
-
columns: (keyof
|
|
242
|
+
type HasAndBelongsToManyOptions<Columns extends ColumnsShapeBase = ColumnsShapeBase, Related extends TableClass = TableClass, Scope extends Query = Query> = RelationCommonOptions<Related, Scope> & ({
|
|
243
|
+
columns: (keyof Columns)[];
|
|
244
244
|
references: string[];
|
|
245
245
|
through: {
|
|
246
246
|
table: string;
|
|
@@ -248,7 +248,7 @@ type HasAndBelongsToManyOptions<Self extends Table = Table, Related extends Tabl
|
|
|
248
248
|
references: (keyof InstanceType<Related>['columns'])[];
|
|
249
249
|
};
|
|
250
250
|
} | {
|
|
251
|
-
primaryKey: keyof
|
|
251
|
+
primaryKey: keyof Columns;
|
|
252
252
|
foreignKey: string;
|
|
253
253
|
joinTable: string;
|
|
254
254
|
associationPrimaryKey: string;
|
|
@@ -344,7 +344,7 @@ type TableClass<T extends Table = Table> = {
|
|
|
344
344
|
type TableClasses = Record<string, TableClass>;
|
|
345
345
|
type TableToDb<T extends Table, RelationQueries extends Record<string, RelationQueryBase>> = Db<T['table'], T['columns'], RelationQueries, T['types'], T['computed'] extends ComputedColumnsBase<never> ? T['columns'] & {
|
|
346
346
|
[K in keyof T['computed']]: ReturnType<T['computed'][K]>['_type'];
|
|
347
|
-
} : T['columns']> & {
|
|
347
|
+
} : T['columns'], T['scopes']> & {
|
|
348
348
|
definedAs: string;
|
|
349
349
|
db: OrchidORM;
|
|
350
350
|
getFilePath(): string;
|
|
@@ -364,6 +364,7 @@ type Table = {
|
|
|
364
364
|
* collect computed columns returned by {@link BaseTable.setColumns}
|
|
365
365
|
*/
|
|
366
366
|
computed?: ComputedColumnsBase<never>;
|
|
367
|
+
scopes?: CoreQueryScopes;
|
|
367
368
|
};
|
|
368
369
|
type Queryable<T extends Table> = Partial<ColumnShapeQueryType<T['columns']>>;
|
|
369
370
|
type Selectable<T extends Table> = ColumnShapeOutput<T['columns']>;
|
|
@@ -478,22 +479,37 @@ interface BaseTableInstance<ColumnTypes> {
|
|
|
478
479
|
* @param computed - object where keys are column names and values are functions returning raw SQL
|
|
479
480
|
*/
|
|
480
481
|
setComputed<Table extends string, Shape extends ColumnsShapeBase, Computed extends ComputedColumnsBase<Db<Table, Shape, EmptyObject, ColumnTypes>>>(computed: Computed): Computed;
|
|
481
|
-
|
|
482
|
+
/**
|
|
483
|
+
* See {@link ScopeMethods}
|
|
484
|
+
*/
|
|
485
|
+
setScopes<Table extends string, Columns extends ColumnsShapeBase, Keys extends string>(this: {
|
|
486
|
+
table: Table;
|
|
487
|
+
columns: Columns;
|
|
488
|
+
}, scopes: DbTableOptionScopes<Table, Columns, Keys>): CoreQueryScopes<Keys>;
|
|
489
|
+
belongsTo<Columns extends ColumnsShapeBase, Related extends TableClass, Scope extends Query, Options extends BelongsToOptions<Columns, Related, Scope>>(this: {
|
|
490
|
+
columns: Columns;
|
|
491
|
+
}, fn: () => Related, options: Options): {
|
|
482
492
|
type: 'belongsTo';
|
|
483
493
|
fn: () => Related;
|
|
484
494
|
options: Options;
|
|
485
495
|
};
|
|
486
|
-
hasOne<
|
|
496
|
+
hasOne<Columns extends ColumnsShapeBase, Related extends TableClass, Scope extends Query, Through extends string, Source extends string, Options extends HasOneOptions<Columns, Related, Scope, Through, Source>>(this: {
|
|
497
|
+
columns: Columns;
|
|
498
|
+
}, fn: () => Related, options: Options): {
|
|
487
499
|
type: 'hasOne';
|
|
488
500
|
fn: () => Related;
|
|
489
501
|
options: Options;
|
|
490
502
|
};
|
|
491
|
-
hasMany<
|
|
503
|
+
hasMany<Columns extends ColumnsShapeBase, Related extends TableClass, Scope extends Query, Through extends string, Source extends string, Options extends HasManyOptions<Columns, Related, Scope, Through, Source>>(this: {
|
|
504
|
+
columns: Columns;
|
|
505
|
+
}, fn: () => Related, options: Options): {
|
|
492
506
|
type: 'hasMany';
|
|
493
507
|
fn: () => Related;
|
|
494
508
|
options: Options;
|
|
495
509
|
};
|
|
496
|
-
hasAndBelongsToMany<
|
|
510
|
+
hasAndBelongsToMany<Columns extends ColumnsShapeBase, Related extends TableClass, Scope extends Query, Options extends HasAndBelongsToManyOptions<Columns, Related, Scope>>(this: {
|
|
511
|
+
columns: Columns;
|
|
512
|
+
}, fn: () => Related, options: Options): {
|
|
497
513
|
type: 'hasAndBelongsToMany';
|
|
498
514
|
fn: () => Related;
|
|
499
515
|
options: Options;
|
package/dist/index.js
CHANGED
|
@@ -82,6 +82,9 @@ function createBaseTable({
|
|
|
82
82
|
setComputed(computed) {
|
|
83
83
|
return computed;
|
|
84
84
|
}
|
|
85
|
+
setScopes(scopes) {
|
|
86
|
+
return scopes;
|
|
87
|
+
}
|
|
85
88
|
belongsTo(fn, options) {
|
|
86
89
|
return {
|
|
87
90
|
type: "belongsTo",
|
|
@@ -1756,7 +1759,8 @@ const orchidORM = (_a, tables) => {
|
|
|
1756
1759
|
tableInstances[key] = table;
|
|
1757
1760
|
const options2 = __spreadProps(__spreadValues$1({}, commonOptions), {
|
|
1758
1761
|
schema: table.schema,
|
|
1759
|
-
language: table.language
|
|
1762
|
+
language: table.language,
|
|
1763
|
+
scopes: table.scopes
|
|
1760
1764
|
});
|
|
1761
1765
|
if (table.noPrimaryKey)
|
|
1762
1766
|
options2.noPrimaryKey = "ignore";
|