UNPKG

drizzle-orm

Version:

Drizzle ORM package for SQL databases

106 lines 2.73 kB
import { entityKind } from "../../entity.js"; import { getColumnNameAndConfig } from "../../utils.js"; import { SQLiteColumn, SQLiteColumnBuilder } from "./common.js"; class SQLiteBigIntBuilder extends SQLiteColumnBuilder { static [entityKind] = "SQLiteBigIntBuilder"; constructor(name) { super(name, "bigint", "SQLiteBigInt"); } /** @internal */ build(table) { return new SQLiteBigInt(table, this.config); } } class SQLiteBigInt extends SQLiteColumn { static [entityKind] = "SQLiteBigInt"; getSQLType() { return "blob"; } mapFromDriverValue(value) { if (Buffer.isBuffer(value)) { return BigInt(value.toString()); } if (value instanceof ArrayBuffer) { const decoder = new TextDecoder(); return BigInt(decoder.decode(value)); } return BigInt(String.fromCodePoint(...value)); } mapToDriverValue(value) { return Buffer.from(value.toString()); } } class SQLiteBlobJsonBuilder extends SQLiteColumnBuilder { static [entityKind] = "SQLiteBlobJsonBuilder"; constructor(name) { super(name, "json", "SQLiteBlobJson"); } /** @internal */ build(table) { return new SQLiteBlobJson( table, this.config ); } } class SQLiteBlobJson extends SQLiteColumn { static [entityKind] = "SQLiteBlobJson"; getSQLType() { return "blob"; } mapFromDriverValue(value) { if (Buffer.isBuffer(value)) { return JSON.parse(value.toString()); } if (value instanceof ArrayBuffer) { const decoder = new TextDecoder(); return JSON.parse(decoder.decode(value)); } return JSON.parse(String.fromCodePoint(...value)); } mapToDriverValue(value) { return Buffer.from(JSON.stringify(value)); } } class SQLiteBlobBufferBuilder extends SQLiteColumnBuilder { static [entityKind] = "SQLiteBlobBufferBuilder"; constructor(name) { super(name, "buffer", "SQLiteBlobBuffer"); } /** @internal */ build(table) { return new SQLiteBlobBuffer(table, this.config); } } class SQLiteBlobBuffer extends SQLiteColumn { static [entityKind] = "SQLiteBlobBuffer"; mapFromDriverValue(value) { if (Buffer.isBuffer(value)) { return value; } return Buffer.from(value); } getSQLType() { return "blob"; } } function blob(a, b) { const { name, config } = getColumnNameAndConfig(a, b); if (config?.mode === "json") { return new SQLiteBlobJsonBuilder(name); } if (config?.mode === "bigint") { return new SQLiteBigIntBuilder(name); } return new SQLiteBlobBufferBuilder(name); } export { SQLiteBigInt, SQLiteBigIntBuilder, SQLiteBlobBuffer, SQLiteBlobBufferBuilder, SQLiteBlobJson, SQLiteBlobJsonBuilder, blob }; //# sourceMappingURL=blob.js.map