118 lines
3.4 KiB
JavaScript
118 lines
3.4 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.JsonDecoderDag = exports.fromBase64Bin = void 0;
|
|
const JsonDecoder_1 = require("./JsonDecoder");
|
|
const util_1 = require("./util");
|
|
const createFromBase64Bin_1 = require("@jsonjoy.com/base64/lib/createFromBase64Bin");
|
|
exports.fromBase64Bin = (0, createFromBase64Bin_1.createFromBase64Bin)(undefined, '');
|
|
class JsonDecoderDag extends JsonDecoder_1.JsonDecoder {
|
|
readObj() {
|
|
const bytes = this.tryReadBytes();
|
|
if (bytes)
|
|
return bytes;
|
|
const cid = this.tryReadCid();
|
|
if (cid)
|
|
return cid;
|
|
return super.readObj();
|
|
}
|
|
tryReadBytes() {
|
|
const reader = this.reader;
|
|
const x = reader.x;
|
|
if (reader.u8() !== 0x7b) {
|
|
reader.x = x;
|
|
return;
|
|
}
|
|
this.skipWhitespace();
|
|
if (reader.u8() !== 0x22 || reader.u8() !== 0x2f || reader.u8() !== 0x22) {
|
|
reader.x = x;
|
|
return;
|
|
}
|
|
this.skipWhitespace();
|
|
if (reader.u8() !== 0x3a) {
|
|
reader.x = x;
|
|
return;
|
|
}
|
|
this.skipWhitespace();
|
|
if (reader.u8() !== 0x7b) {
|
|
reader.x = x;
|
|
return;
|
|
}
|
|
this.skipWhitespace();
|
|
if (reader.u8() !== 0x22 ||
|
|
reader.u8() !== 0x62 ||
|
|
reader.u8() !== 0x79 ||
|
|
reader.u8() !== 0x74 ||
|
|
reader.u8() !== 0x65 ||
|
|
reader.u8() !== 0x73 ||
|
|
reader.u8() !== 0x22) {
|
|
reader.x = x;
|
|
return;
|
|
}
|
|
this.skipWhitespace();
|
|
if (reader.u8() !== 0x3a) {
|
|
reader.x = x;
|
|
return;
|
|
}
|
|
this.skipWhitespace();
|
|
if (reader.u8() !== 0x22) {
|
|
reader.x = x;
|
|
return;
|
|
}
|
|
const bufStart = reader.x;
|
|
const bufEnd = (0, util_1.findEndingQuote)(reader.uint8, bufStart);
|
|
reader.x = 1 + bufEnd;
|
|
this.skipWhitespace();
|
|
if (reader.u8() !== 0x7d) {
|
|
reader.x = x;
|
|
return;
|
|
}
|
|
this.skipWhitespace();
|
|
if (reader.u8() !== 0x7d) {
|
|
reader.x = x;
|
|
return;
|
|
}
|
|
const bin = (0, exports.fromBase64Bin)(reader.view, bufStart, bufEnd - bufStart);
|
|
return bin;
|
|
}
|
|
tryReadCid() {
|
|
const reader = this.reader;
|
|
const x = reader.x;
|
|
if (reader.u8() !== 0x7b) {
|
|
reader.x = x;
|
|
return;
|
|
}
|
|
this.skipWhitespace();
|
|
if (reader.u8() !== 0x22 || reader.u8() !== 0x2f || reader.u8() !== 0x22) {
|
|
reader.x = x;
|
|
return;
|
|
}
|
|
this.skipWhitespace();
|
|
if (reader.u8() !== 0x3a) {
|
|
reader.x = x;
|
|
return;
|
|
}
|
|
this.skipWhitespace();
|
|
if (reader.u8() !== 0x22) {
|
|
reader.x = x;
|
|
return;
|
|
}
|
|
const bufStart = reader.x;
|
|
const bufEnd = (0, util_1.findEndingQuote)(reader.uint8, bufStart);
|
|
reader.x = 1 + bufEnd;
|
|
this.skipWhitespace();
|
|
if (reader.u8() !== 0x7d) {
|
|
reader.x = x;
|
|
return;
|
|
}
|
|
const finalX = reader.x;
|
|
reader.x = bufStart;
|
|
const cid = reader.ascii(bufEnd - bufStart);
|
|
reader.x = finalX;
|
|
return this.readCid(cid);
|
|
}
|
|
readCid(cid) {
|
|
return cid;
|
|
}
|
|
}
|
|
exports.JsonDecoderDag = JsonDecoderDag;
|
|
//# sourceMappingURL=JsonDecoderDag.js.map
|