assertthat
Version:
assertthat provides fluent TDD.
79 lines (78 loc) • 4.24 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.prettyPrintDiff = void 0;
const errors_1 = require("../../errors");
const ArrayDiff_1 = require("../../diffs/forArrays/ArrayDiff");
const BooleanDiff_1 = require("../../diffs/forBooleans/BooleanDiff");
const EqualDiff_1 = require("../../diffs/EqualDiff");
const ErrorDiff_1 = require("../../diffs/forErrors/ErrorDiff");
const FunctionDiff_1 = require("../../diffs/forFunctions/FunctionDiff");
const IncompatibleTypeDiff_1 = require("../../diffs/IncompatibleTypeDiff");
const MapDiff_1 = require("../../diffs/forMaps/MapDiff");
const NumberDiff_1 = require("../../diffs/forNumbers/NumberDiff");
const ObjectDiff_1 = require("../../diffs/forObjects/ObjectDiff");
const RecursionDiff_1 = require("../../diffs/forRecursions/RecursionDiff");
const ResultDiff_1 = require("../../diffs/forResults/ResultDiff");
const SetDiff_1 = require("../../diffs/forSets/SetDiff");
const StringDiff_1 = require("../../diffs/forStrings/StringDiff");
const SymbolDiff_1 = require("../../diffs/forSymbols/SymbolDiff");
const prettyPrintArrayDiff_1 = require("../forArrays/prettyPrintArrayDiff");
const prettyPrintBooleanDiff_1 = require("../forBooleans/prettyPrintBooleanDiff");
const prettyPrintEqualDiff_1 = require("../prettyPrintEqualDiff");
const prettyPrintErrorDiff_1 = require("../forErrors/prettyPrintErrorDiff");
const prettyPrintFunctionDiff_1 = require("../forFunctions/prettyPrintFunctionDiff");
const prettyPrintIncompatibleTypeDiff_1 = require("./prettyPrintIncompatibleTypeDiff");
const prettyPrintMapDiff_1 = require("../forMaps/prettyPrintMapDiff");
const prettyPrintNumberDiff_1 = require("../forNumbers/prettyPrintNumberDiff");
const prettyPrintObjectDiff_1 = require("../forObjects/prettyPrintObjectDiff");
const prettyPrintRecursionDiff_1 = require("../forRecursions/prettyPrintRecursionDiff");
const prettyPrintResultDiff_1 = require("../forResults/prettyPrintResultDiff");
const prettyPrintSetDiff_1 = require("../forSets/prettyPrintSetDiff");
const prettyPrintStringDiff_1 = require("../forStrings/prettyPrintStringDiff");
const prettyPrintSymbolDiff_1 = require("../forSymbols/prettyPrintSymbolDiff");
const prettyPrintDiff = function (diff, depth = 0) {
if ((0, EqualDiff_1.isEqualDiff)(diff)) {
return (0, prettyPrintEqualDiff_1.prettyPrintEqualDiff)(diff);
}
if ((0, RecursionDiff_1.isRecursionDiff)(diff)) {
return (0, prettyPrintRecursionDiff_1.prettyPrintRecursionDiff)(diff);
}
if ((0, ErrorDiff_1.isErrorDiff)(diff)) {
return (0, prettyPrintErrorDiff_1.prettyPrintErrorDiff)(diff, depth);
}
if ((0, SetDiff_1.isSetDiff)(diff)) {
return (0, prettyPrintSetDiff_1.prettyPrintSetDiff)(diff, depth);
}
if ((0, MapDiff_1.isMapDiff)(diff)) {
return (0, prettyPrintMapDiff_1.prettyPrintMapDiff)(diff, depth);
}
if ((0, ArrayDiff_1.isArrayDiff)(diff)) {
return (0, prettyPrintArrayDiff_1.prettyPrintArrayDiff)(diff, depth);
}
if ((0, ResultDiff_1.isResultDiff)(diff)) {
return (0, prettyPrintResultDiff_1.prettyPrintResultDiff)(diff, depth);
}
if ((0, NumberDiff_1.isNumberDiff)(diff)) {
return (0, prettyPrintNumberDiff_1.prettyPrintNumberDiff)(diff);
}
if ((0, StringDiff_1.isStringDiff)(diff)) {
return (0, prettyPrintStringDiff_1.prettyPrintStringDiff)(diff);
}
if ((0, BooleanDiff_1.isBooleanDiff)(diff)) {
return (0, prettyPrintBooleanDiff_1.prettyPrintBooleanDiff)(diff);
}
if ((0, SymbolDiff_1.isSymbolDiff)(diff)) {
return (0, prettyPrintSymbolDiff_1.prettyPrintSymbolDiff)(diff);
}
if ((0, FunctionDiff_1.isFunctionDiff)(diff)) {
return (0, prettyPrintFunctionDiff_1.prettyPrintFunctionDiff)(diff);
}
if ((0, ObjectDiff_1.isObjectDiff)(diff)) {
return (0, prettyPrintObjectDiff_1.prettyPrintObjectDiff)(diff, depth);
}
if ((0, IncompatibleTypeDiff_1.isIncompatibleTypeDiff)(diff)) {
return (0, prettyPrintIncompatibleTypeDiff_1.prettyPrintIncompatibleTypeDiff)(diff, depth);
}
throw new errors_1.InvalidOperation('Could not pretty print a diff with unknown type.');
};
exports.prettyPrintDiff = prettyPrintDiff;