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 06e21ad5_4a79_38ca_ddc3_d0ed3cb1ab5c["columnToSchema()"] 56015c82_287b_9f6e_abba_3d7f471c1e5c["column.ts"] 06e21ad5_4a79_38ca_ddc3_d0ed3cb1ab5c -->|defined in| 56015c82_287b_9f6e_abba_3d7f471c1e5c 8f6a4e48_fad1_f6d4_41bd_580208780715["handleColumns()"] 8f6a4e48_fad1_f6d4_41bd_580208780715 -->|calls| 06e21ad5_4a79_38ca_ddc3_d0ed3cb1ab5c cf473206_de02_b9d4_6152_24ac8addfcfa["isWithEnum()"] 06e21ad5_4a79_38ca_ddc3_d0ed3cb1ab5c -->|calls| cf473206_de02_b9d4_6152_24ac8addfcfa 8725eccf_899f_f8ab_d772_88de638f2609["mapEnumValues()"] 06e21ad5_4a79_38ca_ddc3_d0ed3cb1ab5c -->|calls| 8725eccf_899f_f8ab_d772_88de638f2609 8a7aba84_c937_4ded_8ff0_a5c4b33022b3["numberColumnToSchema()"] 06e21ad5_4a79_38ca_ddc3_d0ed3cb1ab5c -->|calls| 8a7aba84_c937_4ded_8ff0_a5c4b33022b3 6efc37eb_1d65_5e15_c814_5cf05b47c459["bigintColumnToSchema()"] 06e21ad5_4a79_38ca_ddc3_d0ed3cb1ab5c -->|calls| 6efc37eb_1d65_5e15_c814_5cf05b47c459 7ef23a38_3367_a4e9_510e_239e7cff2a71["stringColumnToSchema()"] 06e21ad5_4a79_38ca_ddc3_d0ed3cb1ab5c -->|calls| 7ef23a38_3367_a4e9_510e_239e7cff2a71 style 06e21ad5_4a79_38ca_ddc3_d0ed3cb1ab5c fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
drizzle-typebox/src/column.ts lines 71–141
export function columnToSchema(column: Column, t: typeof typebox): TSchema {
let schema!: TSchema;
if (isWithEnum(column)) {
schema = column.enumValues.length ? t.Enum(mapEnumValues(column.enumValues)) : t.String();
}
if (!schema) {
// Handle specific types
if (isColumnType<PgGeometry<any> | PgPointTuple<any>>(column, ['PgGeometry', 'PgPointTuple'])) {
schema = t.Tuple([t.Number(), t.Number()]);
} else if (
isColumnType<PgPointObject<any> | PgGeometryObject<any>>(column, ['PgGeometryObject', 'PgPointObject'])
) {
schema = t.Object({ x: t.Number(), y: t.Number() });
} else if (isColumnType<PgHalfVector<any> | PgVector<any>>(column, ['PgHalfVector', 'PgVector'])) {
schema = t.Array(
t.Number(),
column.dimensions
? {
minItems: column.dimensions,
maxItems: column.dimensions,
}
: undefined,
);
} else if (isColumnType<PgLineTuple<any>>(column, ['PgLine'])) {
schema = t.Tuple([t.Number(), t.Number(), t.Number()]);
} else if (isColumnType<PgLineABC<any>>(column, ['PgLineABC'])) {
schema = t.Object({
a: t.Number(),
b: t.Number(),
c: t.Number(),
});
} // Handle other types
else if (isColumnType<PgArray<any, any>>(column, ['PgArray'])) {
schema = t.Array(
columnToSchema(column.baseColumn, t),
column.size
? {
minItems: column.size,
maxItems: column.size,
}
: undefined,
);
} else if (column.dataType === 'array') {
schema = t.Array(t.Any());
} else if (column.dataType === 'number') {
schema = numberColumnToSchema(column, t);
} else if (column.dataType === 'bigint') {
schema = bigintColumnToSchema(column, t);
} else if (column.dataType === 'boolean') {
schema = t.Boolean();
} else if (column.dataType === 'date') {
schema = t.Date();
} else if (column.dataType === 'string') {
schema = stringColumnToSchema(column, t);
} else if (column.dataType === 'json') {
schema = jsonSchema;
} else if (column.dataType === 'custom') {
schema = t.Any();
} else if (column.dataType === 'buffer') {
schema = bufferSchema;
}
}
if (!schema) {
schema = t.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-typebox/src/column.ts.
Where is columnToSchema() defined?
columnToSchema() is defined in drizzle-typebox/src/column.ts at line 71.
What does columnToSchema() call?
columnToSchema() calls 5 function(s): bigintColumnToSchema, isWithEnum, mapEnumValues, 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