tap
Version:
A Test-Anything-Protocol library for JavaScript
23 lines (19 loc) • 588 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = toJSON;
function toJSON(value, arg, ctx) {
if (Array.isArray(value)) return value.map((v, i) => toJSON(v, String(i), ctx));
if (value && typeof value.toJSON === 'function') {
const anchor = ctx && ctx.anchors && ctx.anchors.find(a => a.node === value);
if (anchor) ctx.onCreate = res => {
anchor.res = res;
delete ctx.onCreate;
};
const res = value.toJSON(arg, ctx);
if (anchor && ctx.onCreate) ctx.onCreate(res);
return res;
}
return value;
}