interval.d.ts 1.6 KB

12345678910111213141516171819202122232425262728293031323334
  1. import type { ColumnBuilderBaseConfig } from "../../column-builder.js";
  2. import type { ColumnBaseConfig } from "../../column.js";
  3. import { entityKind } from "../../entity.js";
  4. import { PgColumn, PgColumnBuilder } from "./common.js";
  5. import type { Precision } from "./timestamp.js";
  6. export type PgIntervalBuilderInitial<TName extends string> = PgIntervalBuilder<{
  7. name: TName;
  8. dataType: 'string';
  9. columnType: 'PgInterval';
  10. data: string;
  11. driverParam: string;
  12. enumValues: undefined;
  13. }>;
  14. export declare class PgIntervalBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgInterval'>> extends PgColumnBuilder<T, {
  15. intervalConfig: IntervalConfig;
  16. }> {
  17. static readonly [entityKind]: string;
  18. constructor(name: T['name'], intervalConfig: IntervalConfig);
  19. }
  20. export declare class PgInterval<T extends ColumnBaseConfig<'string', 'PgInterval'>> extends PgColumn<T, {
  21. intervalConfig: IntervalConfig;
  22. }> {
  23. static readonly [entityKind]: string;
  24. readonly fields: IntervalConfig['fields'];
  25. readonly precision: IntervalConfig['precision'];
  26. getSQLType(): string;
  27. }
  28. export interface IntervalConfig {
  29. fields?: 'year' | 'month' | 'day' | 'hour' | 'minute' | 'second' | 'year to month' | 'day to hour' | 'day to minute' | 'day to second' | 'hour to minute' | 'hour to second' | 'minute to second';
  30. precision?: Precision;
  31. }
  32. export declare function interval(): PgIntervalBuilderInitial<''>;
  33. export declare function interval(config?: IntervalConfig): PgIntervalBuilderInitial<''>;
  34. export declare function interval<TName extends string>(name: TName, config?: IntervalConfig): PgIntervalBuilderInitial<TName>;