datetime.d.cts 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import type { ColumnBuilderBaseConfig } from "../../column-builder.cjs";
  2. import type { ColumnBaseConfig } from "../../column.cjs";
  3. import { entityKind } from "../../entity.cjs";
  4. import type { AnyMySqlTable } from "../table.cjs";
  5. import { type Equal } from "../../utils.cjs";
  6. import { MySqlColumn, MySqlColumnBuilder } from "./common.cjs";
  7. export type MySqlDateTimeBuilderInitial<TName extends string> = MySqlDateTimeBuilder<{
  8. name: TName;
  9. dataType: 'date';
  10. columnType: 'MySqlDateTime';
  11. data: Date;
  12. driverParam: string | number;
  13. enumValues: undefined;
  14. }>;
  15. export declare class MySqlDateTimeBuilder<T extends ColumnBuilderBaseConfig<'date', 'MySqlDateTime'>> extends MySqlColumnBuilder<T, MySqlDatetimeConfig> {
  16. static readonly [entityKind]: string;
  17. constructor(name: T['name'], config: MySqlDatetimeConfig | undefined);
  18. }
  19. export declare class MySqlDateTime<T extends ColumnBaseConfig<'date', 'MySqlDateTime'>> extends MySqlColumn<T> {
  20. static readonly [entityKind]: string;
  21. readonly fsp: number | undefined;
  22. constructor(table: AnyMySqlTable<{
  23. name: T['tableName'];
  24. }>, config: MySqlDateTimeBuilder<T>['config']);
  25. getSQLType(): string;
  26. mapToDriverValue(value: Date): unknown;
  27. mapFromDriverValue(value: string): Date;
  28. }
  29. export type MySqlDateTimeStringBuilderInitial<TName extends string> = MySqlDateTimeStringBuilder<{
  30. name: TName;
  31. dataType: 'string';
  32. columnType: 'MySqlDateTimeString';
  33. data: string;
  34. driverParam: string | number;
  35. enumValues: undefined;
  36. }>;
  37. export declare class MySqlDateTimeStringBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlDateTimeString'>> extends MySqlColumnBuilder<T, MySqlDatetimeConfig> {
  38. static readonly [entityKind]: string;
  39. constructor(name: T['name'], config: MySqlDatetimeConfig | undefined);
  40. }
  41. export declare class MySqlDateTimeString<T extends ColumnBaseConfig<'string', 'MySqlDateTimeString'>> extends MySqlColumn<T> {
  42. static readonly [entityKind]: string;
  43. readonly fsp: number | undefined;
  44. constructor(table: AnyMySqlTable<{
  45. name: T['tableName'];
  46. }>, config: MySqlDateTimeStringBuilder<T>['config']);
  47. getSQLType(): string;
  48. }
  49. export type DatetimeFsp = 0 | 1 | 2 | 3 | 4 | 5 | 6;
  50. export interface MySqlDatetimeConfig<TMode extends 'date' | 'string' = 'date' | 'string'> {
  51. mode?: TMode;
  52. fsp?: DatetimeFsp;
  53. }
  54. export declare function datetime(): MySqlDateTimeBuilderInitial<''>;
  55. export declare function datetime<TMode extends MySqlDatetimeConfig['mode'] & {}>(config?: MySqlDatetimeConfig<TMode>): Equal<TMode, 'string'> extends true ? MySqlDateTimeStringBuilderInitial<''> : MySqlDateTimeBuilderInitial<''>;
  56. export declare function datetime<TName extends string, TMode extends MySqlDatetimeConfig['mode'] & {}>(name: TName, config?: MySqlDatetimeConfig<TMode>): Equal<TMode, 'string'> extends true ? MySqlDateTimeStringBuilderInitial<TName> : MySqlDateTimeBuilderInitial<TName>;