Home / Function/ init() — drizzle-orm Function Reference

init() — drizzle-orm Function Reference

Architecture documentation for the init() function in Generators.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  edb57f9c_b176_e9e2_07e4_4350a972cb3d["init()"]
  d099dc27_7cb1_ca3a_a106_42456c7d079a["GenerateUniqueCompanyName"]
  edb57f9c_b176_e9e2_07e4_4350a972cb3d -->|defined in| d099dc27_7cb1_ca3a_a106_42456c7d079a
  style edb57f9c_b176_e9e2_07e4_4350a972cb3d fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-seed/src/services/Generators.ts lines 2676–2739

	override init({ count, seed }: { count: number; seed: number }) {
		const maxUniqueCompanyNameNumber = lastNames.length * companyNameSuffixes.length + Math.pow(lastNames.length, 2)
			+ Math.pow(lastNames.length, 2) + Math.pow(lastNames.length, 3);
		if (count > maxUniqueCompanyNameNumber) {
			throw new RangeError(
				`count exceeds max number of unique company names(${maxUniqueCompanyNameNumber}).`,
			);
		}

		// max( { template: '#', placeholdersCount: 1 }, { template: '#, # and #', placeholdersCount: 3 } )
		const maxCompanyNameLength = Math.max(
			maxLastNameLength + maxCompanyNameSuffixLength + 1,
			3 * maxLastNameLength + 7,
		);
		if (this.stringLength !== undefined && this.stringLength < maxCompanyNameLength) {
			throw new Error(
				`You can't use company name generator with a db column length restriction of ${this.stringLength}. Set the maximum string length to at least ${maxCompanyNameLength}.`,
			);
		}

		const rng = prand.xoroshiro128plus(seed);
		// when count reach maxUniqueCompanyNameNumber template will be deleted from array
		const templates = [
			{
				template: '# - #',
				placeholdersCount: 1,
				indicesGen: new GenerateUniqueInt({ minValue: 0, maxValue: lastNames.length * companyNameSuffixes.length - 1 }),
				maxUniqueCompanyNameNumber: lastNames.length * companyNameSuffixes.length,
				count: 0,
				arraysToChooseFrom: [lastNames, companyNameSuffixes],
			},
			{
				template: '# - #',
				placeholdersCount: 2,
				indicesGen: new GenerateUniqueInt({ minValue: 0, maxValue: Math.pow(lastNames.length, 2) - 1 }),
				maxUniqueCompanyNameNumber: Math.pow(lastNames.length, 2),
				count: 0,
				arraysToChooseFrom: [lastNames, lastNames],
			},
			{
				template: '# and #',
				placeholdersCount: 2,
				indicesGen: new GenerateUniqueInt({ minValue: 0, maxValue: Math.pow(lastNames.length, 2) - 1 }),
				maxUniqueCompanyNameNumber: Math.pow(lastNames.length, 2),
				count: 0,
				arraysToChooseFrom: [lastNames, lastNames],
			},
			{
				template: '#, # and #',
				placeholdersCount: 3,
				indicesGen: new GenerateUniqueInt({ minValue: 0, maxValue: Math.pow(lastNames.length, 3) - 1 }),
				maxUniqueCompanyNameNumber: Math.pow(lastNames.length, 3),
				count: 0,
				arraysToChooseFrom: [lastNames, lastNames, lastNames],
			},
		];

		for (const templateObj of templates) {
			templateObj.indicesGen.skipCheck = true;
			templateObj.indicesGen.init({ count, seed });
		}

		this.state = { rng, templates };
	}

Domain

Subdomains

Frequently Asked Questions

What does init() do?
init() is a function in the drizzle-orm codebase, defined in drizzle-seed/src/services/Generators.ts.
Where is init() defined?
init() is defined in drizzle-seed/src/services/Generators.ts at line 2676.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free