@rickyli79/rich-json
Version:
Serialize and Deserialize javascript objects
51 lines (50 loc) • 1.86 kB
JavaScript
;
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;