MCPcopy
hub / github.com/GitbookIO/gitbook / mergeAtLevel

Function mergeAtLevel

lib/modifiers/summary/mergeAtLevel.js:53–72  ·  view source on GitHub ↗

Edit an article, or a part, in a summary. Does a shallow merge. @param {Summary} summary @param {String} level @param {Article|Part} newValue @return {Summary}

(summary, level, newValue)

Source from the content-addressed store, hash-verified

51 @return {Summary}
52*/
53function mergeAtLevel(summary, level, newValue) {
54 var levelParts = level.split('.');
55 var partIndex = Number(levelParts[0]) -1;
56
57 var parts = summary.getParts();
58 var part = parts.get(partIndex);
59 if (!part) {
60 return summary;
61 }
62
63 var isEditingPart = levelParts.length < 2;
64 if (isEditingPart) {
65 part = part.merge(newValue);
66 } else {
67 part = editArticleInPart(part, level, newValue);
68 }
69
70 parts = parts.set(partIndex, part);
71 return summary.set('parts', parts);
72}
73
74
75module.exports = mergeAtLevel;

Callers 5

editArticleRefFunction · 0.85
editArticleTitleFunction · 0.85
insertArticleFunction · 0.85
removeArticleFunction · 0.85
mergeAtLevel.jsFile · 0.85

Calls 1

editArticleInPartFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…