kizu
Version:
An easy-to-use, fast, and defensive Typescript/Javascript test runner designed to help you to write simple, readable, and maintainable tests.
32 lines • 1.28 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getDiff = getDiff;
exports.stringVisualDiff = stringVisualDiff;
const deep_object_diff_1 = require("deep-object-diff");
const diff_1 = require("diff");
const kleur_1 = __importDefault(require("kleur"));
const node_util_1 = require("node:util");
function getDiff(actual, expected) {
if (actual === expected)
return '';
if (typeof actual === 'string' && typeof expected === 'string') {
return stringVisualDiff(actual, expected);
}
else if (typeof actual === 'object' && typeof expected === 'object') {
return (0, node_util_1.inspect)((0, deep_object_diff_1.diff)(actual, expected), {
colors: true,
depth: null,
});
}
else {
return '';
}
}
function stringVisualDiff(actual, expected) {
return (0, diff_1.diffChars)(actual, expected).reduce((str, part) => str + (part.added ? kleur_1.default.bgGreen().black(part.value) : part.removed
? kleur_1.default.bgRed().white(part.value) : kleur_1.default.white(part.value)), '');
}
//# sourceMappingURL=diff.js.map