UNPKG

assertthat

Version:
51 lines (50 loc) 2.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.prettyPrintArrayDiff = void 0; const formatNestedArray_1 = require("../utils/formatNestedArray"); const maximumFormattingDepth_1 = require("../../constants/maximumFormattingDepth"); const prepareAddition_1 = require("../utils/prepareAddition"); const prepareChange_1 = require("../utils/prepareChange"); const prepareOmission_1 = require("../utils/prepareOmission"); const prepareSimple_1 = require("../utils/prepareSimple"); const prettyPrint_1 = require("../typeAware/prettyPrint"); const prettyPrintDiff_1 = require("../typeAware/prettyPrintDiff"); const propagateDiffSymbols_1 = require("../utils/propagateDiffSymbols"); const ArrayDiffSegment_1 = require("../../diffs/forArrays/ArrayDiffSegment"); const prettyPrintArrayDiff = function (diff, depth = 0) { if (diff.segments.length === 0) { return '[]'; } const content = []; for (const segment of diff.segments) { if ((0, ArrayDiffSegment_1.isEqualDiffSegment)(segment)) { for (const value of segment.equal) { content.push((0, prepareSimple_1.prepareSimple)((0, prettyPrint_1.prettyPrint)(value, depth + 1), depth)); } } else if ((0, ArrayDiffSegment_1.isChangeDiffSegment)(segment)) { for (const subDiff of segment.change) { content.push((0, prepareChange_1.prepareChange)((0, prettyPrintDiff_1.prettyPrintDiff)(subDiff, depth + 1), depth)); } } else if ((0, ArrayDiffSegment_1.isOmissionDiffSegment)(segment)) { for (const value of segment.omission) { content.push((0, prepareOmission_1.prepareOmission)((0, prettyPrint_1.prettyPrint)(value, depth + 1), depth)); } } else if ((0, ArrayDiffSegment_1.isAdditionDiffSegment)(segment)) { for (const value of segment.addition) { content.push((0, prepareAddition_1.prepareAddition)((0, prettyPrint_1.prettyPrint)(value, depth + 1), depth)); } } } if (depth >= maximumFormattingDepth_1.maximumFormattingDepth) { return (0, formatNestedArray_1.formatNestedArray) `[ ${content} ]`; } return (0, propagateDiffSymbols_1.propagateDiffSymbols)((0, formatNestedArray_1.formatNestedArray) ` [ ${content} ] `); }; exports.prettyPrintArrayDiff = prettyPrintArrayDiff;