You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							30 lines
						
					
					
						
							802 B
						
					
					
				
			
		
		
	
	
							30 lines
						
					
					
						
							802 B
						
					
					
				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('/') : '/'
 | 
						|
};
 |