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

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
  ca765c74_0736_6b3c_ef77_d23f23e865ce["handleColumns()"]
  b3de3d3d_2c66_6c17_9e29_4ae6af2ae68f["schema.ts"]
  ca765c74_0736_6b3c_ef77_d23f23e865ce -->|defined in| b3de3d3d_2c66_6c17_9e29_4ae6af2ae68f
  6e070b6f_d0cc_a64f_497c_11ca95c95ef6["createSelectSchema()"]
  6e070b6f_d0cc_a64f_497c_11ca95c95ef6 -->|calls| ca765c74_0736_6b3c_ef77_d23f23e865ce
  5e15e483_73fa_7a28_a2c2_91e5a4f78efd["createInsertSchema()"]
  5e15e483_73fa_7a28_a2c2_91e5a4f78efd -->|calls| ca765c74_0736_6b3c_ef77_d23f23e865ce
  6285c8fb_7970_1795_d0c8_944c048ca70b["createUpdateSchema()"]
  6285c8fb_7970_1795_d0c8_944c048ca70b -->|calls| ca765c74_0736_6b3c_ef77_d23f23e865ce
  cb025dc0_bc0b_8055_d943_c2035efad279["getColumns()"]
  ca765c74_0736_6b3c_ef77_d23f23e865ce -->|calls| cb025dc0_bc0b_8055_d943_c2035efad279
  b1c074f5_2da3_d41e_58f2_747e87ddff7d["columnToSchema()"]
  ca765c74_0736_6b3c_ef77_d23f23e865ce -->|calls| b1c074f5_2da3_d41e_58f2_747e87ddff7d
  style ca765c74_0736_6b3c_ef77_d23f23e865ce fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-arktype/src/schema.ts lines 14–59

function handleColumns(
	columns: Record<string, any>,
	refinements: Record<string, any>,
	conditions: Conditions,
): Type {
	const columnSchemas: Record<string, Type> = {};

	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' || (typeof refinement === 'function' && refinement.expression !== undefined))
		) {
			columnSchemas[key] = refinement;
			continue;
		}

		const column = is(selected, Column) ? selected : undefined;
		const schema = column ? columnToSchema(column) : type.unknown;
		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] = columnSchemas[key]!.or(type.null);
			}

			if (conditions.optional(column)) {
				columnSchemas[key] = columnSchemas[key]!.optional() as any;
			}
		}
	}

	return type(columnSchemas);
}

Subdomains

Frequently Asked Questions

What does handleColumns() do?
handleColumns() is a function in the drizzle-orm codebase, defined in drizzle-arktype/src/schema.ts.
Where is handleColumns() defined?
handleColumns() is defined in drizzle-arktype/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