assertthat
Version:
assertthat provides fluent TDD.
51 lines (50 loc) • 2.43 kB
JavaScript
;
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;