Home / Class/ GenerateJson Class — drizzle-orm Architecture

GenerateJson Class — drizzle-orm Architecture

Architecture documentation for the GenerateJson class in Generators.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  b5a9bb6b_0e7d_a582_f835_8b9053eb2844["GenerateJson"]
  e5cee001_0354_7e76_ef0a_06dca71dc8ce["Generators.ts"]
  b5a9bb6b_0e7d_a582_f835_8b9053eb2844 -->|defined in| e5cee001_0354_7e76_ef0a_06dca71dc8ce
  34a7ed2e_bcbb_4434_73cd_c5f98132112c["init()"]
  b5a9bb6b_0e7d_a582_f835_8b9053eb2844 -->|method| 34a7ed2e_bcbb_4434_73cd_c5f98132112c
  1b055623_11c1_d0e1_3dc5_77b47e620228["generate()"]
  b5a9bb6b_0e7d_a582_f835_8b9053eb2844 -->|method| 1b055623_11c1_d0e1_3dc5_77b47e620228

Relationship Graph

Source Code

drizzle-seed/src/services/Generators.ts lines 1100–1202

export class GenerateJson extends AbstractGenerator<{ arraySize?: number }> {
	static override readonly entityKind: string = 'GenerateJson';

	private state: {
		emailGeneratorObj: GenerateEmail;
		nameGeneratorObj: GenerateFirstName;
		booleanGeneratorObj: GenerateBoolean;
		salaryGeneratorObj: GenerateInt;
		dateGeneratorObj: GenerateDate;
		visitedCountriesNumberGeneratorObj: GenerateInt;
		seed: number;
	} | undefined;

	override init({ count, seed }: { count: number; seed: number }) {
		super.init({ count, seed });

		const emailGeneratorObj = new GenerateEmail({});
		emailGeneratorObj.init({ count, seed });

		const nameGeneratorObj = new GenerateFirstName({});
		nameGeneratorObj.init({ count, seed });

		const booleanGeneratorObj = new GenerateBoolean({});
		booleanGeneratorObj.init({
			count,
			seed,
		});

		const salaryGeneratorObj = new GenerateInt({ minValue: 200, maxValue: 4000 });
		salaryGeneratorObj.init({
			count,
			seed,
			...salaryGeneratorObj.params,
		});

		const dateGeneratorObj = new GenerateDate({});
		dateGeneratorObj.dataType = 'string';
		dateGeneratorObj.init({ count, seed });

		const visitedCountriesNumberGeneratorObj = new GenerateInt({ minValue: 0, maxValue: 4 });
		visitedCountriesNumberGeneratorObj.init(
			{ count, seed, ...visitedCountriesNumberGeneratorObj.params },
		);

		this.state = {
			emailGeneratorObj,
			nameGeneratorObj,
			booleanGeneratorObj,
			salaryGeneratorObj,
			dateGeneratorObj,
			visitedCountriesNumberGeneratorObj,
			seed,
		};
	}

	generate({ i }: { i: number }) {
		if (this.state === undefined) {
			throw new Error('state is not defined.');
		}

		const visitedCountries: string[] = [];
		const email = this.state.emailGeneratorObj.generate();
		const name = this.state.nameGeneratorObj.generate();
		const isGraduated = this.state.booleanGeneratorObj.generate();
		const hasJob = this.state.booleanGeneratorObj.generate();
		const salary = this.state.salaryGeneratorObj.generate() as number;
		const startedWorking = this.state.dateGeneratorObj.generate() as string;
		const visitedCountriesNumber = this.state.visitedCountriesNumberGeneratorObj.generate() as number;

		const uniqueCountriesGeneratorObj = new GenerateUniqueCountry({});
		uniqueCountriesGeneratorObj.init({
			count: visitedCountriesNumber,
			seed: this.state.seed + i,
		});
		for (let j = 0; j < visitedCountriesNumber; j++) {
			visitedCountries.push(uniqueCountriesGeneratorObj.generate());
		}

		const returnJson = hasJob
			? {
				email,

Domain

Frequently Asked Questions

What is the GenerateJson class?
GenerateJson is a class in the drizzle-orm codebase, defined in drizzle-seed/src/services/Generators.ts.
Where is GenerateJson defined?
GenerateJson is defined in drizzle-seed/src/services/Generators.ts at line 1100.

Analyze Your Own Codebase

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

Try Supermodel Free