Home / Class/ GenerateState Class — drizzle-orm Architecture

GenerateState Class — drizzle-orm Architecture

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

Entity Profile

Dependency Diagram

graph TD
  7d607215_ca79_3d42_cf47_e3abe64e575d["GenerateState"]
  e5cee001_0354_7e76_ef0a_06dca71dc8ce["Generators.ts"]
  7d607215_ca79_3d42_cf47_e3abe64e575d -->|defined in| e5cee001_0354_7e76_ef0a_06dca71dc8ce
  efc7aa55_d94f_df25_6684_ae9476e9c0e7["init()"]
  7d607215_ca79_3d42_cf47_e3abe64e575d -->|method| efc7aa55_d94f_df25_6684_ae9476e9c0e7
  41cd1eac_296f_a4b2_312b_f4f32c7e3744["generate()"]
  7d607215_ca79_3d42_cf47_e3abe64e575d -->|method| 41cd1eac_296f_a4b2_312b_f4f32c7e3744

Relationship Graph

Source Code

drizzle-seed/src/services/Generators.ts lines 2553–2586

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

	private state: {
		rng: prand.RandomGenerator;
	} | undefined;

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

		const rng = prand.xoroshiro128plus(seed);

		if (this.stringLength !== undefined && this.stringLength < maxStateLength) {
			throw new Error(
				`You can't use state generator with a db column length restriction of ${this.stringLength}. Set the maximum string length to at least ${maxStateLength}.`,
			);
		}

		this.state = { rng };
	}

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

		let idx;
		[idx, this.state.rng] = prand.uniformIntDistribution(0, states.length - 1, this.state.rng);

		return states[idx];
	}
}

Domain

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free