aboutsummaryrefslogtreecommitdiff
path: root/lib/docx/docx-reader.js
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2014-03-18 14:24:56 +0000
committerMichael Williamson <mike@zwobble.org>2014-03-18 14:24:56 +0000
commit800b14eed0c909c93a3271191ac93ad5a2d2057f (patch)
tree97d326d84fd30c188377314bbdf23ca9fcb7a1db /lib/docx/docx-reader.js
parent45f302766a3a5ca99338fd8e5fef07dec42c0e56 (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.js33
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
+});