node-ejs-renderer/node_modules/@jsonjoy.com/json-pack/lib/msgpack/MsgPackEncoder.js
2024-06-09 13:55:01 -04:00

40 lines
1.6 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MsgPackEncoder = void 0;
const MsgPackEncoderFast_1 = require("./MsgPackEncoderFast");
const isUint8Array_1 = require("@jsonjoy.com/util/lib/buffers/isUint8Array");
const JsonPackExtension_1 = require("../JsonPackExtension");
const JsonPackValue_1 = require("../JsonPackValue");
class MsgPackEncoder extends MsgPackEncoderFast_1.MsgPackEncoderFast {
writeAny(value) {
switch (value) {
case null:
return this.writer.u8(192);
case false:
return this.writer.u8(194);
case true:
return this.writer.u8(195);
}
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);
}
}
}
exports.MsgPackEncoder = MsgPackEncoder;
//# sourceMappingURL=MsgPackEncoder.js.map