diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-06-14 12:59:30 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-06-14 12:59:30 +0100 |
| commit | 5d9cb3f272d54c42840e066265871f743c5553f4 (patch) | |
| tree | 15990e9c6370aa95d61a3873d2e70d26206633f3 /lib/docx/document-xml-reader.js | |
| parent | 7fd0b913c41926a745331e26e779d6ee33e70ae0 (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.js | 12 |
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]); +} |
