core/parsers/tool.stylua.parser.ts

core/parsers/tool.stylua.parser.ts is a file in GovLab Quality. 29 lines of code and 6 definitions.

import type { Finding } from "#types/finding.types";
import { POSITION } from "#configuration/constants/tool.constants";
import { UNFORMATTED_FILE } from "#configuration/strings/tool.strings";
import { parseLines } from "#core/parsers/location.parser";
import { toolFinding } from "#core/factories/finding.factory";

const TOOL = "stylua";
const DIFF_PREFIX = "Diff in ";
const RULE_ID = "stylua/format";

export const parseStyluaCheck = function parseStyluaCheck(stdout: string): string[] {
    return parseLines(stdout, (line) => {
        if (!line.startsWith(DIFF_PREFIX)) {
            return null;
        }
        const rest = line.slice(DIFF_PREFIX.length);
        return rest.endsWith(":") ? rest.slice(0, -1) : rest;
    });
};

export const unformattedFinding = function unformattedFinding(file: string, ecosystem: string): Finding {
    return toolFinding({
        column: POSITION,
        ecosystem,
        file,
        fixable: true,
        line: POSITION,
        message: UNFORMATTED_FILE,
        ruleId: RULE_ID,
        tool: TOOL,
    });
};