Home / Class/ GenerateUniqueString Class — drizzle-orm Architecture

GenerateUniqueString Class — drizzle-orm Architecture

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

Entity Profile

Dependency Diagram

graph TD
  ceb81d51_73ac_db15_ae33_21b9d9a2eb54["GenerateUniqueString"]
  e5cee001_0354_7e76_ef0a_06dca71dc8ce["Generators.ts"]
  ceb81d51_73ac_db15_ae33_21b9d9a2eb54 -->|defined in| e5cee001_0354_7e76_ef0a_06dca71dc8ce
  f1d08d76_b3a6_05ba_bec6_6930cebfbf32["init()"]
  ceb81d51_73ac_db15_ae33_21b9d9a2eb54 -->|method| f1d08d76_b3a6_05ba_bec6_6930cebfbf32
  7ae272f9_2902_e014_c84c_8fbc3d2fedab["generate()"]
  ceb81d51_73ac_db15_ae33_21b9d9a2eb54 -->|method| 7ae272f9_2902_e014_c84c_8fbc3d2fedab

Relationship Graph

Source Code

drizzle-seed/src/services/Generators.ts lines 1470–1511

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

	private state: { rng: prand.RandomGenerator } | undefined;
	public override isUnique = true;

	override init({ seed }: { seed: number }) {
		const rng = prand.xoroshiro128plus(seed);
		this.state = { rng };
	}

	generate({ i }: { i: number }) {
		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;
		let currStr: string;

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

		return currStr.slice(0, 4) + uniqueStr + currStr.slice(4);
	}
}

Domain

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free