40 lines
1.2 KiB
JavaScript
40 lines
1.2 KiB
JavaScript
'use strict';Object.defineProperty(exports, "__esModule", { value: true });exports.default =
|
|
|
|
|
|
|
|
inlineDiff;var _diff = require('diff');var _padRight = require('pad-right');var _padRight2 = _interopRequireDefault(_padRight);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function inlineDiff(actual, expected, colorFns) {
|
|
var msg = errorDiff(actual, expected, colorFns);
|
|
|
|
// linenos
|
|
var lines = msg.split('\n');
|
|
if (lines.length > 4) {(function () {
|
|
var width = String(lines.length).length;
|
|
msg = lines.map(function (str, i) {
|
|
return (0, _padRight2.default)(i + 1, width, ' ') + '|' + ' ' + str;
|
|
}).join('\n');})();
|
|
}
|
|
|
|
// legend
|
|
msg = '\n ' +
|
|
colorFns.diffRemoved('actual') +
|
|
' ' +
|
|
colorFns.diffAdded('expected') +
|
|
'\n\n' +
|
|
msg.replace(/^/gm, ' ') +
|
|
'\n';
|
|
|
|
return msg;
|
|
}
|
|
|
|
|
|
function errorDiff(actual, expected, colorFns) {
|
|
return (0, _diff.diffWordsWithSpace)(actual, expected).map(function (str) {
|
|
if (str.added) {
|
|
return colorFns.diffAdded(str.value);
|
|
}
|
|
if (str.removed) {
|
|
return colorFns.diffRemoved(str.value);
|
|
}
|
|
return str.value;
|
|
}).join('');
|
|
} |