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 | |
| parent | 45f302766a3a5ca99338fd8e5fef07dec42c0e56 (diff) | |
Move reading of actual docx files into docx-reader
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/docx/content-types-reader.js | 22 | ||||
| -rw-r--r-- | lib/docx/docx-reader.js | 33 | ||||
| -rw-r--r-- | lib/docx/numbering-xml.js | 11 | ||||
| -rw-r--r-- | lib/docx/relationships-reader.js | 13 |
4 files changed, 37 insertions, 42 deletions
diff --git a/lib/docx/content-types-reader.js b/lib/docx/content-types-reader.js index 0a74eb9..c8a28a4 100644 --- a/lib/docx/content-types-reader.js +++ b/lib/docx/content-types-reader.js @@ -1,16 +1,11 @@ -var readXmlFromZipFile = require("./office-xml-reader").readXmlFromZipFile; - -exports.readContentTypesFromZipFile = readContentTypesFromZipFile; exports.readContentTypesFromXml = readContentTypesFromXml; +exports.defaultContentTypes = { + findContentType: function(path) { + return null; + } +}; -function readContentTypesFromZipFile(file) { - return readXmlFromZipFile(file, "[Content_Types].xml") - .then(function(xml) { - return xml ? readContentTypesFromXml(xml) : defaultContentTypes; - }); -} - function readContentTypesFromXml(xml) { var extensionDefaults = {}; var overrides = {}; @@ -41,10 +36,3 @@ function readContentTypesFromXml(xml) { } } } - - -var defaultContentTypes = { - findContentType: function(path) { - return null; - } -}; 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 +}); diff --git a/lib/docx/numbering-xml.js b/lib/docx/numbering-xml.js index 7e64dc2..7a3f4ce 100644 --- a/lib/docx/numbering-xml.js +++ b/lib/docx/numbering-xml.js @@ -1,15 +1,6 @@ -var readXmlFromZipFile = require("./office-xml-reader").readXmlFromZipFile; - exports.readNumberingXml = readNumberingXml; -exports.readNumberingFromZipFile = readNumberingFromZipFile; exports.Numbering = Numbering; - -function readNumberingFromZipFile(file) { - return readXmlFromZipFile(file, "word/numbering.xml") - .then(function(xml) { - return xml ? readNumberingXml(xml) : new Numbering({}); - }); -} +exports.defaultNumbering = new Numbering({}); function Numbering(nums) { return { diff --git a/lib/docx/relationships-reader.js b/lib/docx/relationships-reader.js index fe6c7f1..7cae534 100644 --- a/lib/docx/relationships-reader.js +++ b/lib/docx/relationships-reader.js @@ -1,15 +1,4 @@ -var readXmlFromZipFile = require("./office-xml-reader").readXmlFromZipFile; - - -exports.readRelationshipsFromZipFile = readRelationshipsFromZipFile; - - -function readRelationshipsFromZipFile(file) { - return readXmlFromZipFile(file, "word/_rels/document.xml.rels") - .then(function(relationshipsXml) { - return relationshipsXml ? readRelationships(relationshipsXml) : {}; - }); -} +exports.readRelationships = readRelationships; function readRelationships(relationshipsXml) { |
