orchid-orm 1.17.3 → 1.17.4
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 +62 -46
- package/dist/index.js.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import * as pqb from 'pqb';
|
|
|
2
2
|
import { Query, QueryWithTable, SetQueryTableAlias, WhereArg, UpdateData, CreateData, Db, IsolationLevel, TransactionOptions, Adapter, FromArgs, FromResult, AdapterOptions, QueryLogOptions, NoPrimaryKeyOption, RelationConfigBase, RelationQuery, SetQueryReturnsOne, SetQueryReturnsOneOptional, SetQueryReturnsAll, RelationQueryBase, ColumnsShape, DefaultColumnTypes, QueryData, QueryBase, QueryBeforeHook, QueryAfterHook, AfterHook, WhereResult, MergeQuery, SetQueryReturns, QueryReturnType } from 'pqb';
|
|
3
3
|
export { OrchidOrmError, OrchidOrmInternalError, columnTypes, raw, testTransaction } from 'pqb';
|
|
4
4
|
import * as orchid_core from 'orchid-core';
|
|
5
|
-
import { EmptyObject, MaybeArray, ColumnTypesBase, ColumnShapeQueryType, ColumnShapeOutput, ColumnShapeInput, ColumnsShapeBase } from 'orchid-core';
|
|
5
|
+
import { EmptyObject, MaybeArray, StringKey, ColumnTypesBase, ColumnShapeQueryType, ColumnShapeOutput, ColumnShapeInput, ColumnsShapeBase } from 'orchid-core';
|
|
6
6
|
|
|
7
7
|
type RelationCommonOptions<Related extends TableClass = TableClass, Scope extends Query = Query> = {
|
|
8
8
|
scope?: ScopeFn<Related, Scope>;
|
|
@@ -28,17 +28,24 @@ type BelongsTo = RelationThunkBase & {
|
|
|
28
28
|
options: BelongsToOptions;
|
|
29
29
|
};
|
|
30
30
|
type BelongsToOptions<Self extends Table = Table, Related extends TableClass = TableClass, Scope extends Query = Query> = RelationCommonOptions<Related, Scope> & RelationRefsOrKeysOptions<keyof Self['columns'], keyof InstanceType<Related>['columns'], keyof InstanceType<Related>['columns'], keyof Self['columns']>;
|
|
31
|
-
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
|
|
31
|
+
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<{
|
|
32
|
+
nestedCreateQuery: Q;
|
|
33
|
+
table: Q;
|
|
34
|
+
}>, Required = Relation['options']['required'] extends true ? true : false> = {
|
|
32
35
|
table: Q;
|
|
33
36
|
query: Q;
|
|
34
37
|
joinQuery(fromQuery: Query, toQuery: Query): Query;
|
|
35
38
|
one: true;
|
|
36
|
-
required:
|
|
39
|
+
required: Required;
|
|
37
40
|
omitForeignKeyInCreate: FK;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
41
|
+
requiredDataForCreate: {
|
|
42
|
+
[L in FK]: T['columns'][L]['inputType'];
|
|
43
|
+
} | (Required extends true ? {
|
|
44
|
+
[Key in K]: DataForCreate;
|
|
45
|
+
} : {
|
|
46
|
+
[Key in K]?: DataForCreate;
|
|
47
|
+
});
|
|
48
|
+
optionalDataForCreate: EmptyObject;
|
|
42
49
|
dataForUpdate: {
|
|
43
50
|
disconnect: boolean;
|
|
44
51
|
} | {
|
|
@@ -80,10 +87,13 @@ type HasManyInfo<T extends Table, Relations extends RelationThunks, Relation ext
|
|
|
80
87
|
one: false;
|
|
81
88
|
required: Relation['options']['required'] extends true ? true : false;
|
|
82
89
|
omitForeignKeyInCreate: never;
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
90
|
+
requiredDataForCreate: EmptyObject;
|
|
91
|
+
optionalDataForCreate: {
|
|
92
|
+
[P in K]?: Relation['options'] extends RelationThroughOptions ? EmptyObject : RelationToManyDataForCreate<{
|
|
93
|
+
nestedCreateQuery: NestedCreateQuery;
|
|
94
|
+
table: Q;
|
|
95
|
+
}>;
|
|
96
|
+
};
|
|
87
97
|
dataForUpdate: {
|
|
88
98
|
disconnect?: MaybeArray<WhereArg<Q>>;
|
|
89
99
|
delete?: MaybeArray<WhereArg<Q>>;
|
|
@@ -98,7 +108,7 @@ type HasManyInfo<T extends Table, Relations extends RelationThunks, Relation ext
|
|
|
98
108
|
};
|
|
99
109
|
params: Relation['options'] extends RelationRefsOptions ? {
|
|
100
110
|
[K in Relation['options']['columns'][number]]: T['columns'][K]['type'];
|
|
101
|
-
} : Relation['options'] extends RelationKeysOptions ? Record<Relation['options']['primaryKey'], T['columns'][Relation['options']['primaryKey']]['type']> : Relation['options'] extends RelationThroughOptions ? RelationConfig<T, Relations, Relations[Relation['options']['through']]>['params'] : never;
|
|
111
|
+
} : Relation['options'] extends RelationKeysOptions ? Record<Relation['options']['primaryKey'], T['columns'][Relation['options']['primaryKey']]['type']> : Relation['options'] extends RelationThroughOptions ? RelationConfig<T, Relations, Relations[Relation['options']['through']], Relation['options']['through']>['params'] : never;
|
|
102
112
|
populate: Populate;
|
|
103
113
|
chainedCreate: Relation['options'] extends RelationThroughOptions ? false : true;
|
|
104
114
|
chainedDelete: true;
|
|
@@ -120,10 +130,13 @@ type HasOneInfo<T extends Table, Relations extends RelationThunks, Relation exte
|
|
|
120
130
|
one: true;
|
|
121
131
|
required: Relation['options']['required'] extends true ? true : false;
|
|
122
132
|
omitForeignKeyInCreate: never;
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
133
|
+
requiredDataForCreate: EmptyObject;
|
|
134
|
+
optionalDataForCreate: Relation['options'] extends RelationThroughOptions ? EmptyObject : {
|
|
135
|
+
[P in K]?: RelationToOneDataForCreate<{
|
|
136
|
+
nestedCreateQuery: NestedCreateQuery;
|
|
137
|
+
table: Q;
|
|
138
|
+
}>;
|
|
139
|
+
};
|
|
127
140
|
dataForUpdate: {
|
|
128
141
|
disconnect: boolean;
|
|
129
142
|
} | {
|
|
@@ -143,7 +156,7 @@ type HasOneInfo<T extends Table, Relations extends RelationThunks, Relation exte
|
|
|
143
156
|
};
|
|
144
157
|
params: Relation['options'] extends RelationRefsOptions ? {
|
|
145
158
|
[K in Relation['options']['columns'][number]]: T['columns'][K]['type'];
|
|
146
|
-
} : Relation['options'] extends RelationKeysOptions ? Record<Relation['options']['primaryKey'], T['columns'][Relation['options']['primaryKey']]['type']> : Relation['options'] extends RelationThroughOptions ? RelationConfig<T, Relations, Relations[Relation['options']['through']]>['params'] : never;
|
|
159
|
+
} : Relation['options'] extends RelationKeysOptions ? Record<Relation['options']['primaryKey'], T['columns'][Relation['options']['primaryKey']]['type']> : Relation['options'] extends RelationThroughOptions ? RelationConfig<T, Relations, Relations[Relation['options']['through']], Relation['options']['through']>['params'] : never;
|
|
147
160
|
populate: Populate;
|
|
148
161
|
chainedCreate: Relation['options'] extends RelationThroughOptions ? false : true;
|
|
149
162
|
chainedDelete: true;
|
|
@@ -257,10 +270,13 @@ type HasAndBelongsToManyInfo<T extends Table, Relation extends HasAndBelongsToMa
|
|
|
257
270
|
one: false;
|
|
258
271
|
required: Relation['options']['required'] extends true ? true : false;
|
|
259
272
|
omitForeignKeyInCreate: never;
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
273
|
+
requiredDataForCreate: EmptyObject;
|
|
274
|
+
optionalDataForCreate: {
|
|
275
|
+
[P in K]?: RelationToManyDataForCreate<{
|
|
276
|
+
nestedCreateQuery: Q;
|
|
277
|
+
table: Q;
|
|
278
|
+
}>;
|
|
279
|
+
};
|
|
264
280
|
dataForUpdate: {
|
|
265
281
|
disconnect?: MaybeArray<WhereArg<Q>>;
|
|
266
282
|
set?: MaybeArray<WhereArg<Q>>;
|
|
@@ -323,8 +339,8 @@ type RelationThunk = BelongsTo | HasOne | HasMany | HasAndBelongsToMany;
|
|
|
323
339
|
type RelationThunks = Record<string, RelationThunk>;
|
|
324
340
|
type RelationScopeOrTable<Relation extends RelationThunkBase> = Relation['options']['scope'] extends (q: Query) => Query ? ReturnType<Relation['options']['scope']> : RelationQueryFromFn<Relation>;
|
|
325
341
|
type RelationQueryFromFn<Relation extends RelationThunkBase, TC extends TableClass = ReturnType<Relation['fn']>, Q extends Query = DbTable<TC>> = Q;
|
|
326
|
-
type RelationConfig<T extends Table = Table, Relations extends RelationThunks = RelationThunks, Relation extends RelationThunk = RelationThunk, K extends
|
|
327
|
-
type MapRelation<T extends Table, Relations extends RelationThunks, RelationName extends keyof Relations, Relation extends RelationThunk = Relations[RelationName], RelatedQuery extends Query = RelationScopeOrTable<Relation>, Config extends RelationConfigBase = RelationConfig<T, Relations, Relation>> = RelationQuery<RelationName, Config, Config['one'] extends true ? Config['required'] extends true ? SetQueryReturnsOne<RelatedQuery> : SetQueryReturnsOneOptional<RelatedQuery> : SetQueryReturnsAll<RelatedQuery>>;
|
|
342
|
+
type RelationConfig<T extends Table = Table, Relations extends RelationThunks = RelationThunks, Relation extends RelationThunk = RelationThunk, K extends PropertyKey = PropertyKey, Result extends RelationConfigBase = Relation extends BelongsTo ? BelongsToInfo<T, Relation, StringKey<K>> : Relation extends HasOne ? HasOneInfo<T, Relations, Relation, StringKey<K>> : Relation extends HasMany ? HasManyInfo<T, Relations, Relation, StringKey<K>> : Relation extends HasAndBelongsToMany ? HasAndBelongsToManyInfo<T, Relation, StringKey<K>> : never> = Result;
|
|
343
|
+
type MapRelation<T extends Table, Relations extends RelationThunks, RelationName extends keyof Relations, Relation extends RelationThunk = Relations[RelationName], RelatedQuery extends Query = RelationScopeOrTable<Relation>, Config extends RelationConfigBase = RelationConfig<T, Relations, Relation, RelationName>> = RelationQuery<RelationName, Config, Config['one'] extends true ? Config['required'] extends true ? SetQueryReturnsOne<RelatedQuery> : SetQueryReturnsOneOptional<RelatedQuery> : SetQueryReturnsAll<RelatedQuery>>;
|
|
328
344
|
type MapRelations<T extends Table> = T extends {
|
|
329
345
|
relations: RelationThunks;
|
|
330
346
|
} ? {
|
|
@@ -470,19 +486,19 @@ declare const createBaseTable: <ColumnTypes extends Record<string, orchid_core.A
|
|
|
470
486
|
unknown: () => orchid_core.JSONUnknown;
|
|
471
487
|
boolean: () => orchid_core.JSONBoolean;
|
|
472
488
|
null: () => orchid_core.JSONNull;
|
|
473
|
-
number: () => orchid_core.JSONNumber
|
|
474
|
-
string: () => orchid_core.JSONString
|
|
475
|
-
array: <
|
|
489
|
+
number: <T_5 extends number = number>() => orchid_core.JSONNumber<T_5>;
|
|
490
|
+
string: <T_6 extends string = string>() => orchid_core.JSONString<T_6>;
|
|
491
|
+
array: <T_7 extends orchid_core.JSONType<unknown, {}>>(item: T_7) => orchid_core.JSONArray<T_7, "many">;
|
|
476
492
|
object: <Shape extends orchid_core.JSONObjectShape>(shape: Shape) => orchid_core.JSONObject<Shape, "strip", orchid_core.JSONType<unknown, {}>>;
|
|
477
|
-
literal: <
|
|
493
|
+
literal: <T_8 extends orchid_core.JSONPrimitive>(value: T_8) => orchid_core.JSONLiteral<T_8>;
|
|
478
494
|
discriminatedUnion: <Discriminator extends string, Types extends orchid_core.JSONDiscriminatedUnionArg<Discriminator>>(discriminator: Discriminator, types: Types) => orchid_core.JSONDiscriminatedUnion<Discriminator, Types>;
|
|
479
|
-
enum: <U_1 extends string,
|
|
495
|
+
enum: <U_1 extends string, T_9 extends [U_1, ...U_1[]]>(options: T_9) => orchid_core.JSONEnum<string, T_9>;
|
|
480
496
|
intersection: <Left extends orchid_core.JSONType<unknown, {}>, Right extends orchid_core.JSONType<unknown, {}>>(left: Left, right: Right) => orchid_core.JSONIntersection<Left, Right>;
|
|
481
|
-
lazy: <
|
|
482
|
-
nativeEnum: <
|
|
483
|
-
record: <Key extends orchid_core.
|
|
484
|
-
tuple: <
|
|
485
|
-
union: <
|
|
497
|
+
lazy: <T_10 extends orchid_core.JSONType<unknown, {}>>(fn: () => T_10) => orchid_core.JSONLazy<T_10>;
|
|
498
|
+
nativeEnum: <T_11 extends orchid_core.EnumLike>(type: T_11) => orchid_core.JSONNativeEnum<T_11>;
|
|
499
|
+
record: <Key extends orchid_core.JSONString<string> | orchid_core.JSONNumber<number>, Value extends orchid_core.JSONType<unknown, {}>>(...args: [value: Value] | [key: Key, value: Value]) => orchid_core.JSONRecord<Key, Value>;
|
|
500
|
+
tuple: <T_12 extends orchid_core.JSONTupleItems, Rest extends orchid_core.JSONType<unknown, {}> | undefined = undefined>(items: T_12, rest?: Rest | undefined) => orchid_core.JSONTuple<T_12, Rest>;
|
|
501
|
+
union: <T_13 extends orchid_core.JSONUnionArgs>(...types: T_13) => orchid_core.JSONUnion<T_13>;
|
|
486
502
|
}) => Type) | undefined): pqb.JSONColumn<Type>;
|
|
487
503
|
jsonText(): pqb.JSONTextColumn;
|
|
488
504
|
array<Item extends pqb.ColumnType<unknown, pqb.BaseOperators, unknown, unknown, unknown>>(item: Item): pqb.ArrayColumn<Item>;
|
|
@@ -510,9 +526,9 @@ declare const createBaseTable: <ColumnTypes extends Record<string, orchid_core.A
|
|
|
510
526
|
language: string | undefined;
|
|
511
527
|
filePath: string;
|
|
512
528
|
result: ColumnsShapeBase;
|
|
513
|
-
clone<
|
|
529
|
+
clone<T_14 extends QueryBase>(this: T_14): T_14;
|
|
514
530
|
getFilePath(): string;
|
|
515
|
-
setColumns<
|
|
531
|
+
setColumns<T_15 extends ColumnsShape>(fn: (t: Record<string, orchid_core.AnyColumnTypeCreator> extends ColumnTypes ? {
|
|
516
532
|
timestamps<T extends orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, unknown, unknown, orchid_core.ColumnDataBase>>(this: {
|
|
517
533
|
name(name: string): {
|
|
518
534
|
timestamp(): T;
|
|
@@ -610,19 +626,19 @@ declare const createBaseTable: <ColumnTypes extends Record<string, orchid_core.A
|
|
|
610
626
|
unknown: () => orchid_core.JSONUnknown;
|
|
611
627
|
boolean: () => orchid_core.JSONBoolean;
|
|
612
628
|
null: () => orchid_core.JSONNull;
|
|
613
|
-
number: () => orchid_core.JSONNumber
|
|
614
|
-
string: () => orchid_core.JSONString
|
|
615
|
-
array: <
|
|
629
|
+
number: <T_5 extends number = number>() => orchid_core.JSONNumber<T_5>;
|
|
630
|
+
string: <T_6 extends string = string>() => orchid_core.JSONString<T_6>;
|
|
631
|
+
array: <T_7 extends orchid_core.JSONType<unknown, {}>>(item: T_7) => orchid_core.JSONArray<T_7, "many">;
|
|
616
632
|
object: <Shape extends orchid_core.JSONObjectShape>(shape: Shape) => orchid_core.JSONObject<Shape, "strip", orchid_core.JSONType<unknown, {}>>;
|
|
617
|
-
literal: <
|
|
633
|
+
literal: <T_8 extends orchid_core.JSONPrimitive>(value: T_8) => orchid_core.JSONLiteral<T_8>;
|
|
618
634
|
discriminatedUnion: <Discriminator extends string, Types extends orchid_core.JSONDiscriminatedUnionArg<Discriminator>>(discriminator: Discriminator, types: Types) => orchid_core.JSONDiscriminatedUnion<Discriminator, Types>;
|
|
619
|
-
enum: <U_1 extends string,
|
|
635
|
+
enum: <U_1 extends string, T_9 extends [U_1, ...U_1[]]>(options: T_9) => orchid_core.JSONEnum<string, T_9>;
|
|
620
636
|
intersection: <Left extends orchid_core.JSONType<unknown, {}>, Right extends orchid_core.JSONType<unknown, {}>>(left: Left, right: Right) => orchid_core.JSONIntersection<Left, Right>;
|
|
621
|
-
lazy: <
|
|
622
|
-
nativeEnum: <
|
|
623
|
-
record: <Key extends orchid_core.
|
|
624
|
-
tuple: <
|
|
625
|
-
union: <
|
|
637
|
+
lazy: <T_10 extends orchid_core.JSONType<unknown, {}>>(fn: () => T_10) => orchid_core.JSONLazy<T_10>;
|
|
638
|
+
nativeEnum: <T_11 extends orchid_core.EnumLike>(type: T_11) => orchid_core.JSONNativeEnum<T_11>;
|
|
639
|
+
record: <Key extends orchid_core.JSONString<string> | orchid_core.JSONNumber<number>, Value extends orchid_core.JSONType<unknown, {}>>(...args: [value: Value] | [key: Key, value: Value]) => orchid_core.JSONRecord<Key, Value>;
|
|
640
|
+
tuple: <T_12 extends orchid_core.JSONTupleItems, Rest extends orchid_core.JSONType<unknown, {}> | undefined = undefined>(items: T_12, rest?: Rest | undefined) => orchid_core.JSONTuple<T_12, Rest>;
|
|
641
|
+
union: <T_13 extends orchid_core.JSONUnionArgs>(...types: T_13) => orchid_core.JSONUnion<T_13>;
|
|
626
642
|
}) => Type) | undefined): pqb.JSONColumn<Type>;
|
|
627
643
|
jsonText(): pqb.JSONTextColumn;
|
|
628
644
|
array<Item extends pqb.ColumnType<unknown, pqb.BaseOperators, unknown, unknown, unknown>>(item: Item): pqb.ArrayColumn<Item>;
|
|
@@ -645,7 +661,7 @@ declare const createBaseTable: <ColumnTypes extends Record<string, orchid_core.A
|
|
|
645
661
|
dropMode?: pqb.DropMode | undefined;
|
|
646
662
|
}) | undefined): {};
|
|
647
663
|
check(check: orchid_core.RawSQLBase<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, unknown, unknown, orchid_core.ColumnDataBase>, {}>): {};
|
|
648
|
-
} : ColumnTypes) =>
|
|
664
|
+
} : ColumnTypes) => T_15): T_15;
|
|
649
665
|
belongsTo<Self extends any, Related extends TableClass<Table>, Scope extends Query, Options extends BelongsToOptions<Self, Related, Scope>>(this: Self, fn: () => Related, options: Options): {
|
|
650
666
|
type: "belongsTo";
|
|
651
667
|
fn: () => Related;
|