diff options
Diffstat (limited to 'lib/utils/path.js')
-rw-r--r-- | lib/utils/path.js | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/lib/utils/path.js b/lib/utils/path.js index d5b98f7..5285896 100644 --- a/lib/utils/path.js +++ b/lib/utils/path.js @@ -1,5 +1,5 @@ var _ = require("lodash"); -var path = require('path'); +var path = require("path"); // Return true if file path is inside a folder function isInRoot(root, filename) { @@ -10,28 +10,29 @@ function isInRoot(root, filename) { // Resolve paths in a specific folder // Throw error if file is outside this folder function resolveInRoot(root) { - var input = _.chain(arguments) + var input, result, err; + + input = _.chain(arguments) .toArray() .slice(1) - .reduce(function(current, p, i) { - // Handle path relative to book root ('/README.md') - if (p[0] == '/' || p[0] == '\\') return p.slice(1); + .reduce(function(current, p) { + // Handle path relative to book root ("/README.md") + if (p[0] == "/" || p[0] == "\\") return p.slice(1); return current? path.join(current, p) : path.normalize(p); - }, '') + }, "") .value(); - var result = path.resolve(root, input); + result = path.resolve(root, input); if (!isInRoot(root, result)) { - err = new Error("EACCESS: '" + result + "' not in '" + root + "'"); + err = new Error("EACCESS: \"" + result + "\" not in \"" + root + "\""); err.code = "EACCESS"; throw err; } - return result -}; - + return result; +} module.exports = { isInRoot: isInRoot, |