Home / File/ column.ts — drizzle-orm Source File

column.ts — drizzle-orm Source File

Architecture documentation for column.ts, a typescript file in the drizzle-orm codebase. 5 imports, 10 dependents.

File typescript DrizzleORM RelationalQuery 5 imports 10 dependents 1 functions

Entity Profile

Dependency Diagram

graph LR
  7bd0ba6a_93b0_0df7_7f87_d1a726b246cb["column.ts"]
  b1f62532_46b8_598e_816c_9da2dce0b761["column-builder.ts"]
  7bd0ba6a_93b0_0df7_7f87_d1a726b246cb --> b1f62532_46b8_598e_816c_9da2dce0b761
  bc6d807f_7198_da43_c1e6_911af80c80ee["entity.ts"]
  7bd0ba6a_93b0_0df7_7f87_d1a726b246cb --> bc6d807f_7198_da43_c1e6_911af80c80ee
  99347ab2_b1a1_faf4_e37c_7643e4b2eb8a["sql.ts"]
  7bd0ba6a_93b0_0df7_7f87_d1a726b246cb --> 99347ab2_b1a1_faf4_e37c_7643e4b2eb8a
  ddbb35ab_7e67_d2b6_96ec_1f37678fcb67["table.ts"]
  7bd0ba6a_93b0_0df7_7f87_d1a726b246cb --> ddbb35ab_7e67_d2b6_96ec_1f37678fcb67
  99737bc3_a631_a054_9291_f966c791930f["utils.ts"]
  7bd0ba6a_93b0_0df7_7f87_d1a726b246cb --> 99737bc3_a631_a054_9291_f966c791930f
  ab181952_5759_c0bf_aeab_f255a140fe2a["alias.ts"]
  ab181952_5759_c0bf_aeab_f255a140fe2a --> 7bd0ba6a_93b0_0df7_7f87_d1a726b246cb
  b1f62532_46b8_598e_816c_9da2dce0b761["column-builder.ts"]
  b1f62532_46b8_598e_816c_9da2dce0b761 --> 7bd0ba6a_93b0_0df7_7f87_d1a726b246cb
  7664a866_a3c0_a860_d69f_58ff87a29d3b["operations.ts"]
  7664a866_a3c0_a860_d69f_58ff87a29d3b --> 7bd0ba6a_93b0_0df7_7f87_d1a726b246cb
  98a54789_7505_9ccf_c7d4_5ddf382052ed["primary-key.ts"]
  98a54789_7505_9ccf_c7d4_5ddf382052ed --> 7bd0ba6a_93b0_0df7_7f87_d1a726b246cb
  2f47d090_425d_2e56_2395_4c4d912316f0["relations.ts"]
  2f47d090_425d_2e56_2395_4c4d912316f0 --> 7bd0ba6a_93b0_0df7_7f87_d1a726b246cb
  a54a11d6_4422_4e60_3d09_6c04afd8f1eb["selection-proxy.ts"]
  a54a11d6_4422_4e60_3d09_6c04afd8f1eb --> 7bd0ba6a_93b0_0df7_7f87_d1a726b246cb
  7941083e_097f_1d7e_1c38_777ce9bcb0a2["select.ts"]
  7941083e_097f_1d7e_1c38_777ce9bcb0a2 --> 7bd0ba6a_93b0_0df7_7f87_d1a726b246cb
  99347ab2_b1a1_faf4_e37c_7643e4b2eb8a["sql.ts"]
  99347ab2_b1a1_faf4_e37c_7643e4b2eb8a --> 7bd0ba6a_93b0_0df7_7f87_d1a726b246cb
  ddbb35ab_7e67_d2b6_96ec_1f37678fcb67["table.ts"]
  ddbb35ab_7e67_d2b6_96ec_1f37678fcb67 --> 7bd0ba6a_93b0_0df7_7f87_d1a726b246cb
  99737bc3_a631_a054_9291_f966c791930f["utils.ts"]
  99737bc3_a631_a054_9291_f966c791930f --> 7bd0ba6a_93b0_0df7_7f87_d1a726b246cb
  style 7bd0ba6a_93b0_0df7_7f87_d1a726b246cb fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import type {
	ColumnBuilderBaseConfig,
	ColumnBuilderRuntimeConfig,
	ColumnDataType,
	GeneratedColumnConfig,
	GeneratedIdentityConfig,
} from './column-builder.ts';
import { entityKind } from './entity.ts';
import type { DriverValueMapper, SQL, SQLWrapper } from './sql/sql.ts';
import type { Table } from './table.ts';
import type { Update } from './utils.ts';

export interface ColumnBaseConfig<
	TDataType extends ColumnDataType,
	TColumnType extends string,
> extends ColumnBuilderBaseConfig<TDataType, TColumnType> {
	tableName: string;
	notNull: boolean;
	hasDefault: boolean;
	isPrimaryKey: boolean;
	isAutoincrement: boolean;
	hasRuntimeDefault: boolean;
}

export type ColumnTypeConfig<T extends ColumnBaseConfig<ColumnDataType, string>, TTypeConfig extends object> = T & {
	brand: 'Column';
	tableName: T['tableName'];
	name: T['name'];
	dataType: T['dataType'];
	columnType: T['columnType'];
	data: T['data'];
	driverParam: T['driverParam'];
	notNull: T['notNull'];
	hasDefault: T['hasDefault'];
	isPrimaryKey: T['isPrimaryKey'];
	isAutoincrement: T['isAutoincrement'];
	hasRuntimeDefault: T['hasRuntimeDefault'];
	enumValues: T['enumValues'];
	baseColumn: T extends { baseColumn: infer U } ? U : unknown;
	generated: GeneratedColumnConfig<T['data']> | undefined;
	identity: undefined | 'always' | 'byDefault';
} & TTypeConfig;

export type ColumnRuntimeConfig<TData, TRuntimeConfig extends object> = ColumnBuilderRuntimeConfig<
	TData,
	TRuntimeConfig
>;

export interface Column<
	T extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>,
	// eslint-disable-next-line @typescript-eslint/no-unused-vars
	TRuntimeConfig extends object = object,
	// eslint-disable-next-line @typescript-eslint/no-unused-vars
	TTypeConfig extends object = object,
> extends DriverValueMapper<T['data'], T['driverParam']>, SQLWrapper {
	// SQLWrapper runtime implementation is defined in 'sql/sql.ts'
}
/*
	`Column` only accepts a full `ColumnConfig` as its generic.
	To infer parts of the config, use `AnyColumn` that accepts a partial config.
// ... (89 more lines)

Domain

Subdomains

Functions

Frequently Asked Questions

What does column.ts do?
column.ts is a source file in the drizzle-orm codebase, written in typescript. It belongs to the DrizzleORM domain, RelationalQuery subdomain.
What functions are defined in column.ts?
column.ts defines 1 function(s): T.
What does column.ts depend on?
column.ts imports 5 module(s): column-builder.ts, entity.ts, sql.ts, table.ts, utils.ts.
What files import column.ts?
column.ts is imported by 10 file(s): alias.ts, column-builder.ts, operations.ts, primary-key.ts, relations.ts, select.ts, selection-proxy.ts, sql.ts, and 2 more.
Where is column.ts in the architecture?
column.ts is located at drizzle-orm/src/column.ts (domain: DrizzleORM, subdomain: RelationalQuery, directory: drizzle-orm/src).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free