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
  1bbc9a65_0bdd_5ba3_b99b_f9fcb2f8f5dd["ManualViewBuilder"]
  00013fdd_c67a_b05e_780e_20cc1f0af66b["view.ts"]
  1bbc9a65_0bdd_5ba3_b99b_f9fcb2f8f5dd -->|defined in| 00013fdd_c67a_b05e_780e_20cc1f0af66b
  5b8a161f_f55c_4ac5_34d2_1ffbb5d0d298["constructor()"]
  1bbc9a65_0bdd_5ba3_b99b_f9fcb2f8f5dd -->|method| 5b8a161f_f55c_4ac5_34d2_1ffbb5d0d298
  02781e8c_cd6d_eedb_b438_d13f99c3ae0a["existing()"]
  1bbc9a65_0bdd_5ba3_b99b_f9fcb2f8f5dd -->|method| 02781e8c_cd6d_eedb_b438_d13f99c3ae0a
  b42eafca_3383_2444_86ea_a5b14f6d7828["as()"]
  1bbc9a65_0bdd_5ba3_b99b_f9fcb2f8f5dd -->|method| b42eafca_3383_2444_86ea_a5b14f6d7828

Relationship Graph

Source Code

drizzle-orm/src/singlestore-core/view.ts lines 97–153

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

	private columns: Record<string, SingleStoreColumn>;

	constructor(
		name: TName,
		columns: TColumns,
		schema: string | undefined,
	) {
		super(name, schema);
		this.columns = getTableColumns(singlestoreTable(name, columns)) as BuildColumns<TName, TColumns, 'singlestore'>;
	}

	existing(): SingleStoreViewWithSelection<TName, true, BuildColumns<TName, TColumns, 'singlestore'>> {
		return new Proxy(
			new SingleStoreView({
				singlestoreConfig: 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 SingleStoreViewWithSelection<TName, true, BuildColumns<TName, TColumns, 'singlestore'>>;
	}

	as(query: SQL): SingleStoreViewWithSelection<TName, false, BuildColumns<TName, TColumns, 'singlestore'>> {
		return new Proxy(
			new SingleStoreView({
				singlestoreConfig: 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 SingleStoreViewWithSelection<TName, false, BuildColumns<TName, TColumns, 'singlestore'>>;
	}
}

Domain

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free