Skip to content

Commit

Permalink
Add has onUpdateNow for mysql timestamp
Browse files Browse the repository at this point in the history
  • Loading branch information
AndriiSherman committed Feb 22, 2023
1 parent 5c7e5dd commit 99df063
Showing 1 changed file with 21 additions and 21 deletions.
42 changes: 21 additions & 21 deletions drizzle-orm/src/mysql-core/columns/date.common.ts
@@ -1,12 +1,14 @@
import { ColumnBaseConfig } from '~/column';
import { ColumnBuilderBaseConfig, UpdateCBConfig } from '~/column-builder';
import { SQL, sql } from '~/sql';
import { AnyMySqlTable } from '../table';

import { MySqlColumnBuilder } from './common';
import { MySqlColumn, MySqlColumnBuilder } from './common';

export abstract class MySqlDateColumnBaseBuilder<
T extends ColumnBuilderBaseConfig,
T extends Partial<ColumnBuilderBaseConfig>,
TConfig extends Record<string, unknown> = {},
> extends MySqlColumnBuilder<T, TConfig> {
> extends MySqlColumnBuilder<T, TConfig & { hasOnUpdateNow: boolean }> {
hasOnUpdateNow: boolean = false;

override notNull(): MySqlDateColumnBaseBuilder<UpdateCBConfig<T, { notNull: true }>> {
Expand All @@ -28,26 +30,24 @@ export abstract class MySqlDateColumnBaseBuilder<
}

onUpdateNow(): MySqlDateColumnBaseBuilder<UpdateCBConfig<T, { hasDefault: true }>> {
this.hasOnUpdateNow = true;
this.config.hasOnUpdateNow = true;
this.config.hasDefault = true;
return this as ReturnType<this['onUpdateNow']>;
}
}

// export abstract class MySqlDateBaseColumn<
// TTableName extends string,
// TData extends ColumnData,
// TDriverParam extends MySqlColumnDriverParam,
// TNotNull extends boolean,
// THasDefault extends boolean,
// > extends MySqlColumn<TTableName, TData, TDriverParam, TNotNull, THasDefault> {
// readonly hasOnUpdateNow: boolean;

// constructor(
// table: AnyMySqlTable<TTableName>,
// builder: MySqlDateColumnBaseBuilder<TData, TDriverParam, TNotNull, THasDefault>,
// ) {
// super(table, builder);
// this.hasOnUpdateNow = builder.hasOnUpdateNow;
// }
// }
export abstract class MySqlDateBaseColumn<T extends Partial<ColumnBaseConfig & { hasOnUpdateNow: boolean }>>
extends MySqlColumn<T>
{
declare protected $hasOnUpdateNow: T['hasOnUpdateNow'];

readonly hasOnUpdateNow: boolean;

constructor(
override readonly table: AnyMySqlTable<{ name: T['tableName'] }>,
config: MySqlDateColumnBaseBuilder<Omit<T, 'tableName'>>['config'],
) {
super(table, config);
this.hasOnUpdateNow = config.hasOnUpdateNow;
}
}

0 comments on commit 99df063

Please sign in to comment.