@oselvar/c4
Version:
Test helpers for Cloudflare Workers
45 lines • 1.25 kB
JavaScript
// 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