aboutsummaryrefslogtreecommitdiff
path: root/node_modules/jest-diff/build/printDiffs.js
diff options
context:
space:
mode:
authorJoel Kronqvist <work.joelkronqvist@pm.me>2022-03-11 20:46:06 +0200
committerJoel Kronqvist <work.joelkronqvist@pm.me>2022-03-11 20:46:06 +0200
commit080c5819d87b933816d724a83f3bf4f1686770a7 (patch)
tree4a2ccc68b27edf7d4cbc586c932cc7542b655e19 /node_modules/jest-diff/build/printDiffs.js
parent5ac7049a9d30733165cc212dee308163c2a14644 (diff)
parentd003b82235a9329f912522a2f70aa950dfce4998 (diff)
downloadLYLLRuoka-080c5819d87b933816d724a83f3bf4f1686770a7.tar.gz
LYLLRuoka-080c5819d87b933816d724a83f3bf4f1686770a7.zip
Merge branch 'master' of https://github.com/JoelHMikael/FoodJS
Updating remote changes
Diffstat (limited to 'node_modules/jest-diff/build/printDiffs.js')
-rw-r--r--node_modules/jest-diff/build/printDiffs.js85
1 files changed, 85 insertions, 0 deletions
diff --git a/node_modules/jest-diff/build/printDiffs.js b/node_modules/jest-diff/build/printDiffs.js
new file mode 100644
index 0000000..b247e10
--- /dev/null
+++ b/node_modules/jest-diff/build/printDiffs.js
@@ -0,0 +1,85 @@
+'use strict';
+
+Object.defineProperty(exports, '__esModule', {
+ value: true
+});
+exports.diffStringsUnified = exports.diffStringsRaw = void 0;
+
+var _cleanupSemantic = require('./cleanupSemantic');
+
+var _diffLines = require('./diffLines');
+
+var _diffStrings = _interopRequireDefault(require('./diffStrings'));
+
+var _getAlignedDiffs = _interopRequireDefault(require('./getAlignedDiffs'));
+
+var _normalizeDiffOptions = require('./normalizeDiffOptions');
+
+function _interopRequireDefault(obj) {
+ return obj && obj.__esModule ? obj : {default: obj};
+}
+
+/**
+ * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+const hasCommonDiff = (diffs, isMultiline) => {
+ if (isMultiline) {
+ // Important: Ignore common newline that was appended to multiline strings!
+ const iLast = diffs.length - 1;
+ return diffs.some(
+ (diff, i) =>
+ diff[0] === _cleanupSemantic.DIFF_EQUAL &&
+ (i !== iLast || diff[1] !== '\n')
+ );
+ }
+
+ return diffs.some(diff => diff[0] === _cleanupSemantic.DIFF_EQUAL);
+}; // Compare two strings character-by-character.
+// Format as comparison lines in which changed substrings have inverse colors.
+
+const diffStringsUnified = (a, b, options) => {
+ if (a !== b && a.length !== 0 && b.length !== 0) {
+ const isMultiline = a.includes('\n') || b.includes('\n'); // getAlignedDiffs assumes that a newline was appended to the strings.
+
+ const diffs = diffStringsRaw(
+ isMultiline ? a + '\n' : a,
+ isMultiline ? b + '\n' : b,
+ true // cleanupSemantic
+ );
+
+ if (hasCommonDiff(diffs, isMultiline)) {
+ const optionsNormalized = (0, _normalizeDiffOptions.normalizeDiffOptions)(
+ options
+ );
+ const lines = (0, _getAlignedDiffs.default)(
+ diffs,
+ optionsNormalized.changeColor
+ );
+ return (0, _diffLines.printDiffLines)(lines, optionsNormalized);
+ }
+ } // Fall back to line-by-line diff.
+
+ return (0, _diffLines.diffLinesUnified)(
+ a.split('\n'),
+ b.split('\n'),
+ options
+ );
+}; // Compare two strings character-by-character.
+// Optionally clean up small common substrings, also known as chaff.
+
+exports.diffStringsUnified = diffStringsUnified;
+
+const diffStringsRaw = (a, b, cleanup) => {
+ const diffs = (0, _diffStrings.default)(a, b);
+
+ if (cleanup) {
+ (0, _cleanupSemantic.cleanupSemantic)(diffs); // impure function
+ }
+
+ return diffs;
+};
+
+exports.diffStringsRaw = diffStringsRaw;