| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- import { entityKind } from "../../entity.js";
- import { getColumnNameAndConfig, textDecoder } 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 (typeof Buffer !== "undefined" && Buffer.from) {
- const buf = Buffer.isBuffer(value) ? value : value instanceof ArrayBuffer ? Buffer.from(value) : value.buffer ? Buffer.from(value.buffer, value.byteOffset, value.byteLength) : Buffer.from(value);
- return BigInt(buf.toString("utf8"));
- }
- return BigInt(textDecoder.decode(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 (typeof Buffer !== "undefined" && Buffer.from) {
- const buf = Buffer.isBuffer(value) ? value : value instanceof ArrayBuffer ? Buffer.from(value) : value.buffer ? Buffer.from(value.buffer, value.byteOffset, value.byteLength) : Buffer.from(value);
- return JSON.parse(buf.toString("utf8"));
- }
- return JSON.parse(textDecoder.decode(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
|