orchid-orm-test-factory 1.0.116 → 1.0.118
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 +53 -82
- package/dist/index.js +452 -606
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +423 -597
- package/dist/index.mjs.map +1 -1
- package/package.json +14 -9
package/dist/index.d.ts
CHANGED
|
@@ -1,104 +1,75 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { Column, ColumnsShape, CreateData, CreateSelf, EmptyObject, MaybePromise, PickQueryShape, RecordUnknown } from "pqb/internal";
|
|
3
2
|
type ColumnFactory = (sequence: number) => unknown;
|
|
4
3
|
interface FakeDataDefineColumnFactories {
|
|
5
|
-
|
|
4
|
+
[K: string]: (column: Column.Pick.Data) => ColumnFactory;
|
|
6
5
|
}
|
|
7
6
|
interface ColumnFactories {
|
|
8
|
-
|
|
7
|
+
[K: string]: ColumnFactory;
|
|
9
8
|
}
|
|
10
9
|
interface FactoryConfig {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
sequence?: number;
|
|
11
|
+
sequenceDistance?: number;
|
|
12
|
+
maxTextLength?: number;
|
|
13
|
+
fakeDataForTypes?: FakeDataDefineColumnFactories;
|
|
15
14
|
}
|
|
16
|
-
type FactoryExtend<T extends PickQueryShape> = {
|
|
17
|
-
[K in keyof T['shape']]?: (sequence: number) => T['shape'][K]['outputType'];
|
|
18
|
-
};
|
|
15
|
+
type FactoryExtend<T extends PickQueryShape> = { [K in keyof T['shape']]?: (sequence: number) => T['shape'][K]['outputType'] };
|
|
19
16
|
interface TableFactoryConfig<T extends PickQueryShape> extends FactoryConfig {
|
|
20
|
-
|
|
17
|
+
extend?: FactoryExtend<T>;
|
|
21
18
|
}
|
|
22
19
|
interface OrmFactoryConfig<T> extends FactoryConfig {
|
|
23
|
-
|
|
24
|
-
[K in keyof T]?: T[K] extends PickQueryShape ? FactoryExtend<T[K]> : never;
|
|
25
|
-
};
|
|
20
|
+
extend?: { [K in keyof T]?: T[K] extends PickQueryShape ? FactoryExtend<T[K]> : never };
|
|
26
21
|
}
|
|
27
22
|
type metaKey = typeof metaKey;
|
|
28
23
|
declare const metaKey: unique symbol;
|
|
29
|
-
type Result<T extends TestFactory, Data, Omitted = Omit<Data, keyof T[metaKey]['omit']>> = EmptyObject extends T[metaKey]['pick'] ? Omitted : Pick<Omitted, {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
type
|
|
33
|
-
[K in keyof T[metaKey]['type']]?: T[metaKey]['type'][K] | ((sequence: number) => T[metaKey]['type'][K]);
|
|
34
|
-
} & RecordUnknown;
|
|
35
|
-
type BuildResult<T extends TestFactory, Data extends BuildArg<T>> = Result<T, BuildArg<T> extends Data ? T[metaKey]['type'] : T[metaKey]['type'] & {
|
|
36
|
-
[K in keyof Data]: Data[K] extends () => void ? ReturnType<Data[K]> : Data[K];
|
|
37
|
-
}>;
|
|
38
|
-
type CreateArg<T extends TestFactory> = CreateData<{
|
|
39
|
-
[K in keyof T['table']]: K extends 'inputType' ? {
|
|
40
|
-
[K in keyof T['table']['inputType']]?: T['table']['inputType'][K] | ((sequence: number) => MaybePromise<T['table']['inputType'][K]>);
|
|
41
|
-
} : T['table'][K];
|
|
42
|
-
}>;
|
|
24
|
+
type Result<T extends TestFactory, Data, Omitted = Omit<Data, keyof T[metaKey]['omit']>> = EmptyObject extends T[metaKey]['pick'] ? Omitted : Pick<Omitted, { [K in keyof Omitted]: K extends keyof T[metaKey]['pick'] ? K : never }[keyof Omitted]>;
|
|
25
|
+
type BuildArg<T extends TestFactory> = { [K in keyof T[metaKey]['type']]?: T[metaKey]['type'][K] | ((sequence: number) => T[metaKey]['type'][K]) } & RecordUnknown;
|
|
26
|
+
type BuildResult<T extends TestFactory, Data extends BuildArg<T>> = Result<T, BuildArg<T> extends Data ? T[metaKey]['type'] : T[metaKey]['type'] & { [K in keyof Data]: Data[K] extends (() => void) ? ReturnType<Data[K]> : Data[K] }>;
|
|
27
|
+
type CreateArg<T extends TestFactory> = CreateData<{ [K in keyof T['table']]: K extends 'inputType' ? { [K in keyof T['table']['inputType']]?: T['table']['inputType'][K] | ((sequence: number) => MaybePromise<T['table']['inputType'][K]>) } : T['table'][K] }>;
|
|
43
28
|
type CreateResult<T extends TestFactory> = Result<T, ColumnsShape.Output<T['table']['shape']>>;
|
|
44
29
|
declare class TestFactory<Q extends CreateSelf = CreateSelf, Type extends EmptyObject = EmptyObject> {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
[metaKey]: Meta & {
|
|
67
|
-
type: Data;
|
|
68
|
-
};
|
|
69
|
-
};
|
|
70
|
-
omit<T extends this, Keys extends {
|
|
71
|
-
[K in keyof T[metaKey]['type']]?: true;
|
|
72
|
-
}>(this: T, keys: Keys): T & {
|
|
73
|
-
[metaKey]: T[metaKey] & {
|
|
74
|
-
omit: Keys;
|
|
75
|
-
};
|
|
30
|
+
table: Q;
|
|
31
|
+
private columnFactories;
|
|
32
|
+
sequence: number;
|
|
33
|
+
private readonly omitValues;
|
|
34
|
+
private readonly pickValues;
|
|
35
|
+
private readonly data;
|
|
36
|
+
private columnFactoriesNoPkeys?;
|
|
37
|
+
[metaKey]: {
|
|
38
|
+
type: Type;
|
|
39
|
+
omit: EmptyObject;
|
|
40
|
+
pick: EmptyObject;
|
|
41
|
+
};
|
|
42
|
+
constructor(table: Q, columnFactories: ColumnFactories, options?: TableFactoryConfig<PickQueryShape>);
|
|
43
|
+
private getColumnFactoriesNoPkeys;
|
|
44
|
+
set<T extends this, Meta extends {
|
|
45
|
+
type: EmptyObject;
|
|
46
|
+
}, Data extends { [K in keyof Meta['type']]?: Meta['type'][K] | (() => Meta['type'][K]) } & RecordUnknown>(this: T & {
|
|
47
|
+
[metaKey]: Meta;
|
|
48
|
+
}, data: Data): T & {
|
|
49
|
+
[metaKey]: Meta & {
|
|
50
|
+
type: Data;
|
|
76
51
|
};
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
pick: Keys;
|
|
82
|
-
};
|
|
52
|
+
};
|
|
53
|
+
omit<T extends this, Keys extends { [K in keyof T[metaKey]['type']]?: true }>(this: T, keys: Keys): T & {
|
|
54
|
+
[metaKey]: T[metaKey] & {
|
|
55
|
+
omit: Keys;
|
|
83
56
|
};
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
57
|
+
};
|
|
58
|
+
pick<T extends this, Keys extends { [K in keyof T[metaKey]['type']]?: true }>(this: T, keys: Keys): T & {
|
|
59
|
+
[metaKey]: T[metaKey] & {
|
|
60
|
+
pick: Keys;
|
|
88
61
|
};
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
62
|
+
};
|
|
63
|
+
build<T extends this, Data extends BuildArg<T>>(this: T, data?: Data): BuildResult<T, Data>;
|
|
64
|
+
buildList<T extends this, Data extends BuildArg<T>>(this: T, qty: number, data?: Data): BuildResult<T, Data>[];
|
|
65
|
+
buildMany<T extends this, Args extends BuildArg<T>[]>(this: T, ...arr: Args): { [I in keyof Args]: BuildResult<T, Args[I]> };
|
|
66
|
+
create<T extends this, Data extends CreateArg<T>>(this: T, data?: Data): Promise<CreateResult<T>>;
|
|
67
|
+
createList<T extends this, Data extends CreateArg<T>>(this: T, qty: number, data?: Data): Promise<CreateResult<T>[]>;
|
|
68
|
+
createMany<T extends this, Args extends CreateArg<T>[]>(this: T, ...arr: Args): Promise<{ [K in keyof Args]: CreateResult<T> }>;
|
|
69
|
+
extend<T extends this>(this: T): new () => TestFactory<Q, Type>;
|
|
95
70
|
}
|
|
96
71
|
type TableFactory<T extends CreateSelf> = TestFactory<T, ColumnsShape.Output<T['shape']>>;
|
|
97
72
|
declare const tableFactory: <T extends CreateSelf>(table: T, config?: TableFactoryConfig<T>) => TableFactory<T>;
|
|
98
|
-
type ORMFactory<T> = {
|
|
99
|
-
[K in keyof T]: T[K] extends CreateSelf ? TableFactory<T[K]> : never;
|
|
100
|
-
};
|
|
73
|
+
type ORMFactory<T> = { [K in keyof T]: T[K] extends CreateSelf ? TableFactory<T[K]> : never };
|
|
101
74
|
declare const ormFactory: <T>(orm: T, options?: OrmFactoryConfig<T>) => ORMFactory<T>;
|
|
102
|
-
|
|
103
|
-
export { TestFactory, ormFactory, tableFactory };
|
|
104
|
-
export type { CreateArg, FactoryConfig, OrmFactoryConfig, TableFactoryConfig };
|
|
75
|
+
export { CreateArg, FactoryConfig, OrmFactoryConfig, TableFactoryConfig, TestFactory, ormFactory, tableFactory };
|