everything-dev
Version:
A consolidated product package for building Module Federation apps with oRPC APIs.
45 lines (43 loc) • 1.63 kB
JavaScript
import { Finding } from "./domain.mjs";
import { checkConfig } from "./checks/config.mjs";
import { scanImports } from "./checks/imports.mjs";
import { checkRouteGuards } from "./checks/route-guards.mjs";
import { checkRoutes } from "./checks/routes.mjs";
import { checkUiSeam, readRouterSeam } from "./checks/ui-seam.mjs";
import { buildManifest, readConfigKeys } from "./manifest.mjs";
import { Effect } from "effect";
//#region src/services/scaffold/upgrade-audit/audit.ts
const audit = (projectDir) => Effect.gen(function* () {
const [routeFindings, guardFindings, configFindings, importRewrites, configKeys, uiSeamFindings, routerSeam] = yield* Effect.all([
checkRoutes(projectDir),
checkRouteGuards(projectDir),
checkConfig(projectDir),
scanImports(projectDir),
readConfigKeys(projectDir),
checkUiSeam(projectDir),
readRouterSeam(projectDir)
]);
const findings = [
...routeFindings,
...guardFindings,
...configFindings,
...uiSeamFindings,
...importRewrites.flatMap((rewrite) => rewrite.files.length === 0 ? [] : [new Finding({
check: "imports",
path: rewrite.files.join(", "),
severity: "warn",
message: `legacy import "${rewrite.from}" — rewrite to "${rewrite.to}"`
})])
];
const blockers = findings.filter((f) => f.severity === "blocker");
const warns = findings.filter((f) => f.severity === "warn");
const tier = blockers.length === 0 ? "A" : "B";
return {
tier,
findings,
manifest: yield* buildManifest(projectDir, tier, blockers.length, warns.length, importRewrites, configKeys, routerSeam)
};
});
//#endregion
export { audit };
//# sourceMappingURL=audit.mjs.map