Home / Type/ BuildSubquerySelection Type — drizzle-orm Architecture

BuildSubquerySelection Type — drizzle-orm Architecture

Architecture documentation for the BuildSubquerySelection type/interface in select.types.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  0c874713_f5e9_1fef_39bc_052f37613324["BuildSubquerySelection"]
  7e7f8434_4765_0a70_b7fa_d197dd2fa706["select.types.ts"]
  0c874713_f5e9_1fef_39bc_052f37613324 -->|defined in| 7e7f8434_4765_0a70_b7fa_d197dd2fa706
  style 0c874713_f5e9_1fef_39bc_052f37613324 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-orm/src/query-builders/select.types.ts lines 116–131

export type BuildSubquerySelection<
	TSelection extends ColumnsSelection,
	TNullability extends Record<string, JoinNullability>,
> = TSelection extends never ? any
	:
		& {
			[Key in keyof TSelection]: TSelection[Key] extends SQL
				? DrizzleTypeError<'You cannot reference this field without assigning it an alias first - use `.as(<alias>)`'>
				: TSelection[Key] extends SQL.Aliased ? TSelection[Key]
				: TSelection[Key] extends Table ? BuildSubquerySelection<TSelection[Key]['_']['columns'], TNullability>
				: TSelection[Key] extends Column
					? ApplyNullabilityToColumn<TSelection[Key], TNullability[TSelection[Key]['_']['tableName']]>
				: TSelection[Key] extends ColumnsSelection ? BuildSubquerySelection<TSelection[Key], TNullability>
				: never;
		}
		& {};

Frequently Asked Questions

What is the BuildSubquerySelection type?
BuildSubquerySelection is a type/interface in the drizzle-orm codebase, defined in drizzle-orm/src/query-builders/select.types.ts.
Where is BuildSubquerySelection defined?
BuildSubquerySelection is defined in drizzle-orm/src/query-builders/select.types.ts at line 116.

Analyze Your Own Codebase

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

Try Supermodel Free