UNPKG

@rickyli79/rich-json

Version:

Serialize and Deserialize javascript objects

51 lines (50 loc) 1.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BufferSerializer = void 0; const lib_1 = require("../lib"); class BufferSerializer { static instance; static getInstance() { if (this.instance === undefined) { this.instance = (0, lib_1.createCustomerSerializer)({ className: 'Buffer', class: ArrayBuffer, // @ts-ignore isType(value) { let isBuffer = false; if (lib_1.isNodeJs) { if (value instanceof Buffer) { isBuffer = true; } } if (value instanceof ArrayBuffer || value?.buffer instanceof ArrayBuffer) { isBuffer = true; } return isBuffer; }, toContent(value) { const v = value.valueOf(); return [v.constructor.name, String.fromCharCode.apply(null, v)]; }, fromContent([className, content]) { let buffer; if (className === 'Buffer') { if (lib_1.isNodeJs) { buffer = Buffer.from(content); } else { buffer = new Uint8Array(content); } } else { buffer = new ((0, lib_1.simEval)(className))(new TextEncoder().encode(content)); } return buffer; }, serializContent: false, }); } return this.instance; } } exports.BufferSerializer = BufferSerializer;