MsgPackEncoder.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.MsgPackEncoder = void 0;
  4. const MsgPackEncoderFast_1 = require("./MsgPackEncoderFast");
  5. const isUint8Array_1 = require("@jsonjoy.com/util/lib/buffers/isUint8Array");
  6. const JsonPackExtension_1 = require("../JsonPackExtension");
  7. const JsonPackValue_1 = require("../JsonPackValue");
  8. class MsgPackEncoder extends MsgPackEncoderFast_1.MsgPackEncoderFast {
  9. writeAny(value) {
  10. switch (value) {
  11. case null:
  12. return this.writer.u8(192);
  13. case false:
  14. return this.writer.u8(194);
  15. case true:
  16. return this.writer.u8(195);
  17. }
  18. if (value instanceof Array)
  19. return this.encodeArray(value);
  20. switch (typeof value) {
  21. case 'number':
  22. return this.encodeNumber(value);
  23. case 'string':
  24. return this.encodeString(value);
  25. case 'object': {
  26. if (value instanceof JsonPackValue_1.JsonPackValue)
  27. return this.writer.buf(value.val, value.val.length);
  28. if (value instanceof JsonPackExtension_1.JsonPackExtension)
  29. return this.encodeExt(value);
  30. if ((0, isUint8Array_1.isUint8Array)(value))
  31. return this.encodeBinary(value);
  32. return this.encodeObject(value);
  33. }
  34. case 'undefined':
  35. return this.writer.u8(193);
  36. }
  37. }
  38. }
  39. exports.MsgPackEncoder = MsgPackEncoder;
  40. //# sourceMappingURL=MsgPackEncoder.js.map