Home / Class/ ManualViewBuilder Class — drizzle-orm Architecture

ManualViewBuilder Class — drizzle-orm Architecture

Architecture documentation for the ManualViewBuilder class in view.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  d29aec74_f4ac_d0e5_3b04_35e6a58ece69["ManualViewBuilder"]
  257a76b8_a6d7_188d_c192_237373f7f9c0["view.ts"]
  d29aec74_f4ac_d0e5_3b04_35e6a58ece69 -->|defined in| 257a76b8_a6d7_188d_c192_237373f7f9c0
  9c20dbdb_23a6_49e4_aaac_10a7e0e9e756["constructor()"]
  d29aec74_f4ac_d0e5_3b04_35e6a58ece69 -->|method| 9c20dbdb_23a6_49e4_aaac_10a7e0e9e756
  9d77f300_f87c_c59f_b014_d4a74a19410f["existing()"]
  d29aec74_f4ac_d0e5_3b04_35e6a58ece69 -->|method| 9d77f300_f87c_c59f_b014_d4a74a19410f
  67ee5a91_a12c_1ae6_ee89_a129f3682b47["as()"]
  d29aec74_f4ac_d0e5_3b04_35e6a58ece69 -->|method| 67ee5a91_a12c_1ae6_ee89_a129f3682b47

Relationship Graph

Source Code

drizzle-orm/src/gel-core/view.ts lines 75–131

export class ManualViewBuilder<
	TName extends string = string,
	TColumns extends Record<string, GelColumnBuilderBase> = Record<string, GelColumnBuilderBase>,
> extends DefaultViewBuilderCore<{ name: TName; columns: TColumns }> {
	static override readonly [entityKind]: string = 'GelManualViewBuilder';

	private columns: Record<string, GelColumn>;

	constructor(
		name: TName,
		columns: TColumns,
		schema: string | undefined,
	) {
		super(name, schema);
		this.columns = getTableColumns(gelTable(name, columns));
	}

	existing(): GelViewWithSelection<TName, true, BuildColumns<TName, TColumns, 'gel'>> {
		return new Proxy(
			new GelView({
				GelConfig: undefined,
				config: {
					name: this.name,
					schema: this.schema,
					selectedFields: this.columns,
					query: undefined,
				},
			}),
			new SelectionProxyHandler({
				alias: this.name,
				sqlBehavior: 'error',
				sqlAliasedBehavior: 'alias',
				replaceOriginalName: true,
			}),
		) as GelViewWithSelection<TName, true, BuildColumns<TName, TColumns, 'gel'>>;
	}

	as(query: SQL): GelViewWithSelection<TName, false, BuildColumns<TName, TColumns, 'gel'>> {
		return new Proxy(
			new GelView({
				GelConfig: this.config,
				config: {
					name: this.name,
					schema: this.schema,
					selectedFields: this.columns,
					query: query.inlineParams(),
				},
			}),
			new SelectionProxyHandler({
				alias: this.name,
				sqlBehavior: 'error',
				sqlAliasedBehavior: 'alias',
				replaceOriginalName: true,
			}),
		) as GelViewWithSelection<TName, false, BuildColumns<TName, TColumns, 'gel'>>;
	}
}

Domain

Frequently Asked Questions

What is the ManualViewBuilder class?
ManualViewBuilder is a class in the drizzle-orm codebase, defined in drizzle-orm/src/gel-core/view.ts.
Where is ManualViewBuilder defined?
ManualViewBuilder is defined in drizzle-orm/src/gel-core/view.ts at line 75.

Analyze Your Own Codebase

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

Try Supermodel Free