diff options
Diffstat (limited to 'lib/api/encodeGlobal.js')
-rw-r--r-- | lib/api/encodeGlobal.js | 44 |
1 files changed, 37 insertions, 7 deletions
diff --git a/lib/api/encodeGlobal.js b/lib/api/encodeGlobal.js index 0e0f82c..915350c 100644 --- a/lib/api/encodeGlobal.js +++ b/lib/api/encodeGlobal.js @@ -1,6 +1,6 @@ -var path = require('path'); - var fs = require('../utils/fs'); +var Promise = require('../utils/promise'); +var PathUtils = require('../utils/promise'); var deprecate = require('./deprecate'); var encodeConfig = require('./encodeConfig'); @@ -15,8 +15,7 @@ var encodeConfig = require('./encodeConfig'); function encodeGlobal(output) { var book = output.getBook(); var logger = output.getLogger(); - - var outputFolder = output.getOptions().get('root'); + var outputFolder = output.getRoot(); var result = { log: logger, @@ -24,15 +23,46 @@ function encodeGlobal(output) { }; result.output = { - name: 'website', + /** + Name of the generator being used + {String} + */ + name: output.getGenerator(), + + /** + Return absolute path to the root folder of output + @return {String} + */ + root: function() { + return outputFolder; + }, + /** + Convert a filepath into an url + @return {String} + */ toURL: function(s) { return s; }, + /** + Write a file to the output folder, + It creates the required folder + + @param {String} fileName + @param {Buffer} content + @return {Promise} + */ writeFile: function(fileName, content) { - var filePath = path.join(outputFolder, fileName); - return fs.writeFile(filePath, content); + return Promise() + .then(function() { + var filePath = PathUtils.resolveInRoot(outputFolder, fileName); + + return fs.ensure(filePath) + .then(function() { + return fs.writeFile(filePath, content); + }); + }); } }; |