core/validators/barrel.validator.ts

core/validators/barrel.validator.ts is a file in GovLab Docs. 19 lines of code and 3 definitions.

import { PACKAGE_TEXT, entryUndeclared, entryUnresolved } from "#configuration/strings/package.strings";
import { declaredEntries, unresolvedEntryPatterns } from "#core/loaders/manifest.loader";
import { MANIFEST_FILE } from "#configuration/constants/document.constants";
import type { ManifestModule } from "#types/manifest.types";
import { resolveSourceBarrels } from "#core/resolvers/barrel.resolver";

export const analyzabilityMessages = function analyzabilityMessages(
    module: ManifestModule,
    isAggregate: boolean,
): string[] {
    const at = [module.label, MANIFEST_FILE].join("/");
    const unresolved = unresolvedEntryPatterns(module.dir).map((pattern) => entryUnresolved(at, pattern));
    if (isAggregate || module.manifest.docs === undefined) {
        return unresolved;
    }
    if (declaredEntries(module.dir) === null && resolveSourceBarrels(module.dir, module.pkg).length === 0) {
        return [...unresolved, entryUndeclared(at, PACKAGE_TEXT.undeclaredEntry)];
    }
    return unresolved;
};