GenerateDate Class — drizzle-orm Architecture
Architecture documentation for the GenerateDate class in Generators.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD d04a1bec_874f_b44b_134d_a8d1f0772da3["GenerateDate"] e5cee001_0354_7e76_ef0a_06dca71dc8ce["Generators.ts"] d04a1bec_874f_b44b_134d_a8d1f0772da3 -->|defined in| e5cee001_0354_7e76_ef0a_06dca71dc8ce 1b63fb81_68fc_f27d_650e_b0c1d2836d88["init()"] d04a1bec_874f_b44b_134d_a8d1f0772da3 -->|method| 1b63fb81_68fc_f27d_650e_b0c1d2836d88 9ce7c626_c155_91f5_a5ee_a7fad44aa937["generate()"] d04a1bec_874f_b44b_134d_a8d1f0772da3 -->|method| 9ce7c626_c155_91f5_a5ee_a7fad44aa937
Relationship Graph
Source Code
drizzle-seed/src/services/Generators.ts lines 842–907
export class GenerateDate extends AbstractGenerator<{
minDate?: string | Date;
maxDate?: string | Date;
arraySize?: number;
}> {
static override readonly entityKind: string = 'GenerateDate';
private state: {
rng: prand.RandomGenerator;
minDate: Date;
maxDate: Date;
} | undefined;
override init({ count, seed }: { count: number; seed: number }) {
super.init({ count, seed });
const rng = prand.xoroshiro128plus(seed);
let { minDate, maxDate } = this.params;
const anchorDate = new Date('2024-05-08');
const deltaMilliseconds = 4 * 31536000000;
if (typeof minDate === 'string') {
minDate = new Date(minDate);
}
if (typeof maxDate === 'string') {
maxDate = new Date(maxDate);
}
if (minDate === undefined) {
if (maxDate === undefined) {
minDate = new Date(anchorDate.getTime() - deltaMilliseconds);
maxDate = new Date(anchorDate.getTime() + deltaMilliseconds);
} else {
minDate = new Date(maxDate.getTime() - (2 * deltaMilliseconds));
}
}
if (maxDate === undefined) {
maxDate = new Date(minDate.getTime() + (2 * deltaMilliseconds));
}
this.state = { rng, minDate, maxDate };
}
generate() {
if (this.state === undefined) {
throw new Error('state is not defined.');
}
let milliseconds: number;
[milliseconds, this.state.rng] = prand.uniformIntDistribution(
this.state.minDate.getTime(),
this.state.maxDate.getTime(),
this.state.rng,
);
const date = new Date(milliseconds);
if (this.dataType === 'string') {
return date.toISOString().replace(/T.+/, '');
}
return date;
}
}
Domain
Defined In
Source
Frequently Asked Questions
What is the GenerateDate class?
GenerateDate is a class in the drizzle-orm codebase, defined in drizzle-seed/src/services/Generators.ts.
Where is GenerateDate defined?
GenerateDate is defined in drizzle-seed/src/services/Generators.ts at line 842.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free