core/resolvers/coverage.resolver.ts
core/resolvers/coverage.resolver.ts is a file in GovLab Quality. 30 lines of code and 10 definitions.
import { centralIndexFor, packageIndexFor } from "#core/loaders/coverage.loader";
import { enclosingPackages, findPackageRoot } from "#core/resolvers/package.resolver";
import { forwardSlashed, stripExtension } from "#core/converters/filename.converter";
import { ROOT } from "@ssot/paths/anchor";
import type { Scope } from "#types/coverage.types";
import path from "node:path";
import { relativePath } from "@ssot/paths";
import { wordIncludes } from "#core/matchers/word.matcher";
const specifierOf = function specifierOf(file: string): string {
const rel = forwardSlashed(path.relative(ROOT, file));
return rel.startsWith("..") ? file : rel;
};
export const resolveScope = function resolveScope(file: string): Scope | null {
const pkg = findPackageRoot(file.slice(0, file.lastIndexOf("/")));
if (pkg === null) {
return null;
}
const normalizedRoot = forwardSlashed(ROOT);
const testRoot = forwardSlashed(path.join(normalizedRoot, relativePath("codebase.testing")));
const colocated = [pkg, ...enclosingPackages(pkg)].map((root) => packageIndexFor(root).get(pkg) ?? "").join("\n");
const centralized = centralIndexFor(testRoot, normalizedRoot).get(pkg) ?? "";
const text = `${colocated}\n${centralized}`;
const stem = stripExtension(file.slice(file.lastIndexOf("/") + 1));
return {
coversDefault: () => wordIncludes(text, stem),
coversName: (symbol) => wordIncludes(text, symbol),
label: pkg,
specifier: specifierOf(file),
};
};