3 var path = require('path');
4 var findIndex = require('find-index');
6 var flattenGlob = function(arr){
9 for(var i = 0; i < arr.length; i++) {
10 if (typeof arr[i] !== 'string') {
17 // last one is a file or specific dir
25 var flattenExpansion = function(set) {
27 var toCompare = set.slice(1);
29 // find index where the diff is
30 var idx = findIndex(first, function(v, idx){
31 if (typeof v !== 'string') {
35 var matched = toCompare.every(function(arr){
36 return v === arr[idx];
42 return first.slice(0, idx);
45 var setToBase = function(set) {
46 // normal something/*.js
47 if (set.length <= 1) {
48 return flattenGlob(set[0]);
51 return flattenExpansion(set);
54 module.exports = function(glob) {
55 var set = glob.minimatch.set;
56 var baseParts = setToBase(set);
57 var basePath = path.normalize(baseParts.join(path.sep))+path.sep;