Home / Function/ generate() — drizzle-orm Function Reference

generate() — drizzle-orm Function Reference

Architecture documentation for the generate() function in Generators.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  cf7d0536_2315_3048_f863_848c58a61729["generate()"]
  e2c413a5_f1cc_23b4_acd7_ab626330b0d7["GenerateUniqueInt"]
  cf7d0536_2315_3048_f863_848c58a61729 -->|defined in| e2c413a5_f1cc_23b4_acd7_ab626330b0d7
  2a2f15f9_4451_afca_fcc5_0b46ffae1a97["generateNumber()"]
  cf7d0536_2315_3048_f863_848c58a61729 -->|calls| 2a2f15f9_4451_afca_fcc5_0b46ffae1a97
  72c3e623_159f_0722_0f85_3d39045d8852["generateBigint()"]
  cf7d0536_2315_3048_f863_848c58a61729 -->|calls| 72c3e623_159f_0722_0f85_3d39045d8852
  style cf7d0536_2315_3048_f863_848c58a61729 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-seed/src/services/Generators.ts lines 700–748

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

		let intervalIdx: number,
			numb: number | bigint | undefined;

		const intervalsToAdd: (number | bigint)[][] = [];

		if (this.state.intervals.length === 0) {
			if (this.skipCheck === false) {
				throw new RangeError(
					'generateUniqueInt: count exceeds max number of unique integers in given range(min, max), try to increase range.',
				);
			} else {
				return;
			}
		}

		[intervalIdx, this.state.rng] = prand.uniformIntDistribution(
			0,
			this.state.intervals.length - 1,
			this.state.rng,
		);

		const interval = this.state.intervals[intervalIdx] as (number | bigint)[];
		const [currMinNumb, currMaxNumb] = [interval[0] as number | bigint, interval[1] as number | bigint];

		if (typeof currMinNumb === 'number' && typeof currMaxNumb === 'number') {
			numb = this.generateNumber(currMinNumb, currMaxNumb, intervalsToAdd as number[][], intervalIdx);
		} else if (typeof currMinNumb === 'bigint' && typeof currMaxNumb === 'bigint') {
			numb = this.generateBigint(
				currMinNumb as bigint,
				currMaxNumb as bigint,
				intervalsToAdd as bigint[][],
				intervalIdx,
			);
		}

		if (this.dataType === 'string') {
			return String(numb);
		}

		if (this.dataType === 'bigint' && numb !== undefined) {
			numb = BigInt(numb);
		}
		return numb;
	}

Domain

Subdomains

Frequently Asked Questions

What does generate() do?
generate() is a function in the drizzle-orm codebase, defined in drizzle-seed/src/services/Generators.ts.
Where is generate() defined?
generate() is defined in drizzle-seed/src/services/Generators.ts at line 700.
What does generate() call?
generate() calls 2 function(s): generateBigint, generateNumber.

Analyze Your Own Codebase

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

Try Supermodel Free