|
|
- 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('/') : '/'
- };
|