Home / Class/ PgArrayBuilder Class — drizzle-orm Architecture

PgArrayBuilder Class — drizzle-orm Architecture

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

Entity Profile

Dependency Diagram

graph TD
  2efa6388_8186_dd3f_61aa_27d3d4ff929d["PgArrayBuilder"]
  f4f42b4c_8610_03dd_fe01_232098668127["common.ts"]
  2efa6388_8186_dd3f_61aa_27d3d4ff929d -->|defined in| f4f42b4c_8610_03dd_fe01_232098668127
  917bc6fa_bc5d_66e0_14b2_5322af41ce41["constructor()"]
  2efa6388_8186_dd3f_61aa_27d3d4ff929d -->|method| 917bc6fa_bc5d_66e0_14b2_5322af41ce41
  01764b62_b6db_8b73_0171_616892ec5c9c["build()"]
  2efa6388_8186_dd3f_61aa_27d3d4ff929d -->|method| 01764b62_b6db_8b73_0171_616892ec5c9c

Relationship Graph

Source Code

drizzle-orm/src/pg-core/columns/common.ts lines 260–307

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

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

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

Domain

Frequently Asked Questions

What is the PgArrayBuilder class?
PgArrayBuilder is a class in the drizzle-orm codebase, defined in drizzle-orm/src/pg-core/columns/common.ts.
Where is PgArrayBuilder defined?
PgArrayBuilder is defined in drizzle-orm/src/pg-core/columns/common.ts at line 260.

Analyze Your Own Codebase

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

Try Supermodel Free