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
  c3d8e5a3_48ae_8877_650c_206534a04c0c["columnToSchema()"]
  04df2f9f_a1ec_55a9_5392_86b92a0e6555["column.ts"]
  c3d8e5a3_48ae_8877_650c_206534a04c0c -->|defined in| 04df2f9f_a1ec_55a9_5392_86b92a0e6555
  13946ad5_6a5e_4778_cacd_6820ecd398d1["handleColumns()"]
  13946ad5_6a5e_4778_cacd_6820ecd398d1 -->|calls| c3d8e5a3_48ae_8877_650c_206534a04c0c
  1a39b08e_8a1b_7db5_3757_5f7d6e60601e["isWithEnum()"]
  c3d8e5a3_48ae_8877_650c_206534a04c0c -->|calls| 1a39b08e_8a1b_7db5_3757_5f7d6e60601e
  b867e693_1ca4_ac0a_0989_d20dce8c0520["mapEnumValues()"]
  c3d8e5a3_48ae_8877_650c_206534a04c0c -->|calls| b867e693_1ca4_ac0a_0989_d20dce8c0520
  265f5c6f_fc43_a51c_a5cf_4949fb963824["numberColumnToSchema()"]
  c3d8e5a3_48ae_8877_650c_206534a04c0c -->|calls| 265f5c6f_fc43_a51c_a5cf_4949fb963824
  13d59763_25cd_3965_26ea_67e08989c85d["bigintColumnToSchema()"]
  c3d8e5a3_48ae_8877_650c_206534a04c0c -->|calls| 13d59763_25cd_3965_26ea_67e08989c85d
  9ce7dd2e_3029_ff13_c7f5_a5bcb7c9349d["stringColumnToSchema()"]
  c3d8e5a3_48ae_8877_650c_206534a04c0c -->|calls| 9ce7dd2e_3029_ff13_c7f5_a5bcb7c9349d
  style c3d8e5a3_48ae_8877_650c_206534a04c0c fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-valibot/src/column.ts lines 73–126

export function columnToSchema(column: Column): v.GenericSchema {
	let schema!: v.GenericSchema;

	if (isWithEnum(column)) {
		schema = column.enumValues.length ? v.enum(mapEnumValues(column.enumValues)) : v.string();
	}

	if (!schema) {
		// Handle specific types
		if (isColumnType<PgGeometry<any> | PgPointTuple<any>>(column, ['PgGeometry', 'PgPointTuple'])) {
			schema = v.tuple([v.number(), v.number()]);
		} else if (
			isColumnType<PgPointObject<any> | PgGeometryObject<any>>(column, ['PgGeometryObject', 'PgPointObject'])
		) {
			schema = v.object({ x: v.number(), y: v.number() });
		} else if (isColumnType<PgHalfVector<any> | PgVector<any>>(column, ['PgHalfVector', 'PgVector'])) {
			schema = v.array(v.number());
			schema = column.dimensions ? v.pipe(schema as v.ArraySchema<any, any>, v.length(column.dimensions)) : schema;
		} else if (isColumnType<PgLineTuple<any>>(column, ['PgLine'])) {
			schema = v.tuple([v.number(), v.number(), v.number()]);
			v.array(v.array(v.number()));
		} else if (isColumnType<PgLineABC<any>>(column, ['PgLineABC'])) {
			schema = v.object({ a: v.number(), b: v.number(), c: v.number() });
		} // Handle other types
		else if (isColumnType<PgArray<any, any>>(column, ['PgArray'])) {
			schema = v.array(columnToSchema(column.baseColumn));
			schema = column.size ? v.pipe(schema as v.ArraySchema<any, any>, v.length(column.size)) : schema;
		} else if (column.dataType === 'array') {
			schema = v.array(v.any());
		} else if (column.dataType === 'number') {
			schema = numberColumnToSchema(column);
		} else if (column.dataType === 'bigint') {
			schema = bigintColumnToSchema(column);
		} else if (column.dataType === 'boolean') {
			schema = v.boolean();
		} else if (column.dataType === 'date') {
			schema = v.date();
		} else if (column.dataType === 'string') {
			schema = stringColumnToSchema(column);
		} else if (column.dataType === 'json') {
			schema = jsonSchema;
		} else if (column.dataType === 'custom') {
			schema = v.any();
		} else if (column.dataType === 'buffer') {
			schema = bufferSchema;
		}
	}

	if (!schema) {
		schema = v.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-valibot/src/column.ts.
Where is columnToSchema() defined?
columnToSchema() is defined in drizzle-valibot/src/column.ts at line 73.
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