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
Defined In
Source
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