Home / Class/ GenerateTimestamp Class — drizzle-orm Architecture

GenerateTimestamp Class — drizzle-orm Architecture

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

Entity Profile

Dependency Diagram

graph TD
  2b9767de_2ad4_e5f4_cda6_c3b0f950bfb2["GenerateTimestamp"]
  e5cee001_0354_7e76_ef0a_06dca71dc8ce["Generators.ts"]
  2b9767de_2ad4_e5f4_cda6_c3b0f950bfb2 -->|defined in| e5cee001_0354_7e76_ef0a_06dca71dc8ce
  75e9a8a5_7190_adbc_8585_2e82fe00f48d["init()"]
  2b9767de_2ad4_e5f4_cda6_c3b0f950bfb2 -->|method| 75e9a8a5_7190_adbc_8585_2e82fe00f48d
  273c7454_c6f6_3f2e_89f6_885815c26847["generate()"]
  2b9767de_2ad4_e5f4_cda6_c3b0f950bfb2 -->|method| 273c7454_c6f6_3f2e_89f6_885815c26847

Relationship Graph

Source Code

drizzle-seed/src/services/Generators.ts lines 977–1019

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

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

	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 anchorTimestamp = new Date('2024-05-08');
		const twoYearsInMilliseconds = 2 * 31536000000;

		let date = new Date();
		let milliseconds: number;

		[milliseconds, this.state.rng] = prand.uniformIntDistribution(
			-twoYearsInMilliseconds,
			twoYearsInMilliseconds,
			this.state.rng,
		);
		date = new Date(date.setTime(anchorTimestamp.getTime() + milliseconds));

		if (this.dataType === 'string') {
			return date
				.toISOString()
				.replace('T', ' ')
				.replace(/\.\d{3}Z/, '');
		}

		return date;
	}
}

Domain

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free