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. 9 imports, 11 dependents.

File typescript DrizzleORM SchemaDefinitions 9 imports 11 dependents 3 functions 1 classes

Entity Profile

Dependency Diagram

graph LR
  6ef75418_34dd_144f_22fc_b3be7afcdae3["table.ts"]
  d2980893_b21d_eaac_2456_8be2597fa822["all.ts"]
  6ef75418_34dd_144f_22fc_b3be7afcdae3 --> d2980893_b21d_eaac_2456_8be2597fa822
  10be2af7_7db3_c07a_cbad_b86581e25453["getSingleStoreColumnBuilders"]
  6ef75418_34dd_144f_22fc_b3be7afcdae3 --> 10be2af7_7db3_c07a_cbad_b86581e25453
  76efc057_bebb_43f9_90dc_cf3352a8e195["common.ts"]
  6ef75418_34dd_144f_22fc_b3be7afcdae3 --> 76efc057_bebb_43f9_90dc_cf3352a8e195
  327bd2f3_75e7_d7fe_7a78_094a33d431ad["indexes.ts"]
  6ef75418_34dd_144f_22fc_b3be7afcdae3 --> 327bd2f3_75e7_d7fe_7a78_094a33d431ad
  25e906a1_c13e_d066_63d5_981294b5c8a6["primary-keys.ts"]
  6ef75418_34dd_144f_22fc_b3be7afcdae3 --> 25e906a1_c13e_d066_63d5_981294b5c8a6
  e465503d_69a3_ba71_8f3c_fff0e7bf6f54["unique-constraint.ts"]
  6ef75418_34dd_144f_22fc_b3be7afcdae3 --> e465503d_69a3_ba71_8f3c_fff0e7bf6f54
  4902d8fe_5835_4d2e_05e6_8f0c296dadf3["column-builder.ts"]
  6ef75418_34dd_144f_22fc_b3be7afcdae3 --> 4902d8fe_5835_4d2e_05e6_8f0c296dadf3
  9347c3af_060d_bd99_cd17_d7f17fadf7cb["entity.ts"]
  6ef75418_34dd_144f_22fc_b3be7afcdae3 --> 9347c3af_060d_bd99_cd17_d7f17fadf7cb
  35d7bc63_23df_58be_e524_e01fab9a4a61["table.ts"]
  6ef75418_34dd_144f_22fc_b3be7afcdae3 --> 35d7bc63_23df_58be_e524_e01fab9a4a61
  4b8fcd9f_89bd_5f62_f781_0134945bd085["alias.ts"]
  4b8fcd9f_89bd_5f62_f781_0134945bd085 --> 6ef75418_34dd_144f_22fc_b3be7afcdae3
  3199034d_4f78_9531_a1cc_a28d0976f992["db.ts"]
  3199034d_4f78_9531_a1cc_a28d0976f992 --> 6ef75418_34dd_144f_22fc_b3be7afcdae3
  489de6a4_bc18_ef99_254c_d5ab3de6393d["dialect.ts"]
  489de6a4_bc18_ef99_254c_d5ab3de6393d --> 6ef75418_34dd_144f_22fc_b3be7afcdae3
  327bd2f3_75e7_d7fe_7a78_094a33d431ad["indexes.ts"]
  327bd2f3_75e7_d7fe_7a78_094a33d431ad --> 6ef75418_34dd_144f_22fc_b3be7afcdae3
  25e906a1_c13e_d066_63d5_981294b5c8a6["primary-keys.ts"]
  25e906a1_c13e_d066_63d5_981294b5c8a6 --> 6ef75418_34dd_144f_22fc_b3be7afcdae3
  6ce41f98_a2e3_b98f_3947_7f0160ad8fd3["count.ts"]
  6ce41f98_a2e3_b98f_3947_7f0160ad8fd3 --> 6ef75418_34dd_144f_22fc_b3be7afcdae3
  4f99f692_a3be_f3c5_db6a_2f56b93dea49["query.ts"]
  4f99f692_a3be_f3c5_db6a_2f56b93dea49 --> 6ef75418_34dd_144f_22fc_b3be7afcdae3
  style 6ef75418_34dd_144f_22fc_b3be7afcdae3 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import type { BuildColumns, BuildExtraConfigColumns } from '~/column-builder.ts';
import { entityKind } from '~/entity.ts';
import { Table, type TableConfig as TableConfigBase, type UpdateTableConfig } from '~/table.ts';
import { getSingleStoreColumnBuilders, type SingleStoreColumnBuilders } from './columns/all.ts';
import type { SingleStoreColumn, SingleStoreColumnBuilder, SingleStoreColumnBuilderBase } from './columns/common.ts';
import type { AnyIndexBuilder } from './indexes.ts';
import type { PrimaryKeyBuilder } from './primary-keys.ts';
import type { UniqueConstraintBuilder } from './unique-constraint.ts';

export type SingleStoreTableExtraConfigValue =
	| AnyIndexBuilder
	| PrimaryKeyBuilder
	| UniqueConstraintBuilder;

export type SingleStoreTableExtraConfig = Record<
	string,
	SingleStoreTableExtraConfigValue
>;

export type TableConfig = TableConfigBase<SingleStoreColumn>;

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

	declare protected $columns: T['columns'];

	/** @internal */
	static override readonly Symbol = Object.assign({}, Table.Symbol, {});

	/** @internal */
	override [Table.Symbol.Columns]!: NonNullable<T['columns']>;

	/** @internal */
	override [Table.Symbol.ExtraConfigBuilder]:
		| ((self: Record<string, SingleStoreColumn>) => SingleStoreTableExtraConfig)
		| undefined = undefined;
}

export type AnySingleStoreTable<TPartial extends Partial<TableConfig> = {}> = SingleStoreTable<
	UpdateTableConfig<TableConfig, TPartial>
>;

export type SingleStoreTableWithColumns<T extends TableConfig> =
	& SingleStoreTable<T>
	& {
		[Key in keyof T['columns']]: T['columns'][Key];
	};

export function singlestoreTableWithSchema<
	TTableName extends string,
	TSchemaName extends string | undefined,
	TColumnsMap extends Record<string, SingleStoreColumnBuilderBase>,
>(
	name: TTableName,
	columns: TColumnsMap | ((columnTypes: SingleStoreColumnBuilders) => TColumnsMap),
	extraConfig:
		| ((
			self: BuildColumns<TTableName, TColumnsMap, 'singlestore'>,
		) => SingleStoreTableExtraConfig | SingleStoreTableExtraConfigValue[])
		| undefined,
// ... (157 more lines)

Domain

Subdomains

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, SchemaDefinitions subdomain.
What functions are defined in table.ts?
table.ts defines 3 function(s): singlestoreTable, singlestoreTableCreator, singlestoreTableWithSchema.
What does table.ts depend on?
table.ts imports 9 module(s): all.ts, column-builder.ts, common.ts, entity.ts, getSingleStoreColumnBuilders, indexes.ts, primary-keys.ts, table.ts, and 1 more.
What files import table.ts?
table.ts is imported by 11 file(s): alias.ts, count.ts, db.ts, dialect.ts, indexes.ts, primary-keys.ts, query.ts, schema.ts, and 3 more.
Where is table.ts in the architecture?
table.ts is located at drizzle-orm/src/singlestore-core/table.ts (domain: DrizzleORM, subdomain: SchemaDefinitions, directory: drizzle-orm/src/singlestore-core).

Analyze Your Own Codebase

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

Try Supermodel Free