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 83a11b80_e207_86eb_ca3f_f0f07a251a5a["ViewBuilder"] d25d55b4_d8a4_6f19_2b5c_2ef3a5375746["view.ts"] 83a11b80_e207_86eb_ca3f_f0f07a251a5a -->|defined in| d25d55b4_d8a4_6f19_2b5c_2ef3a5375746 78de1af1_94d7_7aff_dcd1_2d967e620a43["as()"] 83a11b80_e207_86eb_ca3f_f0f07a251a5a -->|method| 78de1af1_94d7_7aff_dcd1_2d967e620a43
Relationship Graph
Source Code
drizzle-orm/src/sqlite-core/view.ts lines 37–67
export class ViewBuilder<TName extends string = string> extends ViewBuilderCore<{ name: TName }> {
static override readonly [entityKind]: string = 'SQLiteViewBuilder';
as<TSelection extends ColumnsSelection>(
qb: TypedQueryBuilder<TSelection> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelection>),
): SQLiteViewWithSelection<TName, false, AddAliasToSelection<TSelection, TName, 'sqlite'>> {
if (typeof qb === 'function') {
qb = qb(new QueryBuilder());
}
const selectionProxy = new SelectionProxyHandler<TSelection>({
alias: this.name,
sqlBehavior: 'error',
sqlAliasedBehavior: 'alias',
replaceOriginalName: true,
});
// const aliasedSelectedFields = new Proxy(qb.getSelectedFields(), selectionProxy);
const aliasedSelectedFields = qb.getSelectedFields();
return new Proxy(
new SQLiteView({
// sqliteConfig: this.config,
config: {
name: this.name,
schema: undefined,
selectedFields: aliasedSelectedFields,
query: qb.getSQL().inlineParams(),
},
}),
selectionProxy as any,
) as SQLiteViewWithSelection<TName, false, AddAliasToSelection<TSelection, TName, 'sqlite'>>;
}
}
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/sqlite-core/view.ts.
Where is ViewBuilder defined?
ViewBuilder is defined in drizzle-orm/src/sqlite-core/view.ts at line 37.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free