char.d.cts 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import type { ColumnBuilderBaseConfig } from "../../column-builder.cjs";
  2. import type { ColumnBaseConfig } from "../../column.cjs";
  3. import { entityKind } from "../../entity.cjs";
  4. import { type Writable } from "../../utils.cjs";
  5. import { MySqlColumn, MySqlColumnBuilder } from "./common.cjs";
  6. export type MySqlCharBuilderInitial<TName extends string, TEnum extends [string, ...string[]], TLength extends number | undefined> = MySqlCharBuilder<{
  7. name: TName;
  8. dataType: 'string';
  9. columnType: 'MySqlChar';
  10. data: TEnum[number];
  11. driverParam: number | string;
  12. enumValues: TEnum;
  13. length: TLength;
  14. }>;
  15. export declare class MySqlCharBuilder<T extends ColumnBuilderBaseConfig<'string', 'MySqlChar'> & {
  16. length?: number | undefined;
  17. }> extends MySqlColumnBuilder<T, MySqlCharConfig<T['enumValues'], T['length']>, {
  18. length: T['length'];
  19. }> {
  20. static readonly [entityKind]: string;
  21. constructor(name: T['name'], config: MySqlCharConfig<T['enumValues'], T['length']>);
  22. }
  23. export declare class MySqlChar<T extends ColumnBaseConfig<'string', 'MySqlChar'> & {
  24. length?: number | undefined;
  25. }> extends MySqlColumn<T, MySqlCharConfig<T['enumValues'], T['length']>, {
  26. length: T['length'];
  27. }> {
  28. static readonly [entityKind]: string;
  29. readonly length: T['length'];
  30. readonly enumValues: T["enumValues"] | undefined;
  31. getSQLType(): string;
  32. }
  33. export interface MySqlCharConfig<TEnum extends readonly string[] | string[] | undefined = readonly string[] | string[] | undefined, TLength extends number | undefined = number | undefined> {
  34. enum?: TEnum;
  35. length?: TLength;
  36. }
  37. export declare function char(): MySqlCharBuilderInitial<'', [string, ...string[]], undefined>;
  38. export declare function char<U extends string, T extends Readonly<[U, ...U[]]>, L extends number | undefined>(config?: MySqlCharConfig<T | Writable<T>, L>): MySqlCharBuilderInitial<'', Writable<T>, L>;
  39. export declare function char<TName extends string, U extends string, T extends Readonly<[U, ...U[]]>, L extends number | undefined>(name: TName, config?: MySqlCharConfig<T | Writable<T>, L>): MySqlCharBuilderInitial<TName, Writable<T>, L>;