columnToSchema() — drizzle-orm Function Reference
Architecture documentation for the columnToSchema() function in column.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD 85adcc4b_0e8e_a2e6_a538_afbe19c96304["columnToSchema()"] d3d3a2d1_4197_a39b_12f9_f9c7be54febc["column.ts"] 85adcc4b_0e8e_a2e6_a538_afbe19c96304 -->|defined in| d3d3a2d1_4197_a39b_12f9_f9c7be54febc af586672_33cc_3a35_8f1d_b940b9fbdc63["handleColumns()"] af586672_33cc_3a35_8f1d_b940b9fbdc63 -->|calls| 85adcc4b_0e8e_a2e6_a538_afbe19c96304 57767d5a_1294_4fb1_695c_85ee400edf79["isWithEnum()"] 85adcc4b_0e8e_a2e6_a538_afbe19c96304 -->|calls| 57767d5a_1294_4fb1_695c_85ee400edf79 69a6b543_31b2_91b6_44db_f5820af9a346["numberColumnToSchema()"] 85adcc4b_0e8e_a2e6_a538_afbe19c96304 -->|calls| 69a6b543_31b2_91b6_44db_f5820af9a346 44cb6f82_4017_dd83_eb46_d80b623fef5d["bigintColumnToSchema()"] 85adcc4b_0e8e_a2e6_a538_afbe19c96304 -->|calls| 44cb6f82_4017_dd83_eb46_d80b623fef5d 99a086c8_b913_2bf5_4ffe_aec1d7ef74f8["stringColumnToSchema()"] 85adcc4b_0e8e_a2e6_a538_afbe19c96304 -->|calls| 99a086c8_b913_2bf5_4ffe_aec1d7ef74f8 style 85adcc4b_0e8e_a2e6_a538_afbe19c96304 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
drizzle-zod/src/column.ts lines 70–135
export function columnToSchema(
column: Column,
factory:
| CreateSchemaFactoryOptions<
Partial<Record<'bigint' | 'boolean' | 'date' | 'number' | 'string', true>> | true | undefined
>
| undefined,
): zod.ZodType {
const z: typeof zod = factory?.zodInstance ?? zod;
const coerce = factory?.coerce ?? {};
let schema!: zod.ZodType;
if (isWithEnum(column)) {
schema = column.enumValues.length ? z.enum(column.enumValues) : z.string();
}
if (!schema) {
// Handle specific types
if (isColumnType<PgGeometry<any> | PgPointTuple<any>>(column, ['PgGeometry', 'PgPointTuple'])) {
schema = z.tuple([z.number(), z.number()]);
} else if (
isColumnType<PgPointObject<any> | PgGeometryObject<any>>(column, ['PgGeometryObject', 'PgPointObject'])
) {
schema = z.object({ x: z.number(), y: z.number() });
} else if (isColumnType<PgHalfVector<any> | PgVector<any>>(column, ['PgHalfVector', 'PgVector'])) {
schema = z.array(z.number());
schema = column.dimensions ? (schema as zod.ZodArray<any>).length(column.dimensions) : schema;
} else if (isColumnType<PgLineTuple<any>>(column, ['PgLine'])) {
schema = z.tuple([z.number(), z.number(), z.number()]);
} else if (isColumnType<PgLineABC<any>>(column, ['PgLineABC'])) {
schema = z.object({
a: z.number(),
b: z.number(),
c: z.number(),
});
} // Handle other types
else if (isColumnType<PgArray<any, any>>(column, ['PgArray'])) {
schema = z.array(columnToSchema(column.baseColumn, factory));
schema = column.size ? (schema as zod.ZodArray<any>).length(column.size) : schema;
} else if (column.dataType === 'array') {
schema = z.array(z.any());
} else if (column.dataType === 'number') {
schema = numberColumnToSchema(column, z, coerce);
} else if (column.dataType === 'bigint') {
schema = bigintColumnToSchema(column, z, coerce);
} else if (column.dataType === 'boolean') {
schema = coerce === true || coerce.boolean ? z.coerce.boolean() : z.boolean();
} else if (column.dataType === 'date') {
schema = coerce === true || coerce.date ? z.coerce.date() : z.date();
} else if (column.dataType === 'string') {
schema = stringColumnToSchema(column, z, coerce);
} else if (column.dataType === 'json') {
schema = jsonSchema;
} else if (column.dataType === 'custom') {
schema = z.any();
} else if (column.dataType === 'buffer') {
schema = bufferSchema;
}
}
if (!schema) {
schema = z.any();
}
return schema;
}
Domain
Subdomains
Defined In
Called By
Source
Frequently Asked Questions
What does columnToSchema() do?
columnToSchema() is a function in the drizzle-orm codebase, defined in drizzle-zod/src/column.ts.
Where is columnToSchema() defined?
columnToSchema() is defined in drizzle-zod/src/column.ts at line 70.
What does columnToSchema() call?
columnToSchema() calls 4 function(s): bigintColumnToSchema, isWithEnum, numberColumnToSchema, stringColumnToSchema.
What calls columnToSchema()?
columnToSchema() is called by 1 function(s): handleColumns.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free