lib/util/report-translator.js
function mergeFixes(fixes, sourceCode) {
    if (fixes.length === 0) {
        return null;
    }
    if (fixes.length === 1) {
        return fixes[0];
    }

    fixes.sort(compareFixesByRange);

    const originalText = sourceCode.text;
    const start = fixes[0].range[0];
    const end = fixes[fixes.length - 1].range[1];
    let text = "";
    let lastPos = Number.MIN_SAFE_INTEGER;

    for (const fix of fixes) {
        assert(fix.range[0] >= lastPos, "Fix objects must not be overlapped in a report.");

        if (fix.range[0] >= 0) {
            text += originalText.slice(Math.max(0, start, lastPos), fix.range[0]);
        }
        text += fix.text;
        lastPos = fix.range[1];
    }
    text += originalText.slice(Math.max(0, start, lastPos), end);

    return { range: [start, end], text };
}
function mergeFixes(fixes, sourceCode) {
    if (fixes.length === 0) {
        return null;
    }
    if (fixes.length === 1) {
        return fixes[0];
    }

    fixes.sort(compareFixesByRange);

    const originalText = sourceCode.text;
    const start = fixes[0].range[0];
    const end = fixes[fixes.length - 1].range[1];
    let text = "";
    let lastPos = Number.MIN_SAFE_INTEGER;

    for (const fix of fixes) {
        assert(fix.range[0] >= lastPos, "Fix objects must not be overlapped in a report.");

        if (fix.range[0] >= 0) {
            text += originalText.slice(Math.max(0, start, lastPos), fix.range[0]);
        }
        text += fix.text;
        lastPos = fix.range[1];
    }
    text += originalText.slice(Math.max(0, start, lastPos), end);

    return { range: [start, end], text };
}
function mergeFixes ( fixes , sourceCode ) { if ( fixes . length === 0 ) { return null ; } if ( fixes . length === 1 ) { return fixes [ 0 ] ; } fixes . sort ( compareFixesByRange ) ; const originalText = sourceCode . text ; const start = fixes [ 0 ] . range [ 0 ] ; const end = fixes [ fixes . length - 1 ] . range [ 1 ] ; let text = "" ; let lastPos = Number . MIN_SAFE_INTEGER ; for ( const fix of fixes ) { assert ( fix . range [ 0 ] >= lastPos , "Fix objects must not be overlapped in a report." ) ; if ( fix . range [ 0 ] >= 0 ) { text += originalText . slice ( Math . max ( 0 , start , lastPos ) , fix . range [ 0 ] ) ; } text += fix . text ; lastPos = fix . range [ 1 ] ; } text += originalText . slice ( Math . max ( 0 , start , lastPos ) , end ) ; return { range : [ start , end ] , text } ; }
Merges the given fixes array into one.
@param {Fix[]} fixes The fixes to merge.
@param {SourceCode} sourceCode The source code object to get the text between fixes.
@returns {{text: string, range: number[]}} The merged fixes
Merges the given fixes array into one .