Home / Function/ columnToSchema() — drizzle-orm Function Reference

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;
}

Subdomains

Called By

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