UNPKG

assertthat

Version:
72 lines (71 loc) 3.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.compare = void 0; const compareArrays_1 = require("../forArrays/compareArrays"); const compareBooleans_1 = require("../forBooleans/compareBooleans"); const compareErrors_1 = require("../forErrors/compareErrors"); const compareFunctions_1 = require("../forFunctions/compareFunctions"); const compareMaps_1 = require("../forMaps/compareMaps"); const compareNumbers_1 = require("../forNumbers/compareNumbers"); const compareObjects_1 = require("../forObjects/compareObjects"); const compareRecursions_1 = require("../forRecursions/compareRecursions"); const compareResults_1 = require("../forResults/compareResults"); const compareSets_1 = require("../forSets/compareSets"); const compareStrings_1 = require("../forStrings/compareStrings"); const compareSymbols_1 = require("../forSymbols/compareSymbols"); const EqualDiff_1 = require("../../diffs/EqualDiff"); const IncompatibleTypeDiff_1 = require("../../diffs/IncompatibleTypeDiff"); const costs_1 = require("../../constants/costs"); const Recursion_1 = require("../../types/Recursion"); const defekt_1 = require("defekt"); const typedescriptor_1 = require("typedescriptor"); const compare = function (actual, expected) { if ((0, typedescriptor_1.isUndefined)(actual) && (0, typedescriptor_1.isUndefined)(expected)) { return (0, EqualDiff_1.equalDiff)({ value: actual }); } if ((0, typedescriptor_1.isNull)(actual) && (0, typedescriptor_1.isNull)(expected)) { return (0, EqualDiff_1.equalDiff)({ value: actual }); } if ((0, Recursion_1.isRecursion)(actual) && (0, Recursion_1.isRecursion)(expected)) { return (0, compareRecursions_1.compareRecursions)(actual, expected); } if ((0, typedescriptor_1.isError)(actual) && (0, typedescriptor_1.isError)(expected)) { return (0, compareErrors_1.compareErrors)(actual, expected); } if ((0, typedescriptor_1.isSet)(actual) && (0, typedescriptor_1.isSet)(expected)) { return (0, compareSets_1.compareSets)(actual, expected); } if ((0, typedescriptor_1.isMap)(actual) && (0, typedescriptor_1.isMap)(expected)) { return (0, compareMaps_1.compareMaps)(actual, expected); } if ((0, typedescriptor_1.isArray)(actual) && (0, typedescriptor_1.isArray)(expected)) { return (0, compareArrays_1.compareArrays)(actual, expected); } if ((0, defekt_1.isResult)(actual) && (0, defekt_1.isResult)(expected)) { return (0, compareResults_1.compareResults)(actual, expected); } if ((0, typedescriptor_1.isNumber)(actual) && (0, typedescriptor_1.isNumber)(expected)) { return (0, compareNumbers_1.compareNumbers)(actual, expected); } if ((0, typedescriptor_1.isString)(actual) && (0, typedescriptor_1.isString)(expected)) { return (0, compareStrings_1.compareStrings)(actual, expected); } if ((0, typedescriptor_1.isBoolean)(actual) && (0, typedescriptor_1.isBoolean)(expected)) { return (0, compareBooleans_1.compareBooleans)(actual, expected); } if ((0, typedescriptor_1.isSymbol)(actual) && (0, typedescriptor_1.isSymbol)(expected)) { return (0, compareSymbols_1.compareSymbols)(actual, expected); } if ((0, typedescriptor_1.isFunction)(actual) && (0, typedescriptor_1.isFunction)(expected)) { return (0, compareFunctions_1.compareFunctions)(actual, expected); } if ((0, typedescriptor_1.isObject)(actual) && (0, typedescriptor_1.isObject)(expected)) { return (0, compareObjects_1.compareObjects)(actual, expected); } return (0, IncompatibleTypeDiff_1.incompatibleTypeDiff)({ actual, expected, cost: costs_1.incompatibleTypesCost }); }; exports.compare = compare;