varchar.d.ts 1.9 KB

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