core/coordinators/emitter.coordinator.ts

core/coordinators/emitter.coordinator.ts is a file in GovLab Quality. 18 lines of code and 4 definitions.

import type { ConcernConfig } from "#types/concern.types";
import type { EmitFile } from "#types/emitter.types";
import type { OwnerOverride } from "#types/canon.types";
import { concernsToCanonicalConfig } from "#core/converters/concern.converter";
import { emitConfigs } from "#core/emitters/tool.emitter";
import { loadCanonicalData } from "#core/loaders/canon.loader";
import { mergeOwnership } from "#core/converters/surface.converter";
import { resolveConfig } from "#core/resolvers/plan.resolver";

export const generateNativeConfigs = async function generateNativeConfigs(
    concerns: ConcernConfig,
    languages: string[],
    ownerOverride?: OwnerOverride,
): Promise<EmitFile[]> {
    const data = loadCanonicalData();
    const ownership = mergeOwnership(data.ownership, ownerOverride);
    const plan = resolveConfig({ ...concernsToCanonicalConfig(concerns, data), languages }, { ...data, ownership });
    return "conflicts" in plan ? [] : emitConfigs(plan.perToolConfig);
};