SelectPartialResult Type — drizzle-orm Architecture
Architecture documentation for the SelectPartialResult type/interface in select.types.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD 4df8c58c_d714_c888_40f7_0cfb1f5207a8["SelectPartialResult"] 7e7f8434_4765_0a70_b7fa_d197dd2fa706["select.types.ts"] 4df8c58c_d714_c888_40f7_0cfb1f5207a8 -->|defined in| 7e7f8434_4765_0a70_b7fa_d197dd2fa706 style 4df8c58c_d714_c888_40f7_0cfb1f5207a8 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
drizzle-orm/src/query-builders/select.types.ts lines 47–74
type SelectPartialResult<TFields, TNullability extends Record<string, JoinNullability>> = TNullability extends
TNullability ? {
[Key in keyof TFields]: TFields[Key] extends infer TField
? TField extends Table ? TField['_']['name'] extends keyof TNullability ? ApplyNullability<
SelectResultFields<TField['_']['columns']>,
TNullability[TField['_']['name']]
>
: never
: TField extends Column
? TField['_']['tableName'] extends keyof TNullability
? ApplyNullability<SelectResultField<TField>, TNullability[TField['_']['tableName']]>
: never
: TField extends SQL | SQL.Aliased ? SelectResultField<TField>
: TField extends Subquery ? FromSingleKeyObject<
TField['_']['selectedFields'],
TField['_']['selectedFields'] extends { [key: string]: infer TValue } ? SelectResultField<TValue> : never,
'You can only select one column in the subquery'
>
: TField extends Record<string, any>
? TField[keyof TField] extends AnyColumn<{ tableName: infer TTableName extends string }> | SQL | SQL.Aliased
? Not<IsUnion<TTableName>> extends true
? ApplyNullability<SelectResultFields<TField>, TNullability[TTableName]>
: SelectPartialResult<TField, TNullability>
: never
: never
: never;
}
: never;
Source
Frequently Asked Questions
What is the SelectPartialResult type?
SelectPartialResult is a type/interface in the drizzle-orm codebase, defined in drizzle-orm/src/query-builders/select.types.ts.
Where is SelectPartialResult defined?
SelectPartialResult is defined in drizzle-orm/src/query-builders/select.types.ts at line 47.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free