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

table.ts — drizzle-orm Source File

Architecture documentation for table.ts, a typescript file in the drizzle-orm codebase. 6 imports, 7 dependents.

File typescript DrizzleORM DatabaseDrivers 6 imports 7 dependents 3 functions 1 classes

Entity Profile

Dependency Diagram

graph LR
  ddbb35ab_7e67_d2b6_96ec_1f37678fcb67["table.ts"]
  7bd0ba6a_93b0_0df7_7f87_d1a726b246cb["column.ts"]
  ddbb35ab_7e67_d2b6_96ec_1f37678fcb67 --> 7bd0ba6a_93b0_0df7_7f87_d1a726b246cb
  bc6d807f_7198_da43_c1e6_911af80c80ee["entity.ts"]
  ddbb35ab_7e67_d2b6_96ec_1f37678fcb67 --> bc6d807f_7198_da43_c1e6_911af80c80ee
  7664a866_a3c0_a860_d69f_58ff87a29d3b["operations.ts"]
  ddbb35ab_7e67_d2b6_96ec_1f37678fcb67 --> 7664a866_a3c0_a860_d69f_58ff87a29d3b
  99347ab2_b1a1_faf4_e37c_7643e4b2eb8a["sql.ts"]
  ddbb35ab_7e67_d2b6_96ec_1f37678fcb67 --> 99347ab2_b1a1_faf4_e37c_7643e4b2eb8a
  213f6631_6831_f591_7018_211b37f28f85["table.utils.ts"]
  ddbb35ab_7e67_d2b6_96ec_1f37678fcb67 --> 213f6631_6831_f591_7018_211b37f28f85
  99737bc3_a631_a054_9291_f966c791930f["utils.ts"]
  ddbb35ab_7e67_d2b6_96ec_1f37678fcb67 --> 99737bc3_a631_a054_9291_f966c791930f
  ab181952_5759_c0bf_aeab_f255a140fe2a["alias.ts"]
  ab181952_5759_c0bf_aeab_f255a140fe2a --> ddbb35ab_7e67_d2b6_96ec_1f37678fcb67
  f75147d3_9ada_e5d8_9b05_204b10aba05f["casing.ts"]
  f75147d3_9ada_e5d8_9b05_204b10aba05f --> ddbb35ab_7e67_d2b6_96ec_1f37678fcb67
  7bd0ba6a_93b0_0df7_7f87_d1a726b246cb["column.ts"]
  7bd0ba6a_93b0_0df7_7f87_d1a726b246cb --> ddbb35ab_7e67_d2b6_96ec_1f37678fcb67
  7664a866_a3c0_a860_d69f_58ff87a29d3b["operations.ts"]
  7664a866_a3c0_a860_d69f_58ff87a29d3b --> ddbb35ab_7e67_d2b6_96ec_1f37678fcb67
  98a54789_7505_9ccf_c7d4_5ddf382052ed["primary-key.ts"]
  98a54789_7505_9ccf_c7d4_5ddf382052ed --> ddbb35ab_7e67_d2b6_96ec_1f37678fcb67
  99347ab2_b1a1_faf4_e37c_7643e4b2eb8a["sql.ts"]
  99347ab2_b1a1_faf4_e37c_7643e4b2eb8a --> ddbb35ab_7e67_d2b6_96ec_1f37678fcb67
  99737bc3_a631_a054_9291_f966c791930f["utils.ts"]
  99737bc3_a631_a054_9291_f966c791930f --> ddbb35ab_7e67_d2b6_96ec_1f37678fcb67
  style ddbb35ab_7e67_d2b6_96ec_1f37678fcb67 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import type { Column, GetColumnData } from './column.ts';
import { entityKind } from './entity.ts';
import type { OptionalKeyOnly, RequiredKeyOnly } from './operations.ts';
import type { SQLWrapper } from './sql/sql.ts';
import { TableName } from './table.utils.ts';
import type { Simplify, Update } from './utils.ts';

export interface TableConfig<TColumn extends Column = Column<any>> {
	name: string;
	schema: string | undefined;
	columns: Record<string, TColumn>;
	dialect: string;
}

export type UpdateTableConfig<T extends TableConfig, TUpdate extends Partial<TableConfig>> = Required<
	Update<T, TUpdate>
>;

/** @internal */
export const Schema = Symbol.for('drizzle:Schema');

/** @internal */
export const Columns = Symbol.for('drizzle:Columns');

/** @internal */
export const ExtraConfigColumns = Symbol.for('drizzle:ExtraConfigColumns');

/** @internal */
export const OriginalName = Symbol.for('drizzle:OriginalName');

/** @internal */
export const BaseName = Symbol.for('drizzle:BaseName');

/** @internal */
export const IsAlias = Symbol.for('drizzle:IsAlias');

/** @internal */
export const ExtraConfigBuilder = Symbol.for('drizzle:ExtraConfigBuilder');

const IsDrizzleTable = Symbol.for('drizzle:IsDrizzleTable');

export interface Table<
	// eslint-disable-next-line @typescript-eslint/no-unused-vars
	T extends TableConfig = TableConfig,
> extends SQLWrapper {
	// SQLWrapper runtime implementation is defined in 'sql/sql.ts'
}

export class Table<T extends TableConfig = TableConfig> implements SQLWrapper {
	static readonly [entityKind]: string = 'Table';

	declare readonly _: {
		readonly brand: 'Table';
		readonly config: T;
		readonly name: T['name'];
		readonly schema: T['schema'];
		readonly columns: T['columns'];
		readonly inferSelect: InferSelectModel<Table<T>>;
		readonly inferInsert: InferInsertModel<Table<T>>;
	};
// ... (149 more lines)

Domain

Subdomains

Classes

Frequently Asked Questions

What does table.ts do?
table.ts is a source file in the drizzle-orm codebase, written in typescript. It belongs to the DrizzleORM domain, DatabaseDrivers subdomain.
What functions are defined in table.ts?
table.ts defines 3 function(s): getTableName, getTableUniqueName, isTable.
What does table.ts depend on?
table.ts imports 6 module(s): column.ts, entity.ts, operations.ts, sql.ts, table.utils.ts, utils.ts.
What files import table.ts?
table.ts is imported by 7 file(s): alias.ts, casing.ts, column.ts, operations.ts, primary-key.ts, sql.ts, utils.ts.
Where is table.ts in the architecture?
table.ts is located at drizzle-orm/src/table.ts (domain: DrizzleORM, subdomain: DatabaseDrivers, directory: drizzle-orm/src).

Analyze Your Own Codebase

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

Try Supermodel Free