summaryrefslogtreecommitdiff
path: root/desktop/node_modules/dir-compare/build/src/fileCompareHandler/lines/compare/compareLineBatches.js
blob: 26b377d18739d2221ee1af258c5d3278c69f5d46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.compareLineBatches = void 0;
const compareLines_1 = require("./compareLines");
/**
 * Compares two batches of lines.
 *
 * @param lineBatch1 Batch to compare.
 * @param lineBatch2 Batch to compare.
 * @param context Comparison context.
 * @param options Comparison options.
 */
function compareLineBatches(lineBatch1, lineBatch2, options) {
    const compareResult = compareLines_1.compareLines(lineBatch1.lines, lineBatch2.lines, options);
    if (!compareResult.isEqual) {
        return { batchIsEqual: false, reachedEof: false, restLines: emptyRestLines() };
    }
    const reachedEof = lineBatch1.reachedEof && lineBatch2.reachedEof;
    const hasMoreLinesToProcess = compareResult.restLines1.length > 0 || compareResult.restLines2.length > 0;
    if (reachedEof && hasMoreLinesToProcess) {
        return { batchIsEqual: false, reachedEof: true, restLines: emptyRestLines() };
    }
    if (reachedEof) {
        return { batchIsEqual: true, reachedEof: true, restLines: emptyRestLines() };
    }
    return { batchIsEqual: true, reachedEof: false,
        restLines: {
            restLines1: compareResult.restLines1,
            restLines2: compareResult.restLines2,
        }
    };
}
exports.compareLineBatches = compareLineBatches;
function emptyRestLines() {
    return {
        restLines1: [],
        restLines2: []
    };
}
//# sourceMappingURL=compareLineBatches.js.map