UNPKG

jest-metadata

Version:

🦸‍♂️ Superhero power for your Jest reporters! 🦸‍♀️

43 lines 1.63 kB
"use strict"; 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