handleColumns() — drizzle-orm Function Reference
Architecture documentation for the handleColumns() function in schema.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD 13946ad5_6a5e_4778_cacd_6820ecd398d1["handleColumns()"] a1e9a186_355d_5f4f_7cf0_889804754896["schema.ts"] 13946ad5_6a5e_4778_cacd_6820ecd398d1 -->|defined in| a1e9a186_355d_5f4f_7cf0_889804754896 45e60f26_0ea4_9369_3f26_4b3753318c50["createSelectSchema()"] 45e60f26_0ea4_9369_3f26_4b3753318c50 -->|calls| 13946ad5_6a5e_4778_cacd_6820ecd398d1 51053726_b279_4246_4a15_cb3178d277ca["createInsertSchema()"] 51053726_b279_4246_4a15_cb3178d277ca -->|calls| 13946ad5_6a5e_4778_cacd_6820ecd398d1 ff828040_c22f_bd9a_5984_1e794793f7f8["createUpdateSchema()"] ff828040_c22f_bd9a_5984_1e794793f7f8 -->|calls| 13946ad5_6a5e_4778_cacd_6820ecd398d1 13cc8910_95ed_8a5c_5430_cbe853d889a2["getColumns()"] 13946ad5_6a5e_4778_cacd_6820ecd398d1 -->|calls| 13cc8910_95ed_8a5c_5430_cbe853d889a2 c3d8e5a3_48ae_8877_650c_206534a04c0c["columnToSchema()"] 13946ad5_6a5e_4778_cacd_6820ecd398d1 -->|calls| c3d8e5a3_48ae_8877_650c_206534a04c0c style 13946ad5_6a5e_4778_cacd_6820ecd398d1 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
drizzle-valibot/src/schema.ts lines 14–56
function handleColumns(
columns: Record<string, any>,
refinements: Record<string, any>,
conditions: Conditions,
): v.GenericSchema {
const columnSchemas: Record<string, v.GenericSchema> = {};
for (const [key, selected] of Object.entries(columns)) {
if (!is(selected, Column) && !is(selected, SQL) && !is(selected, SQL.Aliased) && typeof selected === 'object') {
const columns = isTable(selected) || isView(selected) ? getColumns(selected) : selected;
columnSchemas[key] = handleColumns(columns, refinements[key] ?? {}, conditions);
continue;
}
const refinement = refinements[key];
if (refinement !== undefined && typeof refinement !== 'function') {
columnSchemas[key] = refinement;
continue;
}
const column = is(selected, Column) ? selected : undefined;
const schema = column ? columnToSchema(column) : v.any();
const refined = typeof refinement === 'function' ? refinement(schema) : schema;
if (conditions.never(column)) {
continue;
} else {
columnSchemas[key] = refined;
}
if (column) {
if (conditions.nullable(column)) {
columnSchemas[key] = v.nullable(columnSchemas[key]!);
}
if (conditions.optional(column)) {
columnSchemas[key] = v.optional(columnSchemas[key]!);
}
}
}
return v.object(columnSchemas) as any;
}
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does handleColumns() do?
handleColumns() is a function in the drizzle-orm codebase, defined in drizzle-valibot/src/schema.ts.
Where is handleColumns() defined?
handleColumns() is defined in drizzle-valibot/src/schema.ts at line 14.
What does handleColumns() call?
handleColumns() calls 2 function(s): columnToSchema, getColumns.
What calls handleColumns()?
handleColumns() is called by 3 function(s): createInsertSchema, createSelectSchema, createUpdateSchema.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free