34 lines
1.0 KiB
Plaintext
34 lines
1.0 KiB
Plaintext
import { entityKind } from "../../entity.js";
|
|
import { getColumnNameAndConfig } from "../../utils.js";
|
|
import { PgColumn, PgColumnBuilder } from "./common.js";
|
|
class PgIntervalBuilder extends PgColumnBuilder {
|
|
static [entityKind] = "PgIntervalBuilder";
|
|
constructor(name, intervalConfig) {
|
|
super(name, "string", "PgInterval");
|
|
this.config.intervalConfig = intervalConfig;
|
|
}
|
|
/** @internal */
|
|
build(table) {
|
|
return new PgInterval(table, this.config);
|
|
}
|
|
}
|
|
class PgInterval extends PgColumn {
|
|
static [entityKind] = "PgInterval";
|
|
fields = this.config.intervalConfig.fields;
|
|
precision = this.config.intervalConfig.precision;
|
|
getSQLType() {
|
|
const fields = this.fields ? ` ${this.fields}` : "";
|
|
const precision = this.precision ? `(${this.precision})` : "";
|
|
return `interval${fields}${precision}`;
|
|
}
|
|
}
|
|
function interval(a, b = {}) {
|
|
const { name, config } = getColumnNameAndConfig(a, b);
|
|
return new PgIntervalBuilder(name, config);
|
|
}
|
|
export {
|
|
PgInterval,
|
|
PgIntervalBuilder,
|
|
interval
|
|
};
|
|
//# sourceMappingURL=interval.js.map |