diff options
| author | Michael Williamson <mike@zwobble.org> | 2014-03-18 14:24:56 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2014-03-18 14:24:56 +0000 |
| commit | 800b14eed0c909c93a3271191ac93ad5a2d2057f (patch) | |
| tree | 97d326d84fd30c188377314bbdf23ca9fcb7a1db /lib/docx/docx-reader.js | |
| parent | 45f302766a3a5ca99338fd8e5fef07dec42c0e56 (diff) | |
Move reading of actual docx files into docx-reader
Diffstat (limited to 'lib/docx/docx-reader.js')
| -rw-r--r-- | lib/docx/docx-reader.js | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/lib/docx/docx-reader.js b/lib/docx/docx-reader.js index 787c0e0..82a647c 100644 --- a/lib/docx/docx-reader.js +++ b/lib/docx/docx-reader.js @@ -6,9 +6,9 @@ var unzip = require("../unzip"); var readXmlFromZipFile = require("./office-xml-reader").readXmlFromZipFile; var documents = require("../documents"); var DocumentXmlReader = require("./document-xml-reader").DocumentXmlReader; -var readRelationshipsFromZipFile = require("./relationships-reader").readRelationshipsFromZipFile; -var readContentTypesFromZipFile = require("./content-types-reader").readContentTypesFromZipFile; -var readNumberingFromZipFile = require("./numbering-xml").readNumberingFromZipFile; +var relationshipsReader = require("./relationships-reader"); +var contentTypesReader = require("./content-types-reader"); +var numberingXml = require("./numbering-xml"); function read(options) { @@ -25,3 +25,30 @@ function read(options) { }); }); } + +function xmlFileReader(options) { + return function(zipFile) { + return readXmlFromZipFile(zipFile, options.filename) + .then(function(element) { + return element ? options.readElement(element) : options.defaultValue; + }); + }; +} + +var readContentTypesFromZipFile = xmlFileReader({ + filename: "[Content_Types].xml", + readElement: contentTypesReader.readContentTypesFromXml, + defaultValue: contentTypesReader.defaultContentTypes +}); + +var readRelationshipsFromZipFile = xmlFileReader({ + filename: "word/_rels/document.xml.rels", + readElement: relationshipsReader.readRelationships, + defaultValue: {} +}); + +var readNumberingFromZipFile = xmlFileReader({ + filename: "word/numbering.xml", + readElement: numberingXml.readNumberingXml, + defaultValue: numberingXml.defaultNumbering +}); |
