Home / File/ date.common.ts — drizzle-orm Source File

date.common.ts — drizzle-orm Source File

Architecture documentation for date.common.ts, a typescript file in the drizzle-orm codebase. 6 imports, 1 dependents.

File typescript DrizzleORM 6 imports 1 dependents

Entity Profile

Dependency Diagram

graph LR
  ad03c9b1_961e_2b53_cf32_4012da6d88c5["date.common.ts"]
  83c65ad5_22a0_d33f_47b8_c2ed1c8d8bbb["common.ts"]
  ad03c9b1_961e_2b53_cf32_4012da6d88c5 --> 83c65ad5_22a0_d33f_47b8_c2ed1c8d8bbb
  8da43de9_1be1_48fb_1db1_a6bc59f5b306["MySqlColumn"]
  ad03c9b1_961e_2b53_cf32_4012da6d88c5 --> 8da43de9_1be1_48fb_1db1_a6bc59f5b306
  2dc784c6_95e9_4e28_ec81_7caf4acbd426["column-builder.ts"]
  ad03c9b1_961e_2b53_cf32_4012da6d88c5 --> 2dc784c6_95e9_4e28_ec81_7caf4acbd426
  05f0a280_d0c9_693a_a4bf_83cc671012d2["column.ts"]
  ad03c9b1_961e_2b53_cf32_4012da6d88c5 --> 05f0a280_d0c9_693a_a4bf_83cc671012d2
  27705a9d_afe9_57dd_8c97_e52d8a67d426["entity.ts"]
  ad03c9b1_961e_2b53_cf32_4012da6d88c5 --> 27705a9d_afe9_57dd_8c97_e52d8a67d426
  be483a7f_d5d7_7a9b_9a13_44a4a6aafbbd["sql.ts"]
  ad03c9b1_961e_2b53_cf32_4012da6d88c5 --> be483a7f_d5d7_7a9b_9a13_44a4a6aafbbd
  3f4b2513_5741_1f8c_8c92_e76673d698a6["timestamp.ts"]
  3f4b2513_5741_1f8c_8c92_e76673d698a6 --> ad03c9b1_961e_2b53_cf32_4012da6d88c5
  style ad03c9b1_961e_2b53_cf32_4012da6d88c5 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import type {
	ColumnBuilderBaseConfig,
	ColumnBuilderExtraConfig,
	ColumnDataType,
	HasDefault,
} from '~/column-builder.ts';
import type { ColumnBaseConfig } from '~/column.ts';
import { entityKind } from '~/entity.ts';
import { sql } from '~/sql/sql.ts';
import { MySqlColumn, MySqlColumnBuilder } from './common.ts';

export interface MySqlDateColumnBaseConfig {
	hasOnUpdateNow: boolean;
}

export abstract class MySqlDateColumnBaseBuilder<
	T extends ColumnBuilderBaseConfig<ColumnDataType, string>,
	TRuntimeConfig extends object = object,
	TExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,
> extends MySqlColumnBuilder<T, TRuntimeConfig & MySqlDateColumnBaseConfig, TExtraConfig> {
	static override readonly [entityKind]: string = 'MySqlDateColumnBuilder';

	defaultNow() {
		return this.default(sql`(now())`);
	}

	// "on update now" also adds an implicit default value to the column - https://dev.mysql.com/doc/refman/8.0/en/timestamp-initialization.html
	onUpdateNow(): HasDefault<this> {
		this.config.hasOnUpdateNow = true;
		this.config.hasDefault = true;
		return this as HasDefault<this>;
	}
}

export abstract class MySqlDateBaseColumn<
	T extends ColumnBaseConfig<ColumnDataType, string>,
	TRuntimeConfig extends object = object,
> extends MySqlColumn<T, MySqlDateColumnBaseConfig & TRuntimeConfig> {
	static override readonly [entityKind]: string = 'MySqlDateColumn';

	readonly hasOnUpdateNow: boolean = this.config.hasOnUpdateNow;
}

Domain

Dependencies

Frequently Asked Questions

What does date.common.ts do?
date.common.ts is a source file in the drizzle-orm codebase, written in typescript. It belongs to the DrizzleORM domain.
What does date.common.ts depend on?
date.common.ts imports 6 module(s): MySqlColumn, column-builder.ts, column.ts, common.ts, entity.ts, sql.ts.
What files import date.common.ts?
date.common.ts is imported by 1 file(s): timestamp.ts.
Where is date.common.ts in the architecture?
date.common.ts is located at drizzle-orm/src/mysql-core/columns/date.common.ts (domain: DrizzleORM, directory: drizzle-orm/src/mysql-core/columns).

Analyze Your Own Codebase

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

Try Supermodel Free