Home / Class/ GenerateString Class — drizzle-orm Architecture

GenerateString Class — drizzle-orm Architecture

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

Entity Profile

Dependency Diagram

graph TD
  de2619a7_b9ff_16cc_097d_ee6555efeb5e["GenerateString"]
  e5cee001_0354_7e76_ef0a_06dca71dc8ce["Generators.ts"]
  de2619a7_b9ff_16cc_097d_ee6555efeb5e -->|defined in| e5cee001_0354_7e76_ef0a_06dca71dc8ce
  d8b3d81e_db2d_edd8_3be2_5ed478604eb3["init()"]
  de2619a7_b9ff_16cc_097d_ee6555efeb5e -->|method| d8b3d81e_db2d_edd8_3be2_5ed478604eb3
  e1c8402a_c68f_51c0_0696_f7cd12055919["generate()"]
  de2619a7_b9ff_16cc_097d_ee6555efeb5e -->|method| e1c8402a_c68f_51c0_0696_f7cd12055919

Relationship Graph

Source Code

drizzle-seed/src/services/Generators.ts lines 1423–1467

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

	private state: { rng: prand.RandomGenerator } | undefined;
	override uniqueVersionOfGen = GenerateUniqueString;

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

		const rng = prand.xoroshiro128plus(seed);
		this.state = { rng };
	}

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

		const minStringLength = 7;
		const maxStringLength = 20;
		const stringChars = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
		let idx: number,
			strLength: number,
			currStr: string;

		currStr = '';
		[strLength, this.state.rng] = prand.uniformIntDistribution(
			minStringLength,
			maxStringLength,
			this.state.rng,
		);
		for (let j = 0; j < strLength; j++) {
			[idx, this.state.rng] = prand.uniformIntDistribution(
				0,
				stringChars.length - 1,
				this.state.rng,
			);
			currStr += stringChars[idx];
		}
		return currStr;
	}
}

Domain

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free