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
  1d254cb5_b6b3_1a9b_793c_794527dee644["ManualViewBuilder"]
  d25d55b4_d8a4_6f19_2b5c_2ef3a5375746["view.ts"]
  1d254cb5_b6b3_1a9b_793c_794527dee644 -->|defined in| d25d55b4_d8a4_6f19_2b5c_2ef3a5375746
  694ef068_cb38_db38_2fe8_748b62453192["constructor()"]
  1d254cb5_b6b3_1a9b_793c_794527dee644 -->|method| 694ef068_cb38_db38_2fe8_748b62453192
  50fca238_f126_9907_7b54_1a80279c568c["existing()"]
  1d254cb5_b6b3_1a9b_793c_794527dee644 -->|method| 50fca238_f126_9907_7b54_1a80279c568c
  08eaabed_a5b2_e70c_cf41_5aa75a588256["as()"]
  1d254cb5_b6b3_1a9b_793c_794527dee644 -->|method| 08eaabed_a5b2_e70c_cf41_5aa75a588256

Relationship Graph

Source Code

drizzle-orm/src/sqlite-core/view.ts lines 69–124

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

	private columns: Record<string, SQLiteColumn>;

	constructor(
		name: TName,
		columns: TColumns,
	) {
		super(name);
		this.columns = getTableColumns(sqliteTable(name, columns)) as BuildColumns<TName, TColumns, 'sqlite'>;
	}

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

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

Domain

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free