GenerateJson Class — drizzle-orm Architecture
Architecture documentation for the GenerateJson class in Generators.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD b5a9bb6b_0e7d_a582_f835_8b9053eb2844["GenerateJson"] e5cee001_0354_7e76_ef0a_06dca71dc8ce["Generators.ts"] b5a9bb6b_0e7d_a582_f835_8b9053eb2844 -->|defined in| e5cee001_0354_7e76_ef0a_06dca71dc8ce 34a7ed2e_bcbb_4434_73cd_c5f98132112c["init()"] b5a9bb6b_0e7d_a582_f835_8b9053eb2844 -->|method| 34a7ed2e_bcbb_4434_73cd_c5f98132112c 1b055623_11c1_d0e1_3dc5_77b47e620228["generate()"] b5a9bb6b_0e7d_a582_f835_8b9053eb2844 -->|method| 1b055623_11c1_d0e1_3dc5_77b47e620228
Relationship Graph
Source Code
drizzle-seed/src/services/Generators.ts lines 1100–1202
export class GenerateJson extends AbstractGenerator<{ arraySize?: number }> {
static override readonly entityKind: string = 'GenerateJson';
private state: {
emailGeneratorObj: GenerateEmail;
nameGeneratorObj: GenerateFirstName;
booleanGeneratorObj: GenerateBoolean;
salaryGeneratorObj: GenerateInt;
dateGeneratorObj: GenerateDate;
visitedCountriesNumberGeneratorObj: GenerateInt;
seed: number;
} | undefined;
override init({ count, seed }: { count: number; seed: number }) {
super.init({ count, seed });
const emailGeneratorObj = new GenerateEmail({});
emailGeneratorObj.init({ count, seed });
const nameGeneratorObj = new GenerateFirstName({});
nameGeneratorObj.init({ count, seed });
const booleanGeneratorObj = new GenerateBoolean({});
booleanGeneratorObj.init({
count,
seed,
});
const salaryGeneratorObj = new GenerateInt({ minValue: 200, maxValue: 4000 });
salaryGeneratorObj.init({
count,
seed,
...salaryGeneratorObj.params,
});
const dateGeneratorObj = new GenerateDate({});
dateGeneratorObj.dataType = 'string';
dateGeneratorObj.init({ count, seed });
const visitedCountriesNumberGeneratorObj = new GenerateInt({ minValue: 0, maxValue: 4 });
visitedCountriesNumberGeneratorObj.init(
{ count, seed, ...visitedCountriesNumberGeneratorObj.params },
);
this.state = {
emailGeneratorObj,
nameGeneratorObj,
booleanGeneratorObj,
salaryGeneratorObj,
dateGeneratorObj,
visitedCountriesNumberGeneratorObj,
seed,
};
}
generate({ i }: { i: number }) {
if (this.state === undefined) {
throw new Error('state is not defined.');
}
const visitedCountries: string[] = [];
const email = this.state.emailGeneratorObj.generate();
const name = this.state.nameGeneratorObj.generate();
const isGraduated = this.state.booleanGeneratorObj.generate();
const hasJob = this.state.booleanGeneratorObj.generate();
const salary = this.state.salaryGeneratorObj.generate() as number;
const startedWorking = this.state.dateGeneratorObj.generate() as string;
const visitedCountriesNumber = this.state.visitedCountriesNumberGeneratorObj.generate() as number;
const uniqueCountriesGeneratorObj = new GenerateUniqueCountry({});
uniqueCountriesGeneratorObj.init({
count: visitedCountriesNumber,
seed: this.state.seed + i,
});
for (let j = 0; j < visitedCountriesNumber; j++) {
visitedCountries.push(uniqueCountriesGeneratorObj.generate());
}
const returnJson = hasJob
? {
email,
Domain
Defined In
Source
Frequently Asked Questions
What is the GenerateJson class?
GenerateJson is a class in the drizzle-orm codebase, defined in drizzle-seed/src/services/Generators.ts.
Where is GenerateJson defined?
GenerateJson is defined in drizzle-seed/src/services/Generators.ts at line 1100.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free