Generators.ts — drizzle-orm Source File
Architecture documentation for Generators.ts, a typescript file in the drizzle-orm codebase. 18 imports, 6 dependents.
Entity Profile
Dependency Diagram
graph LR e5cee001_0354_7e76_ef0a_06dca71dc8ce["Generators.ts"] 548622d0_481e_2ed1_ebf9_8daa881d8d9b["adjectives.ts"] e5cee001_0354_7e76_ef0a_06dca71dc8ce --> 548622d0_481e_2ed1_ebf9_8daa881d8d9b 9f4b1a2a_9d78_39f9_5a16_cb8bce702da3["cityNames.ts"] e5cee001_0354_7e76_ef0a_06dca71dc8ce --> 9f4b1a2a_9d78_39f9_5a16_cb8bce702da3 648ff6d8_987e_83df_8c00_cd30c3f5c694["companyNameSuffixes.ts"] e5cee001_0354_7e76_ef0a_06dca71dc8ce --> 648ff6d8_987e_83df_8c00_cd30c3f5c694 3e5b5e2a_10e5_bbd8_4558_d35112d20cca["countries.ts"] e5cee001_0354_7e76_ef0a_06dca71dc8ce --> 3e5b5e2a_10e5_bbd8_4558_d35112d20cca 61c731c7_334e_933d_08e6_64d8ba51d1e0["emailDomains.ts"] e5cee001_0354_7e76_ef0a_06dca71dc8ce --> 61c731c7_334e_933d_08e6_64d8ba51d1e0 cee553c6_ee67_0d2e_d45a_d71ef53bd652["firstNames.ts"] e5cee001_0354_7e76_ef0a_06dca71dc8ce --> cee553c6_ee67_0d2e_d45a_d71ef53bd652 a044e088_1af8_0cd0_150e_7cdb30f9332c["jobsTitles.ts"] e5cee001_0354_7e76_ef0a_06dca71dc8ce --> a044e088_1af8_0cd0_150e_7cdb30f9332c 1f78c73d_3792_a591_e275_80c319a4355a["lastNames.ts"] e5cee001_0354_7e76_ef0a_06dca71dc8ce --> 1f78c73d_3792_a591_e275_80c319a4355a 6a145fc8_0bd2_3ede_f81d_aa0ce4f91349["loremIpsumSentences.ts"] e5cee001_0354_7e76_ef0a_06dca71dc8ce --> 6a145fc8_0bd2_3ede_f81d_aa0ce4f91349 3688a531_159c_b781_3433_f6d2fb463f42["phonesInfo.ts"] e5cee001_0354_7e76_ef0a_06dca71dc8ce --> 3688a531_159c_b781_3433_f6d2fb463f42 cf43445f_42d5_a331_7b0e_a2eb02a20d93["states.ts"] e5cee001_0354_7e76_ef0a_06dca71dc8ce --> cf43445f_42d5_a331_7b0e_a2eb02a20d93 9339787e_0c0b_c589_91f9_b5a8158edb51["streetSuffix.ts"] e5cee001_0354_7e76_ef0a_06dca71dc8ce --> 9339787e_0c0b_c589_91f9_b5a8158edb51 3590021a_2509_fc1e_c0e6_fb6ddfe693d4["utils.ts"] e5cee001_0354_7e76_ef0a_06dca71dc8ce --> 3590021a_2509_fc1e_c0e6_fb6ddfe693d4 2d30e7dc_1674_cb54_a3c4_d833d08298ce["fastCartesianProduct"] e5cee001_0354_7e76_ef0a_06dca71dc8ce --> 2d30e7dc_1674_cb54_a3c4_d833d08298ce style e5cee001_0354_7e76_ef0a_06dca71dc8ce fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
/* eslint-disable drizzle-internal/require-entity-kind */
import prand from 'pure-rand';
import adjectives, { maxStringLength as maxAdjectiveLength } from '../datasets/adjectives.ts';
import cityNames, { maxStringLength as maxCityNameLength } from '../datasets/cityNames.ts';
import companyNameSuffixes, { maxStringLength as maxCompanyNameSuffixLength } from '../datasets/companyNameSuffixes.ts';
import countries, { maxStringLength as maxCountryLength } from '../datasets/countries.ts';
import emailDomains, { maxStringLength as maxEmailDomainLength } from '../datasets/emailDomains.ts';
import firstNames, { maxStringLength as maxFirstNameLength } from '../datasets/firstNames.ts';
import jobsTitles, { maxStringLength as maxJobTitleLength } from '../datasets/jobsTitles.ts';
import lastNames, { maxStringLength as maxLastNameLength } from '../datasets/lastNames.ts';
import loremIpsumSentences, { maxStringLength as maxLoremIpsumLength } from '../datasets/loremIpsumSentences.ts';
import phonesInfo from '../datasets/phonesInfo.ts';
import states, { maxStringLength as maxStateLength } from '../datasets/states.ts';
import streetSuffix, { maxStringLength as maxStreetSuffixLength } from '../datasets/streetSuffix.ts';
import { fastCartesianProduct, fillTemplate, getWeightedIndices, isObject } from './utils.ts';
export abstract class AbstractGenerator<T = {}> {
static readonly entityKind: string = 'AbstractGenerator';
static readonly version: number = 1;
public isUnique = false;
public notNull = false;
// param for generators which have a unique version of themselves
public uniqueVersionOfGen?: new(params: T) => AbstractGenerator<T>;
public dataType?: string;
public timeSpent?: number;
//
public arraySize?: number;
public baseColumnDataType?: string;
// param for text-like generators
public stringLength?: number;
// params for GenerateValuesFromArray
public weightedCountSeed?: number | undefined;
public maxRepeatedValuesCount?: number | { weight: number; count: number | number[] }[] | undefined;
public params: T;
constructor(params?: T) {
this.params = params === undefined ? {} as T : params as T;
}
init(params: { count: number | { weight: number; count: number | number[] }[]; seed: number }): void;
init() {
this.updateParams();
}
updateParams() {
if ((this.params as any).arraySize !== undefined) {
this.arraySize = (this.params as any).arraySize;
}
if ((this.params as any).isUnique !== undefined) {
if ((this.params as any).isUnique === false && this.isUnique === true) {
throw new Error('specifying non unique generator to unique column.');
}
// ... (3060 more lines)
Domain
Subdomains
Classes
- GenerateArray
- GenerateBoolean
- GenerateCity
- GenerateCompanyName
- GenerateCountry
- GenerateDate
- GenerateDatetime
- GenerateDefault
- GenerateEmail
- GenerateEnum
- GenerateFirstName
- GenerateFullName
- GenerateInt
- GenerateIntPrimaryKey
- GenerateInterval
- GenerateJobTitle
- GenerateJson
- GenerateLastName
- GenerateLine
- GenerateLoremIpsum
- GenerateNumber
- GeneratePhoneNumber
- GeneratePoint
- GeneratePostcode
- GenerateSelfRelationsValuesFromArray
- GenerateState
- GenerateStreetAddress
- GenerateString
- GenerateTime
- GenerateTimestamp
- GenerateTimestampInt
- GenerateUUID
- GenerateUniqueCity
- GenerateUniqueCompanyName
- GenerateUniqueCountry
- GenerateUniqueFirstName
- GenerateUniqueFullName
- GenerateUniqueInt
- GenerateUniqueInterval
- GenerateUniqueLastName
- GenerateUniqueLine
- GenerateUniqueNumber
- GenerateUniquePoint
- GenerateUniquePostcode
- GenerateUniqueStreetAddress
- GenerateUniqueString
- GenerateValuesFromArray
- GenerateWeightedCount
- GenerateYear
- HollowGenerator
- WeightedRandomGenerator
Dependencies
Imported By
Source
Frequently Asked Questions
What does Generators.ts do?
Generators.ts is a source file in the drizzle-orm codebase, written in typescript. It belongs to the DrizzleSeed domain, SeedOrchestration subdomain.
What does Generators.ts depend on?
Generators.ts imports 18 module(s): adjectives.ts, cityNames.ts, companyNameSuffixes.ts, countries.ts, emailDomains.ts, fastCartesianProduct, fillTemplate, firstNames.ts, and 10 more.
What files import Generators.ts?
Generators.ts is imported by 6 file(s): GeneratorFuncs.ts, SeedService.ts, generatorsBenchmark.ts, index.ts, seedService.ts, v2.ts.
Where is Generators.ts in the architecture?
Generators.ts is located at drizzle-seed/src/services/Generators.ts (domain: DrizzleSeed, subdomain: SeedOrchestration, directory: drizzle-seed/src/services).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free