UNPKG

drizzle-cuid2

Version:

A utility package for generating CUID2 columns in Drizzle ORM

33 lines (29 loc) 1.46 kB
import { ColumnBuilderBaseConfig, entityKind, MakeColumnConfig, HasDefault, ColumnBaseConfig } from 'drizzle-orm'; import { MySqlColumnBuilder, AnyMySqlTable, MySqlColumn } from 'drizzle-orm/mysql-core'; type MySqlCuid2BuilderInitial<TName extends string> = Omit<MySqlCuid2Builder<{ name: TName; dataType: 'string'; columnType: 'MySqlCuid2'; data: string; driverParam: string; enumValues: undefined; }>, 'default' | '$default' | '$defaultFn'>; declare class MySqlCuid2Builder<T extends ColumnBuilderBaseConfig<'string', 'MySqlCuid2'>> extends MySqlColumnBuilder<T> { static readonly [entityKind]: string; constructor(name: T['name']); build<TTableName extends string>(table: AnyMySqlTable<{ name: TTableName; }>): MySqlCuid2<MakeColumnConfig<T, TTableName>>; /*** * Creates a random `cuid2` value as the default value for the column. * The function will be called when the row is inserted, and the returned value will be used as the column value. */ defaultRandom(): HasDefault<this>; } declare class MySqlCuid2<T extends ColumnBaseConfig<'string', 'MySqlCuid2'>> extends MySqlColumn<T> { static readonly [entityKind]: string; getSQLType(): string; } declare function cuid2(): MySqlCuid2BuilderInitial<''>; declare function cuid2<TName extends string>(name: TName): MySqlCuid2BuilderInitial<TName>; export { MySqlCuid2, MySqlCuid2Builder, type MySqlCuid2BuilderInitial, cuid2 };