diff options
Diffstat (limited to 'node_modules/commondir/index.js')
-rw-r--r-- | node_modules/commondir/index.js | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/node_modules/commondir/index.js b/node_modules/commondir/index.js new file mode 100644 index 0000000..fa77d04 --- /dev/null +++ b/node_modules/commondir/index.js @@ -0,0 +1,29 @@ +var path = require('path'); + +module.exports = function (basedir, relfiles) { + if (relfiles) { + var files = relfiles.map(function (r) { + return path.resolve(basedir, r); + }); + } + else { + var files = basedir; + } + + var res = files.slice(1).reduce(function (ps, file) { + if (!file.match(/^([A-Za-z]:)?\/|\\/)) { + throw new Error('relative path without a basedir'); + } + + var xs = file.split(/\/+|\\+/); + for ( + var i = 0; + ps[i] === xs[i] && i < Math.min(ps.length, xs.length); + i++ + ); + return ps.slice(0, i); + }, files[0].split(/\/+|\\+/)); + + // Windows correctly handles paths with forward-slashes + return res.length > 1 ? res.join('/') : '/' +}; |