orchid-orm 1.59.4 → 1.59.5
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 +27 -25
- 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,4 +1,4 @@
|
|
|
1
|
-
import { Column, TableData, ColumnsShape, Query, SelectableFromShape, CreateManyMethodsNames, QueryHasWhere,
|
|
1
|
+
import { Column, TableData, ColumnsShape, Query, SelectableFromShape, CreateManyMethodsNames, QueryHasWhere, RelationConfigBase, QueryManyTake, QueryManyTakeOptional, EmptyObject, CreateData, UpdateData, WhereArg, CreateMethodsNames, MaybeArray, JoinQueryMethod, DeleteMethodsNames, Db, IsolationLevel, TransactionOptions, AfterCommitStandaloneHook, AdapterBase, FromArg, FromResult, DbSharedOptions, ShapeColumnPrimaryKeys, ShapeUniqueColumns, TableDataItemsUniqueColumns, TableDataItemsUniqueColumnTuples, UniqueConstraints, TableDataItemsUniqueConstraints, ComputedColumnsFromOptions, MapTableScopesOption, TableDataItem, ComputedOptionsFactory, RecordUnknown, ShallowSimplify, ComputedOptionsConfig, QueryOrExpression, QueryData, IsQuery, TableDataFn, DbTableOptionScopes, QueryScopes, ColumnSchemaConfig, StaticSQLArgs, RawSql, DynamicSQLArg, DynamicRawSQL, DefaultSchemaConfig, DefaultColumnTypes, QueryBeforeHookInternal, QueryAfterHook, AfterHook, MergeQuery, QueryReturnType } from 'pqb';
|
|
2
2
|
export * from 'pqb';
|
|
3
3
|
|
|
4
4
|
interface RelationRefsOptions<Column extends PropertyKey = string, Shape extends Column.Shape.QueryInit = Column.Shape.QueryInit> {
|
|
@@ -24,14 +24,15 @@ type HasOneOptions<Columns extends Column.Shape.QueryInit = Column.Shape.QueryIn
|
|
|
24
24
|
type HasOneParams<T extends RelationConfigSelf, Options> = Options extends RelationRefsOptions ? {
|
|
25
25
|
[Name in Options['columns'][number]]: T['columns']['shape'][Name]['type'];
|
|
26
26
|
} : Options extends RelationThroughOptions ? RelationConfigParams<T, T['relations'][Options['through']]> : never;
|
|
27
|
-
type
|
|
28
|
-
|
|
29
|
-
[K in keyof TableQuery]: K extends '__defaults' ? HasOnePopulate<T, Name> : K extends '__selectable' ? SelectableFromShape<TableQuery['shape'], Name> : K extends '__as' ? Name : K extends CreateMethodsNames ? never : TableQuery[K];
|
|
27
|
+
type HasOneQueryThrough<Name extends string, TableQuery extends Query> = {
|
|
28
|
+
[K in keyof TableQuery]: K extends '__selectable' ? SelectableFromShape<TableQuery['shape'], Name> : K extends '__as' ? Name : K extends CreateMethodsNames ? never : TableQuery[K];
|
|
30
29
|
} & QueryHasWhere & HasRelJoin;
|
|
31
|
-
type HasOneQuery<T extends RelationConfigSelf, Name extends string, TableQuery extends Query> = T['relations'][Name]['options'] extends
|
|
32
|
-
[K in keyof TableQuery]: K extends '__defaults' ?
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
type HasOneQuery<T extends RelationConfigSelf, Name extends string, TableQuery extends Query> = T['relations'][Name]['options'] extends RelationRefsOptions ? {
|
|
31
|
+
[K in keyof TableQuery]: K extends '__defaults' ? {
|
|
32
|
+
[K in keyof TableQuery['__defaults'] | T['relations'][Name]['options']['references'][number]]: true;
|
|
33
|
+
} : K extends '__selectable' ? SelectableFromShape<TableQuery['shape'], Name> : K extends '__as' ? Name : K extends CreateManyMethodsNames ? never : TableQuery[K];
|
|
34
|
+
} & QueryHasWhere & HasRelJoin : HasOneQueryThrough<Name, TableQuery>;
|
|
35
|
+
interface HasOneInfo<T extends RelationConfigSelf, Name extends string, Rel extends HasOne, Q extends Query> extends RelationConfigBase {
|
|
35
36
|
returnsOne: true;
|
|
36
37
|
query: Q;
|
|
37
38
|
params: HasOneParams<T, Rel['options']>;
|
|
@@ -39,7 +40,7 @@ interface HasOneInfo<T extends RelationConfigSelf, Name extends string, Rel exte
|
|
|
39
40
|
omitForeignKeyInCreate: never;
|
|
40
41
|
optionalDataForCreate: T['relations'][Name]['options'] extends RelationThroughOptions ? EmptyObject : {
|
|
41
42
|
[P in Name]?: RelationToOneDataForCreate<{
|
|
42
|
-
nestedCreateQuery:
|
|
43
|
+
nestedCreateQuery: CreateData<Q>;
|
|
43
44
|
table: Q;
|
|
44
45
|
}>;
|
|
45
46
|
};
|
|
@@ -62,10 +63,10 @@ interface HasOneInfo<T extends RelationConfigSelf, Name extends string, Rel exte
|
|
|
62
63
|
} | {
|
|
63
64
|
upsert: {
|
|
64
65
|
update: UpdateData<Q>;
|
|
65
|
-
create:
|
|
66
|
+
create: CreateData<Q> | (() => CreateData<Q>);
|
|
66
67
|
};
|
|
67
68
|
} | {
|
|
68
|
-
create:
|
|
69
|
+
create: CreateData<Q>;
|
|
69
70
|
};
|
|
70
71
|
}
|
|
71
72
|
|
|
@@ -73,9 +74,11 @@ interface HasMany extends RelationThunkBase {
|
|
|
73
74
|
type: 'hasMany';
|
|
74
75
|
options: HasOneOptions;
|
|
75
76
|
}
|
|
76
|
-
type HasManyQuery<T extends RelationConfigSelf, Name extends string, TableQuery extends Query> = T['relations'][Name]['options'] extends
|
|
77
|
-
[K in keyof TableQuery]: K extends '__defaults' ?
|
|
78
|
-
|
|
77
|
+
type HasManyQuery<T extends RelationConfigSelf, Name extends string, TableQuery extends Query> = T['relations'][Name]['options'] extends RelationRefsOptions ? {
|
|
78
|
+
[K in keyof TableQuery]: K extends '__defaults' ? {
|
|
79
|
+
[K in keyof TableQuery['__defaults'] | T['relations'][Name]['options']['references'][number]]: true;
|
|
80
|
+
} : K extends '__selectable' ? SelectableFromShape<TableQuery['shape'], Name> : K extends '__as' ? Name : TableQuery[K];
|
|
81
|
+
} & QueryHasWhere & HasRelJoin : HasOneQueryThrough<Name, TableQuery>;
|
|
79
82
|
interface HasManyInfo<T extends RelationConfigSelf, Name extends string, Rel extends HasMany, Q extends Query> extends RelationConfigBase {
|
|
80
83
|
returnsOne: false;
|
|
81
84
|
query: Q;
|
|
@@ -84,11 +87,11 @@ interface HasManyInfo<T extends RelationConfigSelf, Name extends string, Rel ext
|
|
|
84
87
|
omitForeignKeyInCreate: never;
|
|
85
88
|
optionalDataForCreate: {
|
|
86
89
|
[P in Name]?: T['relations'][Name]['options'] extends RelationThroughOptions ? EmptyObject : {
|
|
87
|
-
create?: CreateData<
|
|
90
|
+
create?: CreateData<Q>[];
|
|
88
91
|
connect?: WhereArg<Q>[];
|
|
89
92
|
connectOrCreate?: {
|
|
90
93
|
where: WhereArg<Q>;
|
|
91
|
-
create: CreateData<
|
|
94
|
+
create: CreateData<Q>;
|
|
92
95
|
}[];
|
|
93
96
|
};
|
|
94
97
|
};
|
|
@@ -110,7 +113,7 @@ interface HasManyInfo<T extends RelationConfigSelf, Name extends string, Rel ext
|
|
|
110
113
|
};
|
|
111
114
|
set?: MaybeArray<WhereArg<Q>>;
|
|
112
115
|
add?: MaybeArray<WhereArg<Q>>;
|
|
113
|
-
create?: CreateData<
|
|
116
|
+
create?: CreateData<Q>[];
|
|
114
117
|
};
|
|
115
118
|
}
|
|
116
119
|
|
|
@@ -204,7 +207,7 @@ interface FromQuery extends Query {
|
|
|
204
207
|
type OrchidORM<T extends TableClasses = TableClasses> = {
|
|
205
208
|
[K in keyof T]: T[K] extends {
|
|
206
209
|
new (): infer R extends ORMTableInput;
|
|
207
|
-
} ?
|
|
210
|
+
} ? TableToDb<R> : never;
|
|
208
211
|
} & OrchidORMMethods;
|
|
209
212
|
interface OrchidORMMethods {
|
|
210
213
|
/**
|
|
@@ -405,7 +408,7 @@ interface RelationThunks {
|
|
|
405
408
|
}
|
|
406
409
|
type RelationTableToQuery<Relation> = Relation extends {
|
|
407
410
|
related: infer R extends ORMTableInput;
|
|
408
|
-
} ?
|
|
411
|
+
} ? TableToDb<R> : never;
|
|
409
412
|
interface RelationConfigSelf {
|
|
410
413
|
columns: {
|
|
411
414
|
shape: Column.Shape.QueryInit;
|
|
@@ -428,12 +431,11 @@ interface TableInfo {
|
|
|
428
431
|
}
|
|
429
432
|
interface Table extends Query, TableInfo {
|
|
430
433
|
}
|
|
431
|
-
interface TableToDb<T extends ORMTableInput
|
|
432
|
-
relations:
|
|
434
|
+
interface TableToDb<T extends ORMTableInput> extends TableInfo, 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']>, T['types'], T['columns']['shape'] & ComputedColumnsFromOptions<T['computed']>, MapTableScopesOption<T>, ColumnsShape.DefaultSelectKeys<T['columns']['shape']>> {
|
|
435
|
+
relations: T extends RelationConfigSelf ? {
|
|
436
|
+
[K in keyof T['relations'] & string]: T['relations'][K] extends BelongsTo ? BelongsToInfo<T, K, T['relations'][K]['options']['columns'][number] & string, T['relations'][K]['options']['required'], BelongsToQuery<RelationTableToQuery<T['relations'][K]>, K>> : T['relations'][K] extends HasOne ? HasOneInfo<T, K, T['relations'][K], HasOneQuery<T, K, RelationTableToQuery<T['relations'][K]>>> : T['relations'][K] extends HasMany ? HasManyInfo<T, K, T['relations'][K], HasManyQuery<T, K, RelationTableToQuery<T['relations'][K]>>> : T['relations'][K] extends HasAndBelongsToMany ? HasAndBelongsToManyInfo<T, K, T['relations'][K]['options']['columns'][number] & string, HasAndBelongsToManyQuery<K, RelationTableToQuery<T['relations'][K]>>> : never;
|
|
437
|
+
} : EmptyObject;
|
|
433
438
|
}
|
|
434
|
-
type ORMTableInputToQueryBuilder<T extends ORMTableInput> = T extends RelationConfigSelf ? TableToDb<T, T extends RelationConfigSelf ? {
|
|
435
|
-
[K in keyof T['relations'] & string]: T['relations'][K] extends BelongsTo ? BelongsToInfo<T, K, T['relations'][K]['options']['columns'][number] & string, T['relations'][K]['options']['required'], BelongsToQuery<RelationTableToQuery<T['relations'][K]>, K>> : T['relations'][K] extends HasOne ? HasOneInfo<T, K, T['relations'][K], HasOneQuery<T, K, RelationTableToQuery<T['relations'][K]>>> : T['relations'][K] extends HasMany ? HasManyInfo<T, K, T['relations'][K], HasManyQuery<T, K, RelationTableToQuery<T['relations'][K]>>> : T['relations'][K] extends HasAndBelongsToMany ? HasAndBelongsToManyInfo<T, K, T['relations'][K]['options']['columns'][number] & string, HasAndBelongsToManyQuery<K, RelationTableToQuery<T['relations'][K]>>> : never;
|
|
436
|
-
} : EmptyObject> : TableToDb<T, EmptyObject>;
|
|
437
439
|
interface ORMTableInput {
|
|
438
440
|
table: string;
|
|
439
441
|
columns: {
|
|
@@ -726,4 +728,4 @@ declare const createRepo: <T extends Query, Methods extends MethodsBase<T>>(tabl
|
|
|
726
728
|
shape: T['shape'];
|
|
727
729
|
}>(q: Q) => Query & Q & MapMethods<T, Methods>) & T, Methods>;
|
|
728
730
|
|
|
729
|
-
export { type BaseTableClass, type BaseTableInstance, type DefaultSelect, type Insertable, type MapMethods, type MapQueryMethods, type MethodsBase, type ORMTableInput, type
|
|
731
|
+
export { type BaseTableClass, type BaseTableInstance, type DefaultSelect, type Insertable, type MapMethods, type MapQueryMethods, type MethodsBase, type ORMTableInput, type OrchidORM, type OrchidOrmParam, type Queryable, type Repo, type Selectable, type SetColumnsResult, type Table, type TableClass, type TableClasses, type TableInfo, type TableToDb, type Updatable, createBaseTable, createRepo, orchidORMWithAdapter };
|