common.ts — drizzle-orm Source File
Architecture documentation for common.ts, a typescript file in the drizzle-orm codebase. 8 imports, 30 dependents.
Entity Profile
Dependency Diagram
graph LR 835b37b8_5537_93b3_6081_c47371e60b11["common.ts"] b9679e1e_3f87_26cc_50d3_ac82b21fefe5["unique-constraint.ts"] 835b37b8_5537_93b3_6081_c47371e60b11 --> b9679e1e_3f87_26cc_50d3_ac82b21fefe5 6d699d36_3b21_3e21_94b3_083f230fa20a["uniqueKeyName"] 835b37b8_5537_93b3_6081_c47371e60b11 --> 6d699d36_3b21_3e21_94b3_083f230fa20a 2dc784c6_95e9_4e28_ec81_7caf4acbd426["column-builder.ts"] 835b37b8_5537_93b3_6081_c47371e60b11 --> 2dc784c6_95e9_4e28_ec81_7caf4acbd426 05f0a280_d0c9_693a_a4bf_83cc671012d2["column.ts"] 835b37b8_5537_93b3_6081_c47371e60b11 --> 05f0a280_d0c9_693a_a4bf_83cc671012d2 27705a9d_afe9_57dd_8c97_e52d8a67d426["entity.ts"] 835b37b8_5537_93b3_6081_c47371e60b11 --> 27705a9d_afe9_57dd_8c97_e52d8a67d426 744f5864_8de4_6d1f_dcfc_5ef4ae408c9a["table.ts"] 835b37b8_5537_93b3_6081_c47371e60b11 --> 744f5864_8de4_6d1f_dcfc_5ef4ae408c9a be483a7f_d5d7_7a9b_9a13_44a4a6aafbbd["sql.ts"] 835b37b8_5537_93b3_6081_c47371e60b11 --> be483a7f_d5d7_7a9b_9a13_44a4a6aafbbd ecce3253_1e75_a87f_27b3_ca87e81a3024["utils.ts"] 835b37b8_5537_93b3_6081_c47371e60b11 --> ecce3253_1e75_a87f_27b3_ca87e81a3024 197aa0f6_946b_5015_1bde_4ec260833bfa["bigint.ts"] 197aa0f6_946b_5015_1bde_4ec260833bfa --> 835b37b8_5537_93b3_6081_c47371e60b11 6a43e9bb_7b0f_e453_7491_ad9e1f9bd9e4["binary.ts"] 6a43e9bb_7b0f_e453_7491_ad9e1f9bd9e4 --> 835b37b8_5537_93b3_6081_c47371e60b11 8a3ebdf7_7ec2_d98d_91de_1295196e5424["boolean.ts"] 8a3ebdf7_7ec2_d98d_91de_1295196e5424 --> 835b37b8_5537_93b3_6081_c47371e60b11 fabc2878_bfa9_c1ec_445c_2d0af8485090["char.ts"] fabc2878_bfa9_c1ec_445c_2d0af8485090 --> 835b37b8_5537_93b3_6081_c47371e60b11 8acf7f1c_a3fb_3dd8_17fe_b6f3f78e2a74["custom.ts"] 8acf7f1c_a3fb_3dd8_17fe_b6f3f78e2a74 --> 835b37b8_5537_93b3_6081_c47371e60b11 d63c4430_b147_d5b5_5da6_712cd86ff436["date.common.ts"] d63c4430_b147_d5b5_5da6_712cd86ff436 --> 835b37b8_5537_93b3_6081_c47371e60b11 style 835b37b8_5537_93b3_6081_c47371e60b11 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import type {
ColumnBuilderBase,
ColumnBuilderBaseConfig,
ColumnBuilderExtraConfig,
ColumnBuilderRuntimeConfig,
ColumnDataType,
HasDefault,
IsAutoincrement,
MakeColumnConfig,
} from '~/column-builder.ts';
import { ColumnBuilder } from '~/column-builder.ts';
import type { ColumnBaseConfig } from '~/column.ts';
import { Column } from '~/column.ts';
import { entityKind } from '~/entity.ts';
import type { AnySingleStoreTable, SingleStoreTable } from '~/singlestore-core/table.ts';
import type { SQL } from '~/sql/sql.ts';
import type { Update } from '~/utils.ts';
import { uniqueKeyName } from '../unique-constraint.ts';
export interface SingleStoreColumnBuilderBase<
T extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,
TTypeConfig extends object = object,
> extends ColumnBuilderBase<T, TTypeConfig & { dialect: 'singlestore' }> {}
export interface SingleStoreGeneratedColumnConfig {
mode?: 'virtual' | 'stored';
}
export abstract class SingleStoreColumnBuilder<
T extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string> & {
data: any;
},
TRuntimeConfig extends object = object,
TTypeConfig extends object = object,
TExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,
> extends ColumnBuilder<T, TRuntimeConfig, TTypeConfig & { dialect: 'singlestore' }, TExtraConfig>
implements SingleStoreColumnBuilderBase<T, TTypeConfig>
{
static override readonly [entityKind]: string = 'SingleStoreColumnBuilder';
unique(name?: string): this {
this.config.isUnique = true;
this.config.uniqueName = name;
return this;
}
// TODO: Implement generated columns for SingleStore (https://docs.singlestore.com/cloud/create-a-database/using-persistent-computed-columns/)
/** @internal */
generatedAlwaysAs(as: SQL | T['data'] | (() => SQL), config?: SingleStoreGeneratedColumnConfig) {
this.config.generated = {
as,
type: 'always',
mode: config?.mode ?? 'virtual',
};
return this as any;
}
/** @internal */
abstract build<TTableName extends string>(
table: AnySingleStoreTable<{ name: TTableName }>,
): SingleStoreColumn<MakeColumnConfig<T, TTableName>>;
}
// To understand how to use `SingleStoreColumn` and `AnySingleStoreColumn`, see `Column` and `AnyColumn` documentation.
export abstract class SingleStoreColumn<
T extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>,
TRuntimeConfig extends object = {},
TTypeConfig extends object = {},
> extends Column<T, TRuntimeConfig, TTypeConfig & { dialect: 'singlestore' }> {
static override readonly [entityKind]: string = 'SingleStoreColumn';
constructor(
override readonly table: SingleStoreTable,
config: ColumnBuilderRuntimeConfig<T['data'], TRuntimeConfig>,
) {
if (!config.uniqueName) {
config.uniqueName = uniqueKeyName(table, [config.name]);
}
super(table, config);
}
}
export type AnySingleStoreColumn<TPartial extends Partial<ColumnBaseConfig<ColumnDataType, string>> = {}> =
SingleStoreColumn<
Required<Update<ColumnBaseConfig<ColumnDataType, string>, TPartial>>
>;
export interface SingleStoreColumnWithAutoIncrementConfig {
autoIncrement: boolean;
}
export abstract class SingleStoreColumnBuilderWithAutoIncrement<
T extends ColumnBuilderBaseConfig<ColumnDataType, string> = ColumnBuilderBaseConfig<ColumnDataType, string>,
TRuntimeConfig extends object = object,
TExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,
> extends SingleStoreColumnBuilder<T, TRuntimeConfig & SingleStoreColumnWithAutoIncrementConfig, TExtraConfig> {
static override readonly [entityKind]: string = 'SingleStoreColumnBuilderWithAutoIncrement';
constructor(name: NonNullable<T['name']>, dataType: T['dataType'], columnType: T['columnType']) {
super(name, dataType, columnType);
this.config.autoIncrement = false;
}
autoincrement(): IsAutoincrement<HasDefault<this>> {
this.config.autoIncrement = true;
this.config.hasDefault = true;
return this as IsAutoincrement<HasDefault<this>>;
}
}
export abstract class SingleStoreColumnWithAutoIncrement<
T extends ColumnBaseConfig<ColumnDataType, string> = ColumnBaseConfig<ColumnDataType, string>,
TRuntimeConfig extends object = object,
> extends SingleStoreColumn<T, SingleStoreColumnWithAutoIncrementConfig & TRuntimeConfig> {
static override readonly [entityKind]: string = 'SingleStoreColumnWithAutoIncrement';
readonly autoIncrement: boolean = this.config.autoIncrement;
}
Domain
Types
Dependencies
- column-builder.ts
- column.ts
- entity.ts
- sql.ts
- table.ts
- unique-constraint.ts
- uniqueKeyName
- utils.ts
Imported By
- drizzle-orm/src/singlestore-core/columns/bigint.ts
- drizzle-orm/src/singlestore-core/columns/binary.ts
- drizzle-orm/src/singlestore-core/columns/boolean.ts
- drizzle-orm/src/singlestore-core/columns/char.ts
- drizzle-orm/src/singlestore-core/columns/custom.ts
- drizzle-orm/src/singlestore-core/columns/date.common.ts
- drizzle-orm/src/singlestore-core/columns/date.ts
- drizzle-orm/src/singlestore-core/columns/datetime.ts
- drizzle-orm/src/singlestore-core/columns/decimal.ts
- drizzle-orm/src/singlestore-core/query-builders/delete.ts
- drizzle-orm/src/singlestore-core/dialect.ts
- drizzle-orm/src/singlestore-core/columns/double.ts
- drizzle-orm/src/singlestore-core/columns/enum.ts
- drizzle-orm/src/singlestore-core/columns/float.ts
- drizzle-orm/src/singlestore-core/query-builders/insert.ts
- drizzle-orm/src/singlestore-core/columns/int.ts
- drizzle-orm/src/singlestore-core/columns/json.ts
- drizzle-orm/src/singlestore-core/columns/mediumint.ts
- drizzle-orm/src/singlestore-core/columns/real.ts
- drizzle-orm/src/singlestore-core/columns/serial.ts
- drizzle-orm/src/singlestore-core/columns/smallint.ts
- drizzle-orm/src/singlestore-core/table.ts
- drizzle-orm/src/singlestore-core/columns/text.ts
- drizzle-orm/src/singlestore-core/columns/time.ts
- drizzle-orm/src/singlestore-core/columns/tinyint.ts
- drizzle-orm/src/singlestore-core/query-builders/update.ts
- drizzle-orm/src/singlestore-core/columns/varbinary.ts
- drizzle-orm/src/singlestore-core/columns/varchar.ts
- drizzle-orm/src/singlestore-core/columns/vector.ts
- drizzle-orm/src/singlestore-core/columns/year.ts
Source
Frequently Asked Questions
What does common.ts do?
common.ts is a source file in the drizzle-orm codebase, written in typescript. It belongs to the DrizzleORM domain.
What does common.ts depend on?
common.ts imports 8 module(s): column-builder.ts, column.ts, entity.ts, sql.ts, table.ts, unique-constraint.ts, uniqueKeyName, utils.ts.
What files import common.ts?
common.ts is imported by 30 file(s): bigint.ts, binary.ts, boolean.ts, char.ts, custom.ts, date.common.ts, date.ts, datetime.ts, and 22 more.
Where is common.ts in the architecture?
common.ts is located at drizzle-orm/src/singlestore-core/columns/common.ts (domain: DrizzleORM, directory: drizzle-orm/src/singlestore-core/columns).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free