jest-metadata
Version:
🦸♂️ Superhero power for your Jest reporters! 🦸♀️
43 lines • 1.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.visualize = void 0;
const tslib_1 = require("tslib");
const promises_1 = tslib_1.__importDefault(require("node:fs/promises"));
const metadata_1 = require("../metadata");
const utils_1 = require("../utils");
const plant_1 = require("./plant");
async function visualize(traceJsonFile) {
const events = Array.isArray(traceJsonFile)
? traceJsonFile
: await readEvents(traceJsonFile);
return replayEvents(events);
}
exports.visualize = visualize;
async function readEvents(traceJsonFile) {
const raw = await promises_1.default.readFile(traceJsonFile, 'utf8');
const json = JSON.parse(raw);
const mainPID = json[0].pid;
const events = [];
for (const event of json) {
const { cat, pid, args } = event;
if (pid === mainPID && args?.event?.type && cat?.includes('emitter-events')) {
events.push(args.event);
}
}
return events;
}
function replayEvents(events) {
const emitter = new utils_1.SerialEmitter('set');
const metadataRegistry = new metadata_1.GlobalMetadataRegistry();
const metadataFactory = new metadata_1.MetadataFactoryImpl(metadataRegistry, emitter);
const globalMetadata = metadataFactory.createGlobalMetadata();
const eventHandler = new metadata_1.MetadataEventHandler({
globalMetadata,
metadataRegistry,
});
for (const event of events) {
eventHandler.handle(event);
}
return plant_1.PlantSerializer.serialize(metadataFactory.checker, metadataRegistry);
}
//# sourceMappingURL=visualize.js.map