GetValibotType Type — drizzle-orm Architecture
Architecture documentation for the GetValibotType type/interface in column.types.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD ce799fd1_fc3a_7d03_280e_43267f739da5["GetValibotType"] 8f030d4f_790e_1311_a4f1_f0509f0c2d44["column.types.ts"] ce799fd1_fc3a_7d03_280e_43267f739da5 -->|defined in| 8f030d4f_790e_1311_a4f1_f0509f0c2d44 style ce799fd1_fc3a_7d03_280e_43267f739da5 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
drizzle-valibot/src/column.types.ts lines 42–88
export type GetValibotType<
TData,
TDataType extends string,
TColumnType extends string,
TEnumValues extends string[] | undefined,
TBaseColumn extends Column | undefined,
TAdditionalProperties extends Record<string, any>,
> = TColumnType extends 'PgHalfVector' | 'PgVector' ? TAdditionalProperties['max'] extends number ? v.SchemaWithPipe<
[v.ArraySchema<v.NumberSchema<undefined>, undefined>, GetLengthAction<TAdditionalProperties, number[]>]
>
: v.ArraySchema<v.NumberSchema<undefined>, undefined>
: TColumnType extends 'PgUUID' ? v.SchemaWithPipe<[v.StringSchema<undefined>, v.UuidAction<string, undefined>]>
: TColumnType extends 'PgBinaryVector' ? v.SchemaWithPipe<
RemoveNeverElements<[
v.StringSchema<undefined>,
v.RegexAction<string, undefined>,
TAdditionalProperties['max'] extends number ? GetLengthAction<TAdditionalProperties, string> : never,
]>
>
: TBaseColumn extends Column ? TAdditionalProperties['max'] extends number ? v.SchemaWithPipe<
[
GetArraySchema<Assume<TBaseColumn, Column>>,
GetLengthAction<TAdditionalProperties, Assume<TBaseColumn, Column>['_']['data'][]>,
]
>
: GetArraySchema<Assume<TBaseColumn, Column>>
: IsEnumDefined<TEnumValues> extends true
? v.EnumSchema<{ readonly [K in Assume<TEnumValues, [string, ...string[]]>[number]]: K }, undefined>
: TColumnType extends 'PgGeometry' | 'PgPointTuple'
? v.TupleSchema<[v.NumberSchema<undefined>, v.NumberSchema<undefined>], undefined>
: TColumnType extends 'PgLine'
? v.TupleSchema<[v.NumberSchema<undefined>, v.NumberSchema<undefined>, v.NumberSchema<undefined>], undefined>
: TData extends Date ? v.DateSchema<undefined>
: TData extends Buffer ? v.GenericSchema<Buffer>
: TDataType extends 'array' ? v.ArraySchema<
GetValibotPrimitiveType<Assume<TData, any[]>[number], '', { noPipe: true }>,
undefined
>
: TData extends Record<string, any>
? TColumnType extends 'PgJson' | 'PgJsonb' | 'MySqlJson' | 'SingleStoreJson' | 'SQLiteTextJson' | 'SQLiteBlobJson'
? v.GenericSchema<TData>
: v.ObjectSchema<
{ readonly [K in keyof TData]: GetValibotPrimitiveType<TData[K], '', { noPipe: true }> },
undefined
>
: TDataType extends 'json' ? v.GenericSchema<Json>
: GetValibotPrimitiveType<TData, TColumnType, TAdditionalProperties>;
Defined In
Source
Frequently Asked Questions
What is the GetValibotType type?
GetValibotType is a type/interface in the drizzle-orm codebase, defined in drizzle-valibot/src/column.types.ts.
Where is GetValibotType defined?
GetValibotType is defined in drizzle-valibot/src/column.types.ts at line 42.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free