summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/diffs/store/utils.js
diff options
context:
space:
mode:
authorTim Zallmann <tzallmann@gitlab.com>2018-08-08 02:50:01 +0000
committerMike Greiling <mike@pixelcog.com>2018-08-08 02:50:01 +0000
commit8daf9db68fee40c49f7f5610625eefc1a5d79b32 (patch)
tree19fbb3529fd567c470871adbc0f2254fc43082c4 /app/assets/javascripts/diffs/store/utils.js
parentb507d93a3b89e885c84256224d0d6ac49418026f (diff)
downloadgitlab-ce-8daf9db68fee40c49f7f5610625eefc1a5d79b32.tar.gz
Porting MR Vue Memory Fixes to current master
Diffstat (limited to 'app/assets/javascripts/diffs/store/utils.js')
-rw-r--r--app/assets/javascripts/diffs/store/utils.js21
1 files changed, 21 insertions, 0 deletions
diff --git a/app/assets/javascripts/diffs/store/utils.js b/app/assets/javascripts/diffs/store/utils.js
index d9589baa76e..82082ac508a 100644
--- a/app/assets/javascripts/diffs/store/utils.js
+++ b/app/assets/javascripts/diffs/store/utils.js
@@ -173,3 +173,24 @@ export function trimFirstCharOfLineContent(line = {}) {
return parsedLine;
}
+
+export function getDiffRefsByLineCode(diffFiles) {
+ return diffFiles.reduce((acc, diffFile) => {
+ const { baseSha, headSha, startSha } = diffFile.diffRefs;
+ const { newPath, oldPath } = diffFile;
+
+ // We can only use highlightedDiffLines to create the map of diff lines because
+ // highlightedDiffLines will also include every parallel diff line in it.
+ if (diffFile.highlightedDiffLines) {
+ diffFile.highlightedDiffLines.forEach(line => {
+ const { lineCode, oldLine, newLine } = line;
+
+ if (lineCode) {
+ acc[lineCode] = { baseSha, headSha, startSha, newPath, oldPath, oldLine, newLine };
+ }
+ });
+ }
+
+ return acc;
+ }, {});
+}