ViewBuilder Class — drizzle-orm Architecture
Architecture documentation for the ViewBuilder class in view.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD 7708fa91_4abb_cb43_9c45_d26fcc56b7ee["ViewBuilder"] 257a76b8_a6d7_188d_c192_237373f7f9c0["view.ts"] 7708fa91_4abb_cb43_9c45_d26fcc56b7ee -->|defined in| 257a76b8_a6d7_188d_c192_237373f7f9c0 460b4129_e994_5490_add4_bed955c15787["as()"] 7708fa91_4abb_cb43_9c45_d26fcc56b7ee -->|method| 460b4129_e994_5490_add4_bed955c15787
Relationship Graph
Source Code
drizzle-orm/src/gel-core/view.ts lines 44–73
export class ViewBuilder<TName extends string = string> extends DefaultViewBuilderCore<{ name: TName }> {
static override readonly [entityKind]: string = 'GelViewBuilder';
as<TSelectedFields extends ColumnsSelection>(
qb: TypedQueryBuilder<TSelectedFields> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelectedFields>),
): GelViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'gel'>> {
if (typeof qb === 'function') {
qb = qb(new QueryBuilder());
}
const selectionProxy = new SelectionProxyHandler<TSelectedFields>({
alias: this.name,
sqlBehavior: 'error',
sqlAliasedBehavior: 'alias',
replaceOriginalName: true,
});
const aliasedSelection = new Proxy(qb.getSelectedFields(), selectionProxy);
return new Proxy(
new GelView({
GelConfig: this.config,
config: {
name: this.name,
schema: this.schema,
selectedFields: aliasedSelection,
query: qb.getSQL().inlineParams(),
},
}),
selectionProxy as any,
) as GelViewWithSelection<TName, false, AddAliasToSelection<TSelectedFields, TName, 'gel'>>;
}
}
Domain
Defined In
Source
Frequently Asked Questions
What is the ViewBuilder class?
ViewBuilder is a class in the drizzle-orm codebase, defined in drizzle-orm/src/gel-core/view.ts.
Where is ViewBuilder defined?
ViewBuilder is defined in drizzle-orm/src/gel-core/view.ts at line 44.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free