Home / Class/ GelArrayBuilder Class — drizzle-orm Architecture

GelArrayBuilder Class — drizzle-orm Architecture

Architecture documentation for the GelArrayBuilder class in common.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  df95a4aa_e7ab_e923_aa5e_677e0c7a8aac["GelArrayBuilder"]
  a74dd48d_d5e3_6bb4_19c7_1954c9126816["common.ts"]
  df95a4aa_e7ab_e923_aa5e_677e0c7a8aac -->|defined in| a74dd48d_d5e3_6bb4_19c7_1954c9126816
  067f06ba_b296_dc3d_c892_7fe25fb80f90["constructor()"]
  df95a4aa_e7ab_e923_aa5e_677e0c7a8aac -->|method| 067f06ba_b296_dc3d_c892_7fe25fb80f90
  4f196b53_edb2_9f50_eb22_aa610b19aa19["build()"]
  df95a4aa_e7ab_e923_aa5e_677e0c7a8aac -->|method| 4f196b53_edb2_9f50_eb22_aa610b19aa19

Relationship Graph

Source Code

drizzle-orm/src/gel-core/columns/common.ts lines 259–306

export class GelArrayBuilder<
	T extends GelArrayColumnBuilderBaseConfig,
	TBase extends ColumnBuilderBaseConfig<ColumnDataType, string> | GelArrayColumnBuilderBaseConfig,
> extends GelColumnBuilder<
	T,
	{
		baseBuilder: TBase extends GelArrayColumnBuilderBaseConfig ? GelArrayBuilder<
				TBase,
				TBase extends { baseBuilder: infer TBaseBuilder extends ColumnBuilderBaseConfig<any, any> } ? TBaseBuilder
					: never
			>
			: GelColumnBuilder<TBase, {}, Simplify<Omit<TBase, keyof ColumnBuilderBaseConfig<any, any>>>>;
		size: T['size'];
	},
	{
		baseBuilder: TBase extends GelArrayColumnBuilderBaseConfig ? GelArrayBuilder<
				TBase,
				TBase extends { baseBuilder: infer TBaseBuilder extends ColumnBuilderBaseConfig<any, any> } ? TBaseBuilder
					: never
			>
			: GelColumnBuilder<TBase, {}, Simplify<Omit<TBase, keyof ColumnBuilderBaseConfig<any, any>>>>;
		size: T['size'];
	}
> {
	static override readonly [entityKind] = 'GelArrayBuilder';

	constructor(
		name: string,
		baseBuilder: GelArrayBuilder<T, TBase>['config']['baseBuilder'],
		size: T['size'],
	) {
		super(name, 'array', 'GelArray');
		this.config.baseBuilder = baseBuilder;
		this.config.size = size;
	}

	/** @internal */
	override build<TTableName extends string>(
		table: AnyGelTable<{ name: TTableName }>,
	): GelArray<MakeColumnConfig<T, TTableName> & { size: T['size']; baseBuilder: T['baseBuilder'] }, TBase> {
		const baseColumn = this.config.baseBuilder.build(table);
		return new GelArray<MakeColumnConfig<T, TTableName> & { size: T['size']; baseBuilder: T['baseBuilder'] }, TBase>(
			table as AnyGelTable<{ name: MakeColumnConfig<T, TTableName>['tableName'] }>,
			this.config as ColumnBuilderRuntimeConfig<any, any>,
			baseColumn,
		);
	}
}

Domain

Frequently Asked Questions

What is the GelArrayBuilder class?
GelArrayBuilder is a class in the drizzle-orm codebase, defined in drizzle-orm/src/gel-core/columns/common.ts.
Where is GelArrayBuilder defined?
GelArrayBuilder is defined in drizzle-orm/src/gel-core/columns/common.ts at line 259.

Analyze Your Own Codebase

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

Try Supermodel Free