UNPKG

drizzle-orm

Version:

Drizzle ORM package for SQL databases

69 lines 1.72 kB
import { entityKind } from "../../entity.js"; import { getColumnNameAndConfig } from "../../utils.js"; import { SQLiteColumn, SQLiteColumnBuilder } from "./common.js"; class SQLiteTextBuilder extends SQLiteColumnBuilder { static [entityKind] = "SQLiteTextBuilder"; constructor(name, config) { super(name, "string", "SQLiteText"); this.config.enumValues = config.enum; this.config.length = config.length; } /** @internal */ build(table) { return new SQLiteText( table, this.config ); } } class SQLiteText extends SQLiteColumn { static [entityKind] = "SQLiteText"; enumValues = this.config.enumValues; length = this.config.length; constructor(table, config) { super(table, config); } getSQLType() { return `text${this.config.length ? `(${this.config.length})` : ""}`; } } class SQLiteTextJsonBuilder extends SQLiteColumnBuilder { static [entityKind] = "SQLiteTextJsonBuilder"; constructor(name) { super(name, "json", "SQLiteTextJson"); } /** @internal */ build(table) { return new SQLiteTextJson( table, this.config ); } } class SQLiteTextJson extends SQLiteColumn { static [entityKind] = "SQLiteTextJson"; getSQLType() { return "text"; } mapFromDriverValue(value) { return JSON.parse(value); } mapToDriverValue(value) { return JSON.stringify(value); } } function text(a, b = {}) { const { name, config } = getColumnNameAndConfig(a, b); if (config.mode === "json") { return new SQLiteTextJsonBuilder(name); } return new SQLiteTextBuilder(name, config); } export { SQLiteText, SQLiteTextBuilder, SQLiteTextJson, SQLiteTextJsonBuilder, text }; //# sourceMappingURL=text.js.map