@jsonjoy.com/json-pack
Version:
High-performance JSON serialization library
43 lines • 1.71 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MsgPackEncoder = void 0;
const MsgPackEncoderFast_1 = require("./MsgPackEncoderFast");
const isUint8Array_1 = require("@jsonjoy.com/buffers/lib/isUint8Array");
const JsonPackExtension_1 = require("../JsonPackExtension");
const JsonPackValue_1 = require("../JsonPackValue");
/**
* @category Encoder
*/
class MsgPackEncoder extends MsgPackEncoderFast_1.MsgPackEncoderFast {
writeAny(value) {
switch (value) {
case null:
return this.writer.u8(192 /* MSGPACK.NULL */);
case false:
return this.writer.u8(194 /* MSGPACK.FALSE */);
case true:
return this.writer.u8(195 /* MSGPACK.TRUE */);
}
if (value instanceof Array)
return this.encodeArray(value);
switch (typeof value) {
case 'number':
return this.encodeNumber(value);
case 'string':
return this.encodeString(value);
case 'object': {
if (value instanceof JsonPackValue_1.JsonPackValue)
return this.writer.buf(value.val, value.val.length);
if (value instanceof JsonPackExtension_1.JsonPackExtension)
return this.encodeExt(value);
if ((0, isUint8Array_1.isUint8Array)(value))
return this.encodeBinary(value);
return this.encodeObject(value);
}
case 'undefined':
return this.writer.u8(193 /* MSGPACK.UNDEFINED */);
}
}
}
exports.MsgPackEncoder = MsgPackEncoder;
//# sourceMappingURL=MsgPackEncoder.js.map