interval.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. import { entityKind } from "../../entity.js";
  2. import { getColumnNameAndConfig } from "../../utils.js";
  3. import { PgColumn, PgColumnBuilder } from "./common.js";
  4. class PgIntervalBuilder extends PgColumnBuilder {
  5. static [entityKind] = "PgIntervalBuilder";
  6. constructor(name, intervalConfig) {
  7. super(name, "string", "PgInterval");
  8. this.config.intervalConfig = intervalConfig;
  9. }
  10. /** @internal */
  11. build(table) {
  12. return new PgInterval(table, this.config);
  13. }
  14. }
  15. class PgInterval extends PgColumn {
  16. static [entityKind] = "PgInterval";
  17. fields = this.config.intervalConfig.fields;
  18. precision = this.config.intervalConfig.precision;
  19. getSQLType() {
  20. const fields = this.fields ? ` ${this.fields}` : "";
  21. const precision = this.precision ? `(${this.precision})` : "";
  22. return `interval${fields}${precision}`;
  23. }
  24. }
  25. function interval(a, b = {}) {
  26. const { name, config } = getColumnNameAndConfig(a, b);
  27. return new PgIntervalBuilder(name, config);
  28. }
  29. export {
  30. PgInterval,
  31. PgIntervalBuilder,
  32. interval
  33. };
  34. //# sourceMappingURL=interval.js.map