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 f1d3b33b_1bbb_c2e2_ddee_e622b196789b["ManualViewBuilder"] f3a29a26_df86_4100_d5ea_bc3a420b1722["view.ts"] f1d3b33b_1bbb_c2e2_ddee_e622b196789b -->|defined in| f3a29a26_df86_4100_d5ea_bc3a420b1722 4472a230_8b4f_21d2_d5cb_0acb52f6ee17["constructor()"] f1d3b33b_1bbb_c2e2_ddee_e622b196789b -->|method| 4472a230_8b4f_21d2_d5cb_0acb52f6ee17 cf3ceb06_abba_cd5d_8ecf_3e7af9ea81fe["existing()"] f1d3b33b_1bbb_c2e2_ddee_e622b196789b -->|method| cf3ceb06_abba_cd5d_8ecf_3e7af9ea81fe 86d9024a_421d_3c30_fb55_5e420400b077["as()"] f1d3b33b_1bbb_c2e2_ddee_e622b196789b -->|method| 86d9024a_421d_3c30_fb55_5e420400b077
Relationship Graph
Source Code
drizzle-orm/src/mysql-core/view.ts lines 88–144
export class ManualViewBuilder<
TName extends string = string,
TColumns extends Record<string, MySqlColumnBuilderBase> = Record<string, MySqlColumnBuilderBase>,
> extends ViewBuilderCore<{ name: TName; columns: TColumns }> {
static override readonly [entityKind]: string = 'MySqlManualViewBuilder';
private columns: Record<string, MySqlColumn>;
constructor(
name: TName,
columns: TColumns,
schema: string | undefined,
) {
super(name, schema);
this.columns = getTableColumns(mysqlTable(name, columns)) as BuildColumns<TName, TColumns, 'mysql'>;
}
existing(): MySqlViewWithSelection<TName, true, BuildColumns<TName, TColumns, 'mysql'>> {
return new Proxy(
new MySqlView({
mysqlConfig: 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 MySqlViewWithSelection<TName, true, BuildColumns<TName, TColumns, 'mysql'>>;
}
as(query: SQL): MySqlViewWithSelection<TName, false, BuildColumns<TName, TColumns, 'mysql'>> {
return new Proxy(
new MySqlView({
mysqlConfig: 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 MySqlViewWithSelection<TName, false, BuildColumns<TName, TColumns, 'mysql'>>;
}
}
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/mysql-core/view.ts.
Where is ManualViewBuilder defined?
ManualViewBuilder is defined in drizzle-orm/src/mysql-core/view.ts at line 88.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free