10
0

JsonEncoderDag.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.JsonEncoderDag = void 0;
  4. const JsonEncoderStable_1 = require("./JsonEncoderStable");
  5. const createToBase64Bin_1 = require("@jsonjoy.com/base64/lib/createToBase64Bin");
  6. const objBaseLength = '{"/":{"bytes":""}}'.length;
  7. const cidBaseLength = '{"/":""}'.length;
  8. const base64Encode = (0, createToBase64Bin_1.createToBase64Bin)(undefined, '');
  9. class JsonEncoderDag extends JsonEncoderStable_1.JsonEncoderStable {
  10. writeBin(buf) {
  11. const writer = this.writer;
  12. const length = buf.length;
  13. writer.ensureCapacity(objBaseLength + (length << 1));
  14. const view = writer.view;
  15. const uint8 = writer.uint8;
  16. let x = writer.x;
  17. view.setUint32(x, 0x7b222f22);
  18. x += 4;
  19. view.setUint32(x, 0x3a7b2262);
  20. x += 4;
  21. view.setUint32(x, 0x79746573);
  22. x += 4;
  23. view.setUint16(x, 0x223a);
  24. x += 2;
  25. uint8[x] = 0x22;
  26. x += 1;
  27. x = base64Encode(buf, 0, length, view, x);
  28. view.setUint16(x, 0x227d);
  29. x += 2;
  30. uint8[x] = 0x7d;
  31. x += 1;
  32. writer.x = x;
  33. }
  34. writeCid(cid) {
  35. const writer = this.writer;
  36. writer.ensureCapacity(cidBaseLength + cid.length);
  37. writer.u32(0x7b222f22);
  38. writer.u16(0x3a22);
  39. writer.ascii(cid);
  40. writer.u16(0x227d);
  41. }
  42. }
  43. exports.JsonEncoderDag = JsonEncoderDag;
  44. //# sourceMappingURL=JsonEncoderDag.js.map