UNPKG

@oselvar/c4

Version:

Test helpers for Cloudflare Workers

45 lines 1.25 kB
// src/vitest/C4ModelWriter.ts import { writeFile } from "node:fs/promises"; import { extname, join } from "node:path"; var C4ModelWriter = class { c4Model; generators; static setupFile = join( import.meta.dirname, "setup" + extname(import.meta.url) ); constructor(...generators) { this.generators = generators; } // eslint-disable-next-line @typescript-eslint/no-explicit-any async onTestCaseResult(testCase) { const c4Model = testCase.meta().c4Model; if (c4Model) { this.c4Model = c4Model; } } // eslint-disable-next-line @typescript-eslint/no-explicit-any async onTestRunEnd(_testModules) { const testModules = _testModules; const spans = testModules.map((testModule) => { const meta = testModule.meta(); return meta.serializedSpans; }).filter((span) => span !== void 0); if (!this.c4Model) { console.warn("\u26D4\uFE0F No C4 model found"); return; } for (const generator of this.generators) { const output = generator({ model: this.c4Model, spans }); await writeFile(output.file, output.content); } console.log("\u2705 C4 models updated"); } }; export { C4ModelWriter }; //# sourceMappingURL=index.js.map