Home / Type/ BuildQueryResult Type — drizzle-orm Architecture

BuildQueryResult Type — drizzle-orm Architecture

Architecture documentation for the BuildQueryResult type/interface in relations.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  83e78079_d43c_d440_5674_d2461a1b4a89["BuildQueryResult"]
  2f47d090_425d_2e56_2395_4c4d912316f0["relations.ts"]
  83e78079_d43c_d440_5674_d2461a1b4a89 -->|defined in| 2f47d090_425d_2e56_2395_4c4d912316f0
  style 83e78079_d43c_d440_5674_d2461a1b4a89 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-orm/src/relations.ts lines 349–404

export type BuildQueryResult<
	TSchema extends TablesRelationalConfig,
	TTableConfig extends TableRelationalConfig,
	TFullSelection extends true | Record<string, unknown>,
> = Equal<TFullSelection, true> extends true ? InferModelFromColumns<TTableConfig['columns']>
	: TFullSelection extends Record<string, unknown> ? Simplify<
			& (TFullSelection['columns'] extends Record<string, unknown> ? InferModelFromColumns<
					{
						[
							K in Equal<
								Exclude<
									TFullSelection['columns'][
										& keyof TFullSelection['columns']
										& keyof TTableConfig['columns']
									],
									undefined
								>,
								false
							> extends true ? Exclude<
									keyof TTableConfig['columns'],
									NonUndefinedKeysOnly<TFullSelection['columns']>
								>
								:
									& {
										[K in keyof TFullSelection['columns']]: Equal<
											TFullSelection['columns'][K],
											true
										> extends true ? K
											: never;
									}[keyof TFullSelection['columns']]
									& keyof TTableConfig['columns']
						]: TTableConfig['columns'][K];
					}
				>
				: InferModelFromColumns<TTableConfig['columns']>)
			& (TFullSelection['extras'] extends
				| Record<string, unknown>
				| ((...args: any[]) => Record<string, unknown>) ? {
					[
						K in NonUndefinedKeysOnly<
							ReturnTypeOrValue<TFullSelection['extras']>
						>
					]: Assume<
						ReturnTypeOrValue<TFullSelection['extras']>[K],
						SQL.Aliased
					>['_']['type'];
				}
				: {})
			& (TFullSelection['with'] extends Record<string, unknown> ? BuildRelationResult<
					TSchema,
					TFullSelection['with'],
					TTableConfig['relations']
				>
				: {})
		>
	: never;

Frequently Asked Questions

What is the BuildQueryResult type?
BuildQueryResult is a type/interface in the drizzle-orm codebase, defined in drizzle-orm/src/relations.ts.
Where is BuildQueryResult defined?
BuildQueryResult is defined in drizzle-orm/src/relations.ts at line 349.

Analyze Your Own Codebase

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

Try Supermodel Free