SeedService.ts — drizzle-orm Source File
Architecture documentation for SeedService.ts, a typescript file in the drizzle-orm codebase. 12 imports, 1 dependents.
Entity Profile
Dependency Diagram
graph LR cddca4ed_9295_2c5a_7eae_0e65031c57b0["SeedService.ts"] aaa9a26b_a842_a4d1_a213_2cea0b822f37["seedService.ts"] cddca4ed_9295_2c5a_7eae_0e65031c57b0 --> aaa9a26b_a842_a4d1_a213_2cea0b822f37 068455b6_0ea9_cdc1_8414_ef0ad089ef04["tables.ts"] cddca4ed_9295_2c5a_7eae_0e65031c57b0 --> 068455b6_0ea9_cdc1_8414_ef0ad089ef04 4d8b9b0c_75c6_bc65_84d3_d5e3192386e2["GeneratorFuncs.ts"] cddca4ed_9295_2c5a_7eae_0e65031c57b0 --> 4d8b9b0c_75c6_bc65_84d3_d5e3192386e2 e5cee001_0354_7e76_ef0a_06dca71dc8ce["Generators.ts"] cddca4ed_9295_2c5a_7eae_0e65031c57b0 --> e5cee001_0354_7e76_ef0a_06dca71dc8ce 25170b09_c58f_f68e_6b21_c0582db53ed7["apiVersion.ts"] cddca4ed_9295_2c5a_7eae_0e65031c57b0 --> 25170b09_c58f_f68e_6b21_c0582db53ed7 3590021a_2509_fc1e_c0e6_fb6ddfe693d4["utils.ts"] cddca4ed_9295_2c5a_7eae_0e65031c57b0 --> 3590021a_2509_fc1e_c0e6_fb6ddfe693d4 120ad6bf_2121_c0e4_f28e_d906f6e1efd2["equalSets"] cddca4ed_9295_2c5a_7eae_0e65031c57b0 --> 120ad6bf_2121_c0e4_f28e_d906f6e1efd2 7d9a0ad1_23dc_2ceb_e227_d1eec3f9cc55["generateHashFromString"] cddca4ed_9295_2c5a_7eae_0e65031c57b0 --> 7d9a0ad1_23dc_2ceb_e227_d1eec3f9cc55 690f7dfc_0aea_9ee8_d6e7_26bbb3689031["drizzle-orm"] cddca4ed_9295_2c5a_7eae_0e65031c57b0 --> 690f7dfc_0aea_9ee8_d6e7_26bbb3689031 93ed9350_daa0_6c21_81a6_ed6b2a48bbdf["mysql-core"] cddca4ed_9295_2c5a_7eae_0e65031c57b0 --> 93ed9350_daa0_6c21_81a6_ed6b2a48bbdf 53497908_16e7_977d_e97d_7414884a88a6["pg-core"] cddca4ed_9295_2c5a_7eae_0e65031c57b0 --> 53497908_16e7_977d_e97d_7414884a88a6 25248a9d_ba06_2b33_4421_8575da2f9c34["sqlite-core"] cddca4ed_9295_2c5a_7eae_0e65031c57b0 --> 25248a9d_ba06_2b33_4421_8575da2f9c34 0fabdd81_61c9_bb7c_7ddf_dde7a6071abc["index.ts"] 0fabdd81_61c9_bb7c_7ddf_dde7a6071abc --> cddca4ed_9295_2c5a_7eae_0e65031c57b0 style cddca4ed_9295_2c5a_7eae_0e65031c57b0 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
/* eslint-disable drizzle-internal/require-entity-kind */
import { entityKind, eq, is } from 'drizzle-orm';
import type { MySqlTable, MySqlTableWithColumns } from 'drizzle-orm/mysql-core';
import { MySqlDatabase } from 'drizzle-orm/mysql-core';
import type { PgTable, PgTableWithColumns } from 'drizzle-orm/pg-core';
import { PgDatabase } from 'drizzle-orm/pg-core';
import type { SQLiteTable, SQLiteTableWithColumns } from 'drizzle-orm/sqlite-core';
import { BaseSQLiteDatabase } from 'drizzle-orm/sqlite-core';
import type {
GeneratePossibleGeneratorsColumnType,
GeneratePossibleGeneratorsTableType,
RefinementsType,
TableGeneratorsType,
} from '../types/seedService.ts';
import type { Column, Prettify, Relation, Table } from '../types/tables.ts';
import { generatorsMap } from './GeneratorFuncs.ts';
import type { AbstractGenerator, GenerateArray, GenerateInterval, GenerateWeightedCount } from './Generators.ts';
import { latestVersion } from './apiVersion.ts';
import { equalSets, generateHashFromString } from './utils.ts';
export class SeedService {
static readonly entityKind: string = 'SeedService';
private defaultCountForTable = 10;
private postgresPgLiteMaxParametersNumber = 32740;
private postgresMaxParametersNumber = 65535;
// there is no max parameters number in mysql, so you can increase mysqlMaxParametersNumber if it's needed.
private mysqlMaxParametersNumber = 100000;
// SQLITE_MAX_VARIABLE_NUMBER, which by default equals to 999 for SQLite versions prior to 3.32.0 (2020-05-22) or 32766 for SQLite versions after 3.32.0.
private sqliteMaxParametersNumber = 32766;
private version?: number;
generatePossibleGenerators = (
connectionType: 'postgresql' | 'mysql' | 'sqlite',
tables: Table[],
relations: (Relation & { isCyclic: boolean })[],
refinements?: RefinementsType,
options?: { count?: number; seed?: number; version?: number },
) => {
let columnPossibleGenerator: Prettify<GeneratePossibleGeneratorsColumnType>;
let tablePossibleGenerators: Prettify<GeneratePossibleGeneratorsTableType>;
const customSeed = options?.seed === undefined ? 0 : options.seed;
this.version = options?.version === undefined ? latestVersion : options.version;
if (Number.isNaN(this.version) || this.version < 1 || this.version > latestVersion) {
throw new Error(`Version should be in range [1, ${latestVersion}].`);
}
// sorting table in order which they will be filled up (tables with foreign keys case)
const { tablesInOutRelations } = this.getInfoFromRelations(relations);
const orderedTablesNames = this.getOrderedTablesList(tablesInOutRelations);
tables = tables.sort((table1, table2) => {
const rel = relations.find((rel) => rel.table === table1.name && rel.refTable === table2.name);
if (rel?.isCyclic === true) {
const reverseRel = relations.find((rel) => rel.table === table2.name && rel.refTable === table1.name);
return this.cyclicTablesCompare(table1, table2, rel, reverseRel);
}
const table1Order = orderedTablesNames.indexOf(
// ... (1552 more lines)
Domain
Classes
Dependencies
- GeneratorFuncs.ts
- Generators.ts
- apiVersion.ts
- drizzle-orm
- equalSets
- generateHashFromString
- mysql-core
- pg-core
- seedService.ts
- sqlite-core
- tables.ts
- utils.ts
Imported By
Source
Frequently Asked Questions
What does SeedService.ts do?
SeedService.ts is a source file in the drizzle-orm codebase, written in typescript. It belongs to the DrizzleSeed domain.
What does SeedService.ts depend on?
SeedService.ts imports 12 module(s): GeneratorFuncs.ts, Generators.ts, apiVersion.ts, drizzle-orm, equalSets, generateHashFromString, mysql-core, pg-core, and 4 more.
What files import SeedService.ts?
SeedService.ts is imported by 1 file(s): index.ts.
Where is SeedService.ts in the architecture?
SeedService.ts is located at drizzle-seed/src/services/SeedService.ts (domain: DrizzleSeed, directory: drizzle-seed/src/services).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free