drizzle-seed 0.1.2 → 0.1.3-e14a5a2
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.
Potentially problematic release.
This version of drizzle-seed might be problematic. Click here for more details.
- package/index.cjs +718 -307
- package/index.cjs.map +1 -1
- package/index.d.cts +52 -10
- package/index.d.mts +52 -10
- package/index.d.ts +52 -10
- package/index.mjs +718 -309
- package/index.mjs.map +1 -1
- package/package.json +3 -3
- package/services/GeneratorsWrappers.d.cts +232 -47
- package/services/GeneratorsWrappers.d.mts +232 -47
- package/services/GeneratorsWrappers.d.ts +232 -47
- package/services/SeedService.d.cts +80 -34
- package/services/SeedService.d.mts +80 -34
- package/services/SeedService.d.ts +80 -34
- package/services/utils.d.cts +2 -0
- package/services/utils.d.mts +2 -0
- package/services/utils.d.ts +2 -0
- package/types/seedService.d.cts +4 -0
- package/types/seedService.d.mts +4 -0
- package/types/seedService.d.ts +4 -0
- package/types/tables.d.cts +7 -0
- package/types/tables.d.mts +7 -0
- package/types/tables.d.ts +7 -0
- package/tests/benchmarks/generatorsBenchmark.d.cts +0 -1
- package/tests/benchmarks/generatorsBenchmark.d.mts +0 -1
- package/tests/benchmarks/generatorsBenchmark.d.ts +0 -1
- package/tests/mysql/allDataTypesTest/drizzle.config.d.cts +0 -2
- package/tests/mysql/allDataTypesTest/drizzle.config.d.mts +0 -2
- package/tests/mysql/allDataTypesTest/drizzle.config.d.ts +0 -2
- package/tests/mysql/allDataTypesTest/mysqlSchema.d.cts +0 -466
- package/tests/mysql/allDataTypesTest/mysqlSchema.d.mts +0 -466
- package/tests/mysql/allDataTypesTest/mysqlSchema.d.ts +0 -466
- package/tests/mysql/allDataTypesTest/mysql_all_data_types.test.d.cts +0 -1
- package/tests/mysql/allDataTypesTest/mysql_all_data_types.test.d.mts +0 -1
- package/tests/mysql/allDataTypesTest/mysql_all_data_types.test.d.ts +0 -1
- package/tests/mysql/drizzle.config.d.cts +0 -2
- package/tests/mysql/drizzle.config.d.mts +0 -2
- package/tests/mysql/drizzle.config.d.ts +0 -2
- package/tests/mysql/generatorsTest/drizzle.config.d.cts +0 -2
- package/tests/mysql/generatorsTest/drizzle.config.d.mts +0 -2
- package/tests/mysql/generatorsTest/drizzle.config.d.ts +0 -2
- package/tests/mysql/generatorsTest/generators.test.d.cts +0 -1
- package/tests/mysql/generatorsTest/generators.test.d.mts +0 -1
- package/tests/mysql/generatorsTest/generators.test.d.ts +0 -1
- package/tests/mysql/generatorsTest/mysqlSchema.d.cts +0 -48
- package/tests/mysql/generatorsTest/mysqlSchema.d.mts +0 -48
- package/tests/mysql/generatorsTest/mysqlSchema.d.ts +0 -48
- package/tests/mysql/mysql.test.d.cts +0 -1
- package/tests/mysql/mysql.test.d.mts +0 -1
- package/tests/mysql/mysql.test.d.ts +0 -1
- package/tests/mysql/mysqlSchema.d.cts +0 -1130
- package/tests/mysql/mysqlSchema.d.mts +0 -1130
- package/tests/mysql/mysqlSchema.d.ts +0 -1130
- package/tests/northwind/mysqlSchema.d.cts +0 -1130
- package/tests/northwind/mysqlSchema.d.mts +0 -1130
- package/tests/northwind/mysqlSchema.d.ts +0 -1130
- package/tests/northwind/mysqlTest.d.cts +0 -1
- package/tests/northwind/mysqlTest.d.mts +0 -1
- package/tests/northwind/mysqlTest.d.ts +0 -1
- package/tests/northwind/pgSchema.d.cts +0 -1131
- package/tests/northwind/pgSchema.d.mts +0 -1131
- package/tests/northwind/pgSchema.d.ts +0 -1131
- package/tests/northwind/pgTest.d.cts +0 -1
- package/tests/northwind/pgTest.d.mts +0 -1
- package/tests/northwind/pgTest.d.ts +0 -1
- package/tests/northwind/sqliteSchema.d.cts +0 -1130
- package/tests/northwind/sqliteSchema.d.mts +0 -1130
- package/tests/northwind/sqliteSchema.d.ts +0 -1130
- package/tests/northwind/sqliteTest.d.cts +0 -1
- package/tests/northwind/sqliteTest.d.mts +0 -1
- package/tests/northwind/sqliteTest.d.ts +0 -1
- package/tests/pg/allDataTypesTest/drizzle.config.d.cts +0 -2
- package/tests/pg/allDataTypesTest/drizzle.config.d.mts +0 -2
- package/tests/pg/allDataTypesTest/drizzle.config.d.ts +0 -2
- package/tests/pg/allDataTypesTest/pgSchema.d.cts +0 -509
- package/tests/pg/allDataTypesTest/pgSchema.d.mts +0 -509
- package/tests/pg/allDataTypesTest/pgSchema.d.ts +0 -509
- package/tests/pg/allDataTypesTest/pg_all_data_types.test.d.cts +0 -1
- package/tests/pg/allDataTypesTest/pg_all_data_types.test.d.mts +0 -1
- package/tests/pg/allDataTypesTest/pg_all_data_types.test.d.ts +0 -1
- package/tests/pg/drizzle.config.d.cts +0 -2
- package/tests/pg/drizzle.config.d.mts +0 -2
- package/tests/pg/drizzle.config.d.ts +0 -2
- package/tests/pg/generatorsTest/drizzle.config.d.cts +0 -2
- package/tests/pg/generatorsTest/drizzle.config.d.mts +0 -2
- package/tests/pg/generatorsTest/drizzle.config.d.ts +0 -2
- package/tests/pg/generatorsTest/generators.test.d.cts +0 -1
- package/tests/pg/generatorsTest/generators.test.d.mts +0 -1
- package/tests/pg/generatorsTest/generators.test.d.ts +0 -1
- package/tests/pg/generatorsTest/pgSchema.d.cts +0 -1136
- package/tests/pg/generatorsTest/pgSchema.d.mts +0 -1136
- package/tests/pg/generatorsTest/pgSchema.d.ts +0 -1136
- package/tests/pg/pg.test.d.cts +0 -1
- package/tests/pg/pg.test.d.mts +0 -1
- package/tests/pg/pg.test.d.ts +0 -1
- package/tests/pg/pgSchema.d.cts +0 -1189
- package/tests/pg/pgSchema.d.mts +0 -1189
- package/tests/pg/pgSchema.d.ts +0 -1189
- package/tests/sqlite/allDataTypesTest/sqliteSchema.d.cts +0 -194
- package/tests/sqlite/allDataTypesTest/sqliteSchema.d.mts +0 -194
- package/tests/sqlite/allDataTypesTest/sqliteSchema.d.ts +0 -194
- package/tests/sqlite/allDataTypesTest/sqlite_all_data_types.test.d.cts +0 -1
- package/tests/sqlite/allDataTypesTest/sqlite_all_data_types.test.d.mts +0 -1
- package/tests/sqlite/allDataTypesTest/sqlite_all_data_types.test.d.ts +0 -1
- package/tests/sqlite/sqlite.test.d.cts +0 -1
- package/tests/sqlite/sqlite.test.d.mts +0 -1
- package/tests/sqlite/sqlite.test.d.ts +0 -1
- package/tests/sqlite/sqliteSchema.d.cts +0 -1130
- package/tests/sqlite/sqliteSchema.d.mts +0 -1130
- package/tests/sqlite/sqliteSchema.d.ts +0 -1130
- package/tests/vitest.config.d.cts +0 -2
- package/tests/vitest.config.d.mts +0 -2
- package/tests/vitest.config.d.ts +0 -2
- package/type-tests/mysql.d.cts +0 -1
- package/type-tests/mysql.d.mts +0 -1
- package/type-tests/mysql.d.ts +0 -1
- package/type-tests/pg.d.cts +0 -1
- package/type-tests/pg.d.mts +0 -1
- package/type-tests/pg.d.ts +0 -1
- package/type-tests/sqlite.d.cts +0 -1
- package/type-tests/sqlite.d.mts +0 -1
- package/type-tests/sqlite.d.ts +0 -1
|
@@ -6,8 +6,9 @@ import { PgDatabase } from 'drizzle-orm/pg-core';
|
|
|
6
6
|
import type { SQLiteTable } from 'drizzle-orm/sqlite-core';
|
|
7
7
|
import { BaseSQLiteDatabase } from 'drizzle-orm/sqlite-core';
|
|
8
8
|
import type { GeneratePossibleGeneratorsColumnType, RefinementsType, TableGeneratorsType } from '../types/seedService.js';
|
|
9
|
-
import type { Column, Prettify, Relation, Table } from '../types/tables.js';
|
|
9
|
+
import type { Column, Prettify, Relation, RelationWithReferences, Table } from '../types/tables.js';
|
|
10
10
|
import type { AbstractGenerator } from './GeneratorsWrappers.js';
|
|
11
|
+
import { GenerateBoolean, GenerateDate, GenerateDatetime, GenerateDefault, GenerateEmail, GenerateEnum, GenerateFirstName, GenerateInt, GenerateIntPrimaryKey, GenerateJson, GenerateNumber, GenerateString, GenerateTime, GenerateTimestamp, GenerateUniqueString, GenerateYear } from './GeneratorsWrappers.js';
|
|
11
12
|
declare class SeedService {
|
|
12
13
|
static readonly [entityKind]: string;
|
|
13
14
|
private defaultCountForTable;
|
|
@@ -15,7 +16,11 @@ declare class SeedService {
|
|
|
15
16
|
private postgresMaxParametersNumber;
|
|
16
17
|
private mysqlMaxParametersNumber;
|
|
17
18
|
private sqliteMaxParametersNumber;
|
|
18
|
-
generatePossibleGenerators: (connectionType: "postgresql" | "mysql" | "sqlite", tables: Table[], relations: Relation
|
|
19
|
+
generatePossibleGenerators: (connectionType: "postgresql" | "mysql" | "sqlite", tables: Table[], relations: (Relation & {
|
|
20
|
+
isCyclic: boolean;
|
|
21
|
+
})[], tableRelations: {
|
|
22
|
+
[tableName: string]: RelationWithReferences[];
|
|
23
|
+
}, refinements?: RefinementsType, options?: {
|
|
19
24
|
count?: number;
|
|
20
25
|
seed?: number;
|
|
21
26
|
}) => {
|
|
@@ -33,56 +38,84 @@ declare class SeedService {
|
|
|
33
38
|
};
|
|
34
39
|
columnsPossibleGenerators: GeneratePossibleGeneratorsColumnType[];
|
|
35
40
|
}[];
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
cyclicTablesCompare: (table1: Table, table2: Table, relation: Relation & {
|
|
42
|
+
isCyclic: boolean;
|
|
43
|
+
}, reverseRelation: (Relation & {
|
|
44
|
+
isCyclic: boolean;
|
|
45
|
+
}) | undefined) => 1 | 0 | -1;
|
|
46
|
+
getOrderedTablesList: (tablesInOutRelations: ReturnType<typeof this.getInfoFromRelations>["tablesInOutRelations"]) => string[];
|
|
47
|
+
getInfoFromRelations: (relations: (Relation & {
|
|
48
|
+
isCyclic: boolean;
|
|
49
|
+
})[]) => {
|
|
50
|
+
tablesInOutRelations: {
|
|
51
|
+
[tableName: string]: {
|
|
52
|
+
out: number;
|
|
53
|
+
in: number;
|
|
54
|
+
selfRelation: boolean;
|
|
55
|
+
selfRelCount: number;
|
|
56
|
+
requiredTableNames: Set<string>;
|
|
57
|
+
dependantTableNames: Set<string>;
|
|
58
|
+
};
|
|
45
59
|
};
|
|
46
60
|
};
|
|
47
61
|
getWeightedWithCount: (weightedCount: {
|
|
48
62
|
weight: number;
|
|
49
63
|
count: number | number[];
|
|
50
64
|
}[], count: number, seed: number) => number;
|
|
51
|
-
pickGeneratorForPostgresColumn: (
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
65
|
+
pickGeneratorForPostgresColumn: (table: Table, col: Column) => AbstractGenerator<any> | undefined;
|
|
66
|
+
pickGeneratorForMysqlColumn: (table: Table, col: Column) => GenerateDefault | GenerateIntPrimaryKey | GenerateNumber | GenerateInt | GenerateBoolean | GenerateDate | GenerateTime | GenerateTimestamp | GenerateDatetime | GenerateYear | GenerateJson | GenerateEmail | GenerateFirstName | GenerateEnum | GenerateString | GenerateUniqueString | undefined;
|
|
67
|
+
pickGeneratorForSqlite: (table: Table, col: Column) => GenerateDefault | GenerateIntPrimaryKey | GenerateNumber | GenerateInt | GenerateBoolean | GenerateTimestamp | GenerateJson | GenerateEmail | GenerateFirstName | GenerateString | GenerateUniqueString | undefined;
|
|
68
|
+
filterCyclicTables: (tablesGenerators: ReturnType<typeof this.generatePossibleGenerators>) => {
|
|
69
|
+
filteredTablesGenerators: {
|
|
70
|
+
tableName: string;
|
|
71
|
+
count?: number | undefined;
|
|
72
|
+
withCount?: number | undefined;
|
|
73
|
+
withFromTable: {
|
|
74
|
+
[withFromTableName: string]: {
|
|
75
|
+
repeatedValuesCount: number | {
|
|
76
|
+
weight: number;
|
|
77
|
+
count: number | number[];
|
|
78
|
+
}[];
|
|
79
|
+
weightedCountSeed?: number;
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
columnsPossibleGenerators: GeneratePossibleGeneratorsColumnType[];
|
|
83
|
+
}[];
|
|
84
|
+
tablesUniqueNotNullColumn: {
|
|
85
|
+
[tableName: string]: {
|
|
86
|
+
uniqueNotNullColName: string;
|
|
87
|
+
};
|
|
88
|
+
};
|
|
71
89
|
};
|
|
72
|
-
generateTablesValues: (relations: Relation
|
|
90
|
+
generateTablesValues: (relations: (Relation & {
|
|
91
|
+
isCyclic: boolean;
|
|
92
|
+
})[], tablesGenerators: ReturnType<typeof this.generatePossibleGenerators>, db?: PgDatabase<any> | MySqlDatabase<any, any> | BaseSQLiteDatabase<any, any>, schema?: {
|
|
73
93
|
[key: string]: PgTable | MySqlTable | SQLiteTable;
|
|
74
94
|
}, options?: {
|
|
75
95
|
count?: number;
|
|
76
96
|
seed?: number;
|
|
77
97
|
preserveData?: boolean;
|
|
98
|
+
preserveCyclicTablesData?: boolean;
|
|
78
99
|
insertDataInDb?: boolean;
|
|
100
|
+
updateDataInDb?: boolean;
|
|
101
|
+
tablesValues?: {
|
|
102
|
+
tableName: string;
|
|
103
|
+
rows: {
|
|
104
|
+
[columnName: string]: string | number | boolean | undefined;
|
|
105
|
+
}[];
|
|
106
|
+
}[];
|
|
107
|
+
tablesUniqueNotNullColumn?: {
|
|
108
|
+
[tableName: string]: {
|
|
109
|
+
uniqueNotNullColName: string;
|
|
110
|
+
};
|
|
111
|
+
};
|
|
79
112
|
}) => Promise<{
|
|
80
113
|
tableName: string;
|
|
81
114
|
rows: {
|
|
82
115
|
[columnName: string]: string | number | boolean | undefined;
|
|
83
116
|
}[];
|
|
84
117
|
}[]>;
|
|
85
|
-
generateColumnsValuesByGenerators: ({ tableGenerators, db, schema, tableName, count, preserveData, insertDataInDb, batchSize, }: {
|
|
118
|
+
generateColumnsValuesByGenerators: ({ tableGenerators, db, schema, tableName, count, preserveData, insertDataInDb, updateDataInDb, uniqueNotNullColName, batchSize, }: {
|
|
86
119
|
tableGenerators: Prettify<TableGeneratorsType>;
|
|
87
120
|
db?: PgDatabase<any> | MySqlDatabase<any, any> | BaseSQLiteDatabase<any, any>;
|
|
88
121
|
schema?: {
|
|
@@ -92,6 +125,8 @@ declare class SeedService {
|
|
|
92
125
|
count?: number;
|
|
93
126
|
preserveData?: boolean;
|
|
94
127
|
insertDataInDb?: boolean;
|
|
128
|
+
updateDataInDb?: boolean;
|
|
129
|
+
uniqueNotNullColName?: string;
|
|
95
130
|
batchSize?: number;
|
|
96
131
|
}) => Promise<{
|
|
97
132
|
[columnName: string]: string | number | boolean | undefined;
|
|
@@ -100,13 +135,24 @@ declare class SeedService {
|
|
|
100
135
|
generatedValues: {
|
|
101
136
|
[columnName: string]: number | string | boolean | undefined;
|
|
102
137
|
}[];
|
|
103
|
-
db: PgDatabase<any> | MySqlDatabase<any, any> | BaseSQLiteDatabase<any, any>;
|
|
138
|
+
db: PgDatabase<any, any> | MySqlDatabase<any, any> | BaseSQLiteDatabase<any, any>;
|
|
104
139
|
schema: {
|
|
105
140
|
[key: string]: PgTable | MySqlTable | SQLiteTable;
|
|
106
141
|
};
|
|
107
142
|
tableName: string;
|
|
108
143
|
override: boolean;
|
|
109
144
|
}) => Promise<any>;
|
|
145
|
+
updateDb: ({ generatedValues, db, schema, tableName, uniqueNotNullColName, }: {
|
|
146
|
+
generatedValues: {
|
|
147
|
+
[columnName: string]: number | string | boolean | undefined;
|
|
148
|
+
}[];
|
|
149
|
+
db: PgDatabase<any, any> | MySqlDatabase<any, any> | BaseSQLiteDatabase<any, any>;
|
|
150
|
+
schema: {
|
|
151
|
+
[key: string]: PgTable | MySqlTable | SQLiteTable;
|
|
152
|
+
};
|
|
153
|
+
tableName: string;
|
|
154
|
+
uniqueNotNullColName: string;
|
|
155
|
+
}) => Promise<void>;
|
|
110
156
|
}
|
|
111
157
|
declare const _default: SeedService;
|
|
112
158
|
export default _default;
|
|
@@ -6,8 +6,9 @@ import { PgDatabase } from 'drizzle-orm/pg-core';
|
|
|
6
6
|
import type { SQLiteTable } from 'drizzle-orm/sqlite-core';
|
|
7
7
|
import { BaseSQLiteDatabase } from 'drizzle-orm/sqlite-core';
|
|
8
8
|
import type { GeneratePossibleGeneratorsColumnType, RefinementsType, TableGeneratorsType } from '../types/seedService.js';
|
|
9
|
-
import type { Column, Prettify, Relation, Table } from '../types/tables.js';
|
|
9
|
+
import type { Column, Prettify, Relation, RelationWithReferences, Table } from '../types/tables.js';
|
|
10
10
|
import type { AbstractGenerator } from './GeneratorsWrappers.js';
|
|
11
|
+
import { GenerateBoolean, GenerateDate, GenerateDatetime, GenerateDefault, GenerateEmail, GenerateEnum, GenerateFirstName, GenerateInt, GenerateIntPrimaryKey, GenerateJson, GenerateNumber, GenerateString, GenerateTime, GenerateTimestamp, GenerateUniqueString, GenerateYear } from './GeneratorsWrappers.js';
|
|
11
12
|
declare class SeedService {
|
|
12
13
|
static readonly [entityKind]: string;
|
|
13
14
|
private defaultCountForTable;
|
|
@@ -15,7 +16,11 @@ declare class SeedService {
|
|
|
15
16
|
private postgresMaxParametersNumber;
|
|
16
17
|
private mysqlMaxParametersNumber;
|
|
17
18
|
private sqliteMaxParametersNumber;
|
|
18
|
-
generatePossibleGenerators: (connectionType: "postgresql" | "mysql" | "sqlite", tables: Table[], relations: Relation
|
|
19
|
+
generatePossibleGenerators: (connectionType: "postgresql" | "mysql" | "sqlite", tables: Table[], relations: (Relation & {
|
|
20
|
+
isCyclic: boolean;
|
|
21
|
+
})[], tableRelations: {
|
|
22
|
+
[tableName: string]: RelationWithReferences[];
|
|
23
|
+
}, refinements?: RefinementsType, options?: {
|
|
19
24
|
count?: number;
|
|
20
25
|
seed?: number;
|
|
21
26
|
}) => {
|
|
@@ -33,56 +38,84 @@ declare class SeedService {
|
|
|
33
38
|
};
|
|
34
39
|
columnsPossibleGenerators: GeneratePossibleGeneratorsColumnType[];
|
|
35
40
|
}[];
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
cyclicTablesCompare: (table1: Table, table2: Table, relation: Relation & {
|
|
42
|
+
isCyclic: boolean;
|
|
43
|
+
}, reverseRelation: (Relation & {
|
|
44
|
+
isCyclic: boolean;
|
|
45
|
+
}) | undefined) => 1 | 0 | -1;
|
|
46
|
+
getOrderedTablesList: (tablesInOutRelations: ReturnType<typeof this.getInfoFromRelations>["tablesInOutRelations"]) => string[];
|
|
47
|
+
getInfoFromRelations: (relations: (Relation & {
|
|
48
|
+
isCyclic: boolean;
|
|
49
|
+
})[]) => {
|
|
50
|
+
tablesInOutRelations: {
|
|
51
|
+
[tableName: string]: {
|
|
52
|
+
out: number;
|
|
53
|
+
in: number;
|
|
54
|
+
selfRelation: boolean;
|
|
55
|
+
selfRelCount: number;
|
|
56
|
+
requiredTableNames: Set<string>;
|
|
57
|
+
dependantTableNames: Set<string>;
|
|
58
|
+
};
|
|
45
59
|
};
|
|
46
60
|
};
|
|
47
61
|
getWeightedWithCount: (weightedCount: {
|
|
48
62
|
weight: number;
|
|
49
63
|
count: number | number[];
|
|
50
64
|
}[], count: number, seed: number) => number;
|
|
51
|
-
pickGeneratorForPostgresColumn: (
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
65
|
+
pickGeneratorForPostgresColumn: (table: Table, col: Column) => AbstractGenerator<any> | undefined;
|
|
66
|
+
pickGeneratorForMysqlColumn: (table: Table, col: Column) => GenerateDefault | GenerateIntPrimaryKey | GenerateNumber | GenerateInt | GenerateBoolean | GenerateDate | GenerateTime | GenerateTimestamp | GenerateDatetime | GenerateYear | GenerateJson | GenerateEmail | GenerateFirstName | GenerateEnum | GenerateString | GenerateUniqueString | undefined;
|
|
67
|
+
pickGeneratorForSqlite: (table: Table, col: Column) => GenerateDefault | GenerateIntPrimaryKey | GenerateNumber | GenerateInt | GenerateBoolean | GenerateTimestamp | GenerateJson | GenerateEmail | GenerateFirstName | GenerateString | GenerateUniqueString | undefined;
|
|
68
|
+
filterCyclicTables: (tablesGenerators: ReturnType<typeof this.generatePossibleGenerators>) => {
|
|
69
|
+
filteredTablesGenerators: {
|
|
70
|
+
tableName: string;
|
|
71
|
+
count?: number | undefined;
|
|
72
|
+
withCount?: number | undefined;
|
|
73
|
+
withFromTable: {
|
|
74
|
+
[withFromTableName: string]: {
|
|
75
|
+
repeatedValuesCount: number | {
|
|
76
|
+
weight: number;
|
|
77
|
+
count: number | number[];
|
|
78
|
+
}[];
|
|
79
|
+
weightedCountSeed?: number;
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
columnsPossibleGenerators: GeneratePossibleGeneratorsColumnType[];
|
|
83
|
+
}[];
|
|
84
|
+
tablesUniqueNotNullColumn: {
|
|
85
|
+
[tableName: string]: {
|
|
86
|
+
uniqueNotNullColName: string;
|
|
87
|
+
};
|
|
88
|
+
};
|
|
71
89
|
};
|
|
72
|
-
generateTablesValues: (relations: Relation
|
|
90
|
+
generateTablesValues: (relations: (Relation & {
|
|
91
|
+
isCyclic: boolean;
|
|
92
|
+
})[], tablesGenerators: ReturnType<typeof this.generatePossibleGenerators>, db?: PgDatabase<any> | MySqlDatabase<any, any> | BaseSQLiteDatabase<any, any>, schema?: {
|
|
73
93
|
[key: string]: PgTable | MySqlTable | SQLiteTable;
|
|
74
94
|
}, options?: {
|
|
75
95
|
count?: number;
|
|
76
96
|
seed?: number;
|
|
77
97
|
preserveData?: boolean;
|
|
98
|
+
preserveCyclicTablesData?: boolean;
|
|
78
99
|
insertDataInDb?: boolean;
|
|
100
|
+
updateDataInDb?: boolean;
|
|
101
|
+
tablesValues?: {
|
|
102
|
+
tableName: string;
|
|
103
|
+
rows: {
|
|
104
|
+
[columnName: string]: string | number | boolean | undefined;
|
|
105
|
+
}[];
|
|
106
|
+
}[];
|
|
107
|
+
tablesUniqueNotNullColumn?: {
|
|
108
|
+
[tableName: string]: {
|
|
109
|
+
uniqueNotNullColName: string;
|
|
110
|
+
};
|
|
111
|
+
};
|
|
79
112
|
}) => Promise<{
|
|
80
113
|
tableName: string;
|
|
81
114
|
rows: {
|
|
82
115
|
[columnName: string]: string | number | boolean | undefined;
|
|
83
116
|
}[];
|
|
84
117
|
}[]>;
|
|
85
|
-
generateColumnsValuesByGenerators: ({ tableGenerators, db, schema, tableName, count, preserveData, insertDataInDb, batchSize, }: {
|
|
118
|
+
generateColumnsValuesByGenerators: ({ tableGenerators, db, schema, tableName, count, preserveData, insertDataInDb, updateDataInDb, uniqueNotNullColName, batchSize, }: {
|
|
86
119
|
tableGenerators: Prettify<TableGeneratorsType>;
|
|
87
120
|
db?: PgDatabase<any> | MySqlDatabase<any, any> | BaseSQLiteDatabase<any, any>;
|
|
88
121
|
schema?: {
|
|
@@ -92,6 +125,8 @@ declare class SeedService {
|
|
|
92
125
|
count?: number;
|
|
93
126
|
preserveData?: boolean;
|
|
94
127
|
insertDataInDb?: boolean;
|
|
128
|
+
updateDataInDb?: boolean;
|
|
129
|
+
uniqueNotNullColName?: string;
|
|
95
130
|
batchSize?: number;
|
|
96
131
|
}) => Promise<{
|
|
97
132
|
[columnName: string]: string | number | boolean | undefined;
|
|
@@ -100,13 +135,24 @@ declare class SeedService {
|
|
|
100
135
|
generatedValues: {
|
|
101
136
|
[columnName: string]: number | string | boolean | undefined;
|
|
102
137
|
}[];
|
|
103
|
-
db: PgDatabase<any> | MySqlDatabase<any, any> | BaseSQLiteDatabase<any, any>;
|
|
138
|
+
db: PgDatabase<any, any> | MySqlDatabase<any, any> | BaseSQLiteDatabase<any, any>;
|
|
104
139
|
schema: {
|
|
105
140
|
[key: string]: PgTable | MySqlTable | SQLiteTable;
|
|
106
141
|
};
|
|
107
142
|
tableName: string;
|
|
108
143
|
override: boolean;
|
|
109
144
|
}) => Promise<any>;
|
|
145
|
+
updateDb: ({ generatedValues, db, schema, tableName, uniqueNotNullColName, }: {
|
|
146
|
+
generatedValues: {
|
|
147
|
+
[columnName: string]: number | string | boolean | undefined;
|
|
148
|
+
}[];
|
|
149
|
+
db: PgDatabase<any, any> | MySqlDatabase<any, any> | BaseSQLiteDatabase<any, any>;
|
|
150
|
+
schema: {
|
|
151
|
+
[key: string]: PgTable | MySqlTable | SQLiteTable;
|
|
152
|
+
};
|
|
153
|
+
tableName: string;
|
|
154
|
+
uniqueNotNullColName: string;
|
|
155
|
+
}) => Promise<void>;
|
|
110
156
|
}
|
|
111
157
|
declare const _default: SeedService;
|
|
112
158
|
export default _default;
|
|
@@ -6,8 +6,9 @@ import { PgDatabase } from 'drizzle-orm/pg-core';
|
|
|
6
6
|
import type { SQLiteTable } from 'drizzle-orm/sqlite-core';
|
|
7
7
|
import { BaseSQLiteDatabase } from 'drizzle-orm/sqlite-core';
|
|
8
8
|
import type { GeneratePossibleGeneratorsColumnType, RefinementsType, TableGeneratorsType } from '../types/seedService.js';
|
|
9
|
-
import type { Column, Prettify, Relation, Table } from '../types/tables.js';
|
|
9
|
+
import type { Column, Prettify, Relation, RelationWithReferences, Table } from '../types/tables.js';
|
|
10
10
|
import type { AbstractGenerator } from './GeneratorsWrappers.js';
|
|
11
|
+
import { GenerateBoolean, GenerateDate, GenerateDatetime, GenerateDefault, GenerateEmail, GenerateEnum, GenerateFirstName, GenerateInt, GenerateIntPrimaryKey, GenerateJson, GenerateNumber, GenerateString, GenerateTime, GenerateTimestamp, GenerateUniqueString, GenerateYear } from './GeneratorsWrappers.js';
|
|
11
12
|
declare class SeedService {
|
|
12
13
|
static readonly [entityKind]: string;
|
|
13
14
|
private defaultCountForTable;
|
|
@@ -15,7 +16,11 @@ declare class SeedService {
|
|
|
15
16
|
private postgresMaxParametersNumber;
|
|
16
17
|
private mysqlMaxParametersNumber;
|
|
17
18
|
private sqliteMaxParametersNumber;
|
|
18
|
-
generatePossibleGenerators: (connectionType: "postgresql" | "mysql" | "sqlite", tables: Table[], relations: Relation
|
|
19
|
+
generatePossibleGenerators: (connectionType: "postgresql" | "mysql" | "sqlite", tables: Table[], relations: (Relation & {
|
|
20
|
+
isCyclic: boolean;
|
|
21
|
+
})[], tableRelations: {
|
|
22
|
+
[tableName: string]: RelationWithReferences[];
|
|
23
|
+
}, refinements?: RefinementsType, options?: {
|
|
19
24
|
count?: number;
|
|
20
25
|
seed?: number;
|
|
21
26
|
}) => {
|
|
@@ -33,56 +38,84 @@ declare class SeedService {
|
|
|
33
38
|
};
|
|
34
39
|
columnsPossibleGenerators: GeneratePossibleGeneratorsColumnType[];
|
|
35
40
|
}[];
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
cyclicTablesCompare: (table1: Table, table2: Table, relation: Relation & {
|
|
42
|
+
isCyclic: boolean;
|
|
43
|
+
}, reverseRelation: (Relation & {
|
|
44
|
+
isCyclic: boolean;
|
|
45
|
+
}) | undefined) => 1 | 0 | -1;
|
|
46
|
+
getOrderedTablesList: (tablesInOutRelations: ReturnType<typeof this.getInfoFromRelations>["tablesInOutRelations"]) => string[];
|
|
47
|
+
getInfoFromRelations: (relations: (Relation & {
|
|
48
|
+
isCyclic: boolean;
|
|
49
|
+
})[]) => {
|
|
50
|
+
tablesInOutRelations: {
|
|
51
|
+
[tableName: string]: {
|
|
52
|
+
out: number;
|
|
53
|
+
in: number;
|
|
54
|
+
selfRelation: boolean;
|
|
55
|
+
selfRelCount: number;
|
|
56
|
+
requiredTableNames: Set<string>;
|
|
57
|
+
dependantTableNames: Set<string>;
|
|
58
|
+
};
|
|
45
59
|
};
|
|
46
60
|
};
|
|
47
61
|
getWeightedWithCount: (weightedCount: {
|
|
48
62
|
weight: number;
|
|
49
63
|
count: number | number[];
|
|
50
64
|
}[], count: number, seed: number) => number;
|
|
51
|
-
pickGeneratorForPostgresColumn: (
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
65
|
+
pickGeneratorForPostgresColumn: (table: Table, col: Column) => AbstractGenerator<any> | undefined;
|
|
66
|
+
pickGeneratorForMysqlColumn: (table: Table, col: Column) => GenerateDefault | GenerateIntPrimaryKey | GenerateNumber | GenerateInt | GenerateBoolean | GenerateDate | GenerateTime | GenerateTimestamp | GenerateDatetime | GenerateYear | GenerateJson | GenerateEmail | GenerateFirstName | GenerateEnum | GenerateString | GenerateUniqueString | undefined;
|
|
67
|
+
pickGeneratorForSqlite: (table: Table, col: Column) => GenerateDefault | GenerateIntPrimaryKey | GenerateNumber | GenerateInt | GenerateBoolean | GenerateTimestamp | GenerateJson | GenerateEmail | GenerateFirstName | GenerateString | GenerateUniqueString | undefined;
|
|
68
|
+
filterCyclicTables: (tablesGenerators: ReturnType<typeof this.generatePossibleGenerators>) => {
|
|
69
|
+
filteredTablesGenerators: {
|
|
70
|
+
tableName: string;
|
|
71
|
+
count?: number | undefined;
|
|
72
|
+
withCount?: number | undefined;
|
|
73
|
+
withFromTable: {
|
|
74
|
+
[withFromTableName: string]: {
|
|
75
|
+
repeatedValuesCount: number | {
|
|
76
|
+
weight: number;
|
|
77
|
+
count: number | number[];
|
|
78
|
+
}[];
|
|
79
|
+
weightedCountSeed?: number;
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
columnsPossibleGenerators: GeneratePossibleGeneratorsColumnType[];
|
|
83
|
+
}[];
|
|
84
|
+
tablesUniqueNotNullColumn: {
|
|
85
|
+
[tableName: string]: {
|
|
86
|
+
uniqueNotNullColName: string;
|
|
87
|
+
};
|
|
88
|
+
};
|
|
71
89
|
};
|
|
72
|
-
generateTablesValues: (relations: Relation
|
|
90
|
+
generateTablesValues: (relations: (Relation & {
|
|
91
|
+
isCyclic: boolean;
|
|
92
|
+
})[], tablesGenerators: ReturnType<typeof this.generatePossibleGenerators>, db?: PgDatabase<any> | MySqlDatabase<any, any> | BaseSQLiteDatabase<any, any>, schema?: {
|
|
73
93
|
[key: string]: PgTable | MySqlTable | SQLiteTable;
|
|
74
94
|
}, options?: {
|
|
75
95
|
count?: number;
|
|
76
96
|
seed?: number;
|
|
77
97
|
preserveData?: boolean;
|
|
98
|
+
preserveCyclicTablesData?: boolean;
|
|
78
99
|
insertDataInDb?: boolean;
|
|
100
|
+
updateDataInDb?: boolean;
|
|
101
|
+
tablesValues?: {
|
|
102
|
+
tableName: string;
|
|
103
|
+
rows: {
|
|
104
|
+
[columnName: string]: string | number | boolean | undefined;
|
|
105
|
+
}[];
|
|
106
|
+
}[];
|
|
107
|
+
tablesUniqueNotNullColumn?: {
|
|
108
|
+
[tableName: string]: {
|
|
109
|
+
uniqueNotNullColName: string;
|
|
110
|
+
};
|
|
111
|
+
};
|
|
79
112
|
}) => Promise<{
|
|
80
113
|
tableName: string;
|
|
81
114
|
rows: {
|
|
82
115
|
[columnName: string]: string | number | boolean | undefined;
|
|
83
116
|
}[];
|
|
84
117
|
}[]>;
|
|
85
|
-
generateColumnsValuesByGenerators: ({ tableGenerators, db, schema, tableName, count, preserveData, insertDataInDb, batchSize, }: {
|
|
118
|
+
generateColumnsValuesByGenerators: ({ tableGenerators, db, schema, tableName, count, preserveData, insertDataInDb, updateDataInDb, uniqueNotNullColName, batchSize, }: {
|
|
86
119
|
tableGenerators: Prettify<TableGeneratorsType>;
|
|
87
120
|
db?: PgDatabase<any> | MySqlDatabase<any, any> | BaseSQLiteDatabase<any, any>;
|
|
88
121
|
schema?: {
|
|
@@ -92,6 +125,8 @@ declare class SeedService {
|
|
|
92
125
|
count?: number;
|
|
93
126
|
preserveData?: boolean;
|
|
94
127
|
insertDataInDb?: boolean;
|
|
128
|
+
updateDataInDb?: boolean;
|
|
129
|
+
uniqueNotNullColName?: string;
|
|
95
130
|
batchSize?: number;
|
|
96
131
|
}) => Promise<{
|
|
97
132
|
[columnName: string]: string | number | boolean | undefined;
|
|
@@ -100,13 +135,24 @@ declare class SeedService {
|
|
|
100
135
|
generatedValues: {
|
|
101
136
|
[columnName: string]: number | string | boolean | undefined;
|
|
102
137
|
}[];
|
|
103
|
-
db: PgDatabase<any> | MySqlDatabase<any, any> | BaseSQLiteDatabase<any, any>;
|
|
138
|
+
db: PgDatabase<any, any> | MySqlDatabase<any, any> | BaseSQLiteDatabase<any, any>;
|
|
104
139
|
schema: {
|
|
105
140
|
[key: string]: PgTable | MySqlTable | SQLiteTable;
|
|
106
141
|
};
|
|
107
142
|
tableName: string;
|
|
108
143
|
override: boolean;
|
|
109
144
|
}) => Promise<any>;
|
|
145
|
+
updateDb: ({ generatedValues, db, schema, tableName, uniqueNotNullColName, }: {
|
|
146
|
+
generatedValues: {
|
|
147
|
+
[columnName: string]: number | string | boolean | undefined;
|
|
148
|
+
}[];
|
|
149
|
+
db: PgDatabase<any, any> | MySqlDatabase<any, any> | BaseSQLiteDatabase<any, any>;
|
|
150
|
+
schema: {
|
|
151
|
+
[key: string]: PgTable | MySqlTable | SQLiteTable;
|
|
152
|
+
};
|
|
153
|
+
tableName: string;
|
|
154
|
+
uniqueNotNullColName: string;
|
|
155
|
+
}) => Promise<void>;
|
|
110
156
|
}
|
|
111
157
|
declare const _default: SeedService;
|
|
112
158
|
export default _default;
|
package/services/utils.d.cts
CHANGED
|
@@ -18,3 +18,5 @@ export declare const fillTemplate: ({ template, placeholdersCount, values, defau
|
|
|
18
18
|
values: string[];
|
|
19
19
|
defaultValue?: string;
|
|
20
20
|
}) => string;
|
|
21
|
+
export declare const isObject: (value: any) => boolean;
|
|
22
|
+
export declare const equalSets: (set1: Set<any>, set2: Set<any>) => boolean;
|
package/services/utils.d.mts
CHANGED
|
@@ -18,3 +18,5 @@ export declare const fillTemplate: ({ template, placeholdersCount, values, defau
|
|
|
18
18
|
values: string[];
|
|
19
19
|
defaultValue?: string;
|
|
20
20
|
}) => string;
|
|
21
|
+
export declare const isObject: (value: any) => boolean;
|
|
22
|
+
export declare const equalSets: (set1: Set<any>, set2: Set<any>) => boolean;
|
package/services/utils.d.ts
CHANGED
|
@@ -18,3 +18,5 @@ export declare const fillTemplate: ({ template, placeholdersCount, values, defau
|
|
|
18
18
|
values: string[];
|
|
19
19
|
defaultValue?: string;
|
|
20
20
|
}) => string;
|
|
21
|
+
export declare const isObject: (value: any) => boolean;
|
|
22
|
+
export declare const equalSets: (set1: Set<any>, set2: Set<any>) => boolean;
|
package/types/seedService.d.cts
CHANGED
|
@@ -12,7 +12,11 @@ export type GeneratePossibleGeneratorsColumnType = {
|
|
|
12
12
|
generator: AbstractGenerator<any> | undefined;
|
|
13
13
|
isUnique: boolean;
|
|
14
14
|
notNull: boolean;
|
|
15
|
+
primary: boolean;
|
|
15
16
|
generatedIdentityType?: 'always' | 'byDefault' | undefined;
|
|
17
|
+
wasRefined: boolean;
|
|
18
|
+
wasDefinedBefore: boolean;
|
|
19
|
+
isCyclic: boolean;
|
|
16
20
|
};
|
|
17
21
|
export type GeneratePossibleGeneratorsTableType = Prettify<{
|
|
18
22
|
tableName: string;
|
package/types/seedService.d.mts
CHANGED
|
@@ -12,7 +12,11 @@ export type GeneratePossibleGeneratorsColumnType = {
|
|
|
12
12
|
generator: AbstractGenerator<any> | undefined;
|
|
13
13
|
isUnique: boolean;
|
|
14
14
|
notNull: boolean;
|
|
15
|
+
primary: boolean;
|
|
15
16
|
generatedIdentityType?: 'always' | 'byDefault' | undefined;
|
|
17
|
+
wasRefined: boolean;
|
|
18
|
+
wasDefinedBefore: boolean;
|
|
19
|
+
isCyclic: boolean;
|
|
16
20
|
};
|
|
17
21
|
export type GeneratePossibleGeneratorsTableType = Prettify<{
|
|
18
22
|
tableName: string;
|
package/types/seedService.d.ts
CHANGED
|
@@ -12,7 +12,11 @@ export type GeneratePossibleGeneratorsColumnType = {
|
|
|
12
12
|
generator: AbstractGenerator<any> | undefined;
|
|
13
13
|
isUnique: boolean;
|
|
14
14
|
notNull: boolean;
|
|
15
|
+
primary: boolean;
|
|
15
16
|
generatedIdentityType?: 'always' | 'byDefault' | undefined;
|
|
17
|
+
wasRefined: boolean;
|
|
18
|
+
wasDefinedBefore: boolean;
|
|
19
|
+
isCyclic: boolean;
|
|
16
20
|
};
|
|
17
21
|
export type GeneratePossibleGeneratorsTableType = Prettify<{
|
|
18
22
|
tableName: string;
|
package/types/tables.d.cts
CHANGED
|
@@ -2,12 +2,15 @@ export type Column = {
|
|
|
2
2
|
name: string;
|
|
3
3
|
dataType: string;
|
|
4
4
|
columnType: string;
|
|
5
|
+
size?: number;
|
|
5
6
|
default?: any;
|
|
6
7
|
hasDefault: boolean;
|
|
7
8
|
enumValues?: string[];
|
|
8
9
|
isUnique: boolean;
|
|
9
10
|
notNull: boolean;
|
|
11
|
+
primary: boolean;
|
|
10
12
|
generatedIdentityType?: 'always' | 'byDefault' | undefined;
|
|
13
|
+
baseColumn?: Omit<Column, 'generatedIdentityType'>;
|
|
11
14
|
};
|
|
12
15
|
export type Table = {
|
|
13
16
|
name: string;
|
|
@@ -20,6 +23,10 @@ export type Relation = {
|
|
|
20
23
|
refTable: string;
|
|
21
24
|
refColumns: string[];
|
|
22
25
|
};
|
|
26
|
+
export type RelationWithReferences = Relation & {
|
|
27
|
+
isCyclic?: boolean;
|
|
28
|
+
refTableRels: RelationWithReferences[];
|
|
29
|
+
};
|
|
23
30
|
export type Prettify<T> = {
|
|
24
31
|
[K in keyof T]: T[K];
|
|
25
32
|
} & {};
|
package/types/tables.d.mts
CHANGED
|
@@ -2,12 +2,15 @@ export type Column = {
|
|
|
2
2
|
name: string;
|
|
3
3
|
dataType: string;
|
|
4
4
|
columnType: string;
|
|
5
|
+
size?: number;
|
|
5
6
|
default?: any;
|
|
6
7
|
hasDefault: boolean;
|
|
7
8
|
enumValues?: string[];
|
|
8
9
|
isUnique: boolean;
|
|
9
10
|
notNull: boolean;
|
|
11
|
+
primary: boolean;
|
|
10
12
|
generatedIdentityType?: 'always' | 'byDefault' | undefined;
|
|
13
|
+
baseColumn?: Omit<Column, 'generatedIdentityType'>;
|
|
11
14
|
};
|
|
12
15
|
export type Table = {
|
|
13
16
|
name: string;
|
|
@@ -20,6 +23,10 @@ export type Relation = {
|
|
|
20
23
|
refTable: string;
|
|
21
24
|
refColumns: string[];
|
|
22
25
|
};
|
|
26
|
+
export type RelationWithReferences = Relation & {
|
|
27
|
+
isCyclic?: boolean;
|
|
28
|
+
refTableRels: RelationWithReferences[];
|
|
29
|
+
};
|
|
23
30
|
export type Prettify<T> = {
|
|
24
31
|
[K in keyof T]: T[K];
|
|
25
32
|
} & {};
|