| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | 'use strict';var path = require('path');var findIndex = require('find-index');var flattenGlob = function(arr){  var out = [];  var flat = true;  for(var i = 0; i < arr.length; i++) {    if (typeof arr[i] !== 'string') {      flat = false;      break;    }    out.push(arr[i]);  }  // last one is a file or specific dir  // so we pop it off  if (flat) {    out.pop();  }  return out;};var flattenExpansion = function(set) {  var first = set[0];  var toCompare = set.slice(1);  // find index where the diff is  var idx = findIndex(first, function(v, idx){    if (typeof v !== 'string') {      return true;    }    var matched = toCompare.every(function(arr){      return v === arr[idx];    });    return !matched;  });  return first.slice(0, idx);};var setToBase = function(set) {  // normal something/*.js  if (set.length <= 1) {    return flattenGlob(set[0]);  }  // has expansion  return flattenExpansion(set);};module.exports = function(glob) {  var set = glob.minimatch.set;  var baseParts = setToBase(set);  var basePath = path.normalize(baseParts.join(path.sep))+path.sep;  return basePath;};
 |