UNPKG

drizzle-orm

Version:

Drizzle ORM package for SQL databases

68 lines 1.97 kB
import { entityKind } from "../../entity.js"; import { getColumnNameAndConfig } from "../../utils.js"; import { MySqlDateBaseColumn, MySqlDateColumnBaseBuilder } from "./date.common.js"; class MySqlTimestampBuilder extends MySqlDateColumnBaseBuilder { static [entityKind] = "MySqlTimestampBuilder"; constructor(name, config) { super(name, "date", "MySqlTimestamp"); this.config.fsp = config?.fsp; } /** @internal */ build(table) { return new MySqlTimestamp( table, this.config ); } } class MySqlTimestamp extends MySqlDateBaseColumn { static [entityKind] = "MySqlTimestamp"; fsp = this.config.fsp; getSQLType() { const precision = this.fsp === void 0 ? "" : `(${this.fsp})`; return `timestamp${precision}`; } mapFromDriverValue(value) { return /* @__PURE__ */ new Date(value + "+0000"); } mapToDriverValue(value) { return value.toISOString().slice(0, -1).replace("T", " "); } } class MySqlTimestampStringBuilder extends MySqlDateColumnBaseBuilder { static [entityKind] = "MySqlTimestampStringBuilder"; constructor(name, config) { super(name, "string", "MySqlTimestampString"); this.config.fsp = config?.fsp; } /** @internal */ build(table) { return new MySqlTimestampString( table, this.config ); } } class MySqlTimestampString extends MySqlDateBaseColumn { static [entityKind] = "MySqlTimestampString"; fsp = this.config.fsp; getSQLType() { const precision = this.fsp === void 0 ? "" : `(${this.fsp})`; return `timestamp${precision}`; } } function timestamp(a, b = {}) { const { name, config } = getColumnNameAndConfig(a, b); if (config?.mode === "string") { return new MySqlTimestampStringBuilder(name, config); } return new MySqlTimestampBuilder(name, config); } export { MySqlTimestamp, MySqlTimestampBuilder, MySqlTimestampString, MySqlTimestampStringBuilder, timestamp }; //# sourceMappingURL=timestamp.js.map