Home / Type/ BuildSchema Type — drizzle-orm Architecture

BuildSchema Type — drizzle-orm Architecture

Architecture documentation for the BuildSchema type/interface in schema.types.internal.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  bf930177_4314_81c1_a430_c44000691433["BuildSchema"]
  8beb3c26_f68c_2b02_ad7a_a436848c5635["schema.types.internal.ts"]
  bf930177_4314_81c1_a430_c44000691433 -->|defined in| 8beb3c26_f68c_2b02_ad7a_a436848c5635
  style bf930177_4314_81c1_a430_c44000691433 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-valibot/src/schema.types.internal.ts lines 50–71

export type BuildSchema<
	TType extends 'select' | 'insert' | 'update',
	TColumns extends Record<string, any>,
	TRefinements extends Record<string, any> | undefined,
> = v.ObjectSchema<
	Simplify<
		{
			readonly [K in keyof TColumns as ColumnIsGeneratedAlwaysAs<TColumns[K]> extends true ? never : K]:
				TColumns[K] extends infer TColumn extends Column
					? IsRefinementDefined<TRefinements, Assume<K, string>> extends true
						? Assume<HandleRefinement<TType, TRefinements[K & keyof TRefinements], TColumn>, v.GenericSchema>
					: HandleColumn<TType, TColumn>
					: TColumns[K] extends infer TObject extends SelectedFieldsFlat<Column> | Table | View ? BuildSchema<
							TType,
							GetSelection<TObject>,
							TRefinements extends object ? TRefinements[K & keyof TRefinements] : undefined
						>
					: v.AnySchema;
		}
	>,
	undefined
>;

Frequently Asked Questions

What is the BuildSchema type?
BuildSchema is a type/interface in the drizzle-orm codebase, defined in drizzle-valibot/src/schema.types.internal.ts.
Where is BuildSchema defined?
BuildSchema is defined in drizzle-valibot/src/schema.types.internal.ts at line 50.

Analyze Your Own Codebase

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

Try Supermodel Free