core/registries/formatter.registry.ts

core/registries/formatter.registry.ts is a file in GovLab Quality. 13 lines of code and 3 definitions.

import type { ConfigFormatter, EmitFormat } from "#types/emitter.types";
import { duplicateFormatter } from "#configuration/strings/emitter.strings";

const FORMATTERS = new Map<EmitFormat, ConfigFormatter>();

export const defineFormatter = function defineFormatter(formatter: ConfigFormatter): ConfigFormatter {
    if (FORMATTERS.has(formatter.format)) {
        throw new Error(duplicateFormatter(formatter.format));
    }
    FORMATTERS.set(formatter.format, formatter);
    return formatter;
};

export const formatterFor = function formatterFor(format: EmitFormat): ConfigFormatter | undefined {
    return FORMATTERS.get(format);
};