40 lines
1.6 KiB
JavaScript
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
|