Home / Class/ GenerateNumber Class — drizzle-orm Architecture

GenerateNumber Class — drizzle-orm Architecture

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

Entity Profile

Dependency Diagram

graph TD
  5043a731_a89f_e117_34c8_0f660eefd9d6["GenerateNumber"]
  e5cee001_0354_7e76_ef0a_06dca71dc8ce["Generators.ts"]
  5043a731_a89f_e117_34c8_0f660eefd9d6 -->|defined in| e5cee001_0354_7e76_ef0a_06dca71dc8ce
  36efee29_bea2_da6e_974e_e77e924fb9b3["init()"]
  5043a731_a89f_e117_34c8_0f660eefd9d6 -->|method| 36efee29_bea2_da6e_974e_e77e924fb9b3
  78a15eb1_20f1_e00f_c86f_1be649b8afc3["generate()"]
  5043a731_a89f_e117_34c8_0f660eefd9d6 -->|method| 78a15eb1_20f1_e00f_c86f_1be649b8afc3

Relationship Graph

Source Code

drizzle-seed/src/services/Generators.ts lines 464–518

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

	private state: {
		rng: prand.RandomGenerator;
		minValue: number;
		maxValue: number;
		precision: number;
	} | undefined;
	override uniqueVersionOfGen = GenerateUniqueNumber;

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

		let { minValue, maxValue, precision } = this.params;
		if (precision === undefined) {
			precision = 100;
		}

		if (maxValue === undefined) {
			maxValue = precision * 1000;
		} else {
			maxValue *= precision;
		}

		if (minValue === undefined) {
			minValue = -maxValue;
		} else {
			minValue *= precision;
		}

		const rng = prand.xoroshiro128plus(seed);

		this.state = { rng, minValue, maxValue, precision };
	}

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

		let value: number;

		[value, this.state.rng] = prand.uniformIntDistribution(this.state.minValue, this.state.maxValue, this.state.rng);
		return value / this.state.precision;
	}
}

Domain

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free