| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 | 
							- 'use strict';
 
- var win32 = process && process.platform === 'win32';
 
- var path = require('path');
 
- var fileRe = require('filename-regex');
 
- var utils = module.exports;
 
- /**
 
-  * Module dependencies
 
-  */
 
- utils.diff = require('arr-diff');
 
- utils.unique = require('array-unique');
 
- utils.braces = require('braces');
 
- utils.brackets = require('expand-brackets');
 
- utils.extglob = require('extglob');
 
- utils.isExtglob = require('is-extglob');
 
- utils.isGlob = require('is-glob');
 
- utils.typeOf = require('kind-of');
 
- utils.normalize = require('normalize-path');
 
- utils.omit = require('object.omit');
 
- utils.parseGlob = require('parse-glob');
 
- utils.cache = require('regex-cache');
 
- /**
 
-  * Get the filename of a filepath
 
-  *
 
-  * @param {String} `string`
 
-  * @return {String}
 
-  */
 
- utils.filename = function filename(fp) {
 
-   var seg = fp.match(fileRe());
 
-   return seg && seg[0];
 
- };
 
- /**
 
-  * Returns a function that returns true if the given
 
-  * pattern is the same as a given `filepath`
 
-  *
 
-  * @param {String} `pattern`
 
-  * @return {Function}
 
-  */
 
- utils.isPath = function isPath(pattern, opts) {
 
-   opts = opts || {};
 
-   return function(fp) {
 
-     var unixified = utils.unixify(fp, opts);
 
-     if(opts.nocase){
 
-       return pattern.toLowerCase() === unixified.toLowerCase();
 
-     }
 
-     return pattern === unixified;
 
-   };
 
- };
 
- /**
 
-  * Returns a function that returns true if the given
 
-  * pattern contains a `filepath`
 
-  *
 
-  * @param {String} `pattern`
 
-  * @return {Function}
 
-  */
 
- utils.hasPath = function hasPath(pattern, opts) {
 
-   return function(fp) {
 
-     return utils.unixify(pattern, opts).indexOf(fp) !== -1;
 
-   };
 
- };
 
- /**
 
-  * Returns a function that returns true if the given
 
-  * pattern matches or contains a `filepath`
 
-  *
 
-  * @param {String} `pattern`
 
-  * @return {Function}
 
-  */
 
- utils.matchPath = function matchPath(pattern, opts) {
 
-   var fn = (opts && opts.contains)
 
-     ? utils.hasPath(pattern, opts)
 
-     : utils.isPath(pattern, opts);
 
-   return fn;
 
- };
 
- /**
 
-  * Returns a function that returns true if the given
 
-  * regex matches the `filename` of a file path.
 
-  *
 
-  * @param {RegExp} `re`
 
-  * @return {Boolean}
 
-  */
 
- utils.hasFilename = function hasFilename(re) {
 
-   return function(fp) {
 
-     var name = utils.filename(fp);
 
-     return name && re.test(name);
 
-   };
 
- };
 
- /**
 
-  * Coerce `val` to an array
 
-  *
 
-  * @param  {*} val
 
-  * @return {Array}
 
-  */
 
- utils.arrayify = function arrayify(val) {
 
-   return !Array.isArray(val)
 
-     ? [val]
 
-     : val;
 
- };
 
- /**
 
-  * Normalize all slashes in a file path or glob pattern to
 
-  * forward slashes.
 
-  */
 
- utils.unixify = function unixify(fp, opts) {
 
-   if (opts && opts.unixify === false) return fp;
 
-   if (opts && opts.unixify === true || win32 || path.sep === '\\') {
 
-     return utils.normalize(fp, false);
 
-   }
 
-   if (opts && opts.unescape === true) {
 
-     return fp ? fp.toString().replace(/\\(\w)/g, '$1') : '';
 
-   }
 
-   return fp;
 
- };
 
- /**
 
-  * Escape/unescape utils
 
-  */
 
- utils.escapePath = function escapePath(fp) {
 
-   return fp.replace(/[\\.]/g, '\\$&');
 
- };
 
- utils.unescapeGlob = function unescapeGlob(fp) {
 
-   return fp.replace(/[\\"']/g, '');
 
- };
 
- utils.escapeRe = function escapeRe(str) {
 
-   return str.replace(/[-[\\$*+?.#^\s{}(|)\]]/g, '\\$&');
 
- };
 
- /**
 
-  * Expose `utils`
 
-  */
 
- module.exports = utils;
 
 
  |