aboutsummaryrefslogtreecommitdiff
path: root/lib/docx/document-xml-reader.js
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-06-14 12:59:30 +0100
committerMichael Williamson <mike@zwobble.org>2015-06-14 12:59:30 +0100
commit5d9cb3f272d54c42840e066265871f743c5553f4 (patch)
tree15990e9c6370aa95d61a3873d2e70d26206633f3 /lib/docx/document-xml-reader.js
parent7fd0b913c41926a745331e26e779d6ee33e70ae0 (diff)
Avoid dropping extra elements on the floor
Diffstat (limited to 'lib/docx/document-xml-reader.js')
-rw-r--r--lib/docx/document-xml-reader.js12
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/docx/document-xml-reader.js b/lib/docx/document-xml-reader.js
index 8e459cc..8bdb8cc 100644
--- a/lib/docx/document-xml-reader.js
+++ b/lib/docx/document-xml-reader.js
@@ -328,14 +328,13 @@ function ReadResult(element, extra, messages) {
}
ReadResult.prototype.toExtra = function() {
- // TODO: handle non-empty this.extra
- return new ReadResult(null, this.value, this.messages);
+ return new ReadResult(null, joinElements(this.extra, this.value), this.messages);
};
ReadResult.prototype.insertExtra = function() {
var extra = this.extra;
if (extra && extra.length) {
- return new ReadResult(_.flatten([this.value, extra]), null, this.messages);
+ return new ReadResult(joinElements(this.value, extra), null, this.messages);
} else {
return this;
}
@@ -352,8 +351,7 @@ ReadResult.prototype.flatMap = function(func) {
var result = this._result.flatMap(function(value) {
return func(value.element)._result;
});
- // TODO: handle non-empty this.extra
- return new ReadResult(result.value.element, result.value.extra, result.messages);
+ return new ReadResult(result.value.element, joinElements(this.extra, result.value.extra), result.messages);
};
function combineResults(results) {
@@ -364,3 +362,7 @@ function combineResults(results) {
result.messages
);
}
+
+function joinElements(first, second) {
+ return _.flatten([first, second]);
+}