aboutsummaryrefslogtreecommitdiff
path: root/node_modules/nanomatch/lib/utils.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/nanomatch/lib/utils.js')
-rw-r--r--node_modules/nanomatch/lib/utils.js31
1 files changed, 17 insertions, 14 deletions
diff --git a/node_modules/nanomatch/lib/utils.js b/node_modules/nanomatch/lib/utils.js
index 6fc434012..0cf1501d2 100644
--- a/node_modules/nanomatch/lib/utils.js
+++ b/node_modules/nanomatch/lib/utils.js
@@ -7,6 +7,7 @@ var path = require('path');
* Module dependencies
*/
+var isWindows = require('is-windows')();
var Snapdragon = require('snapdragon');
utils.define = require('define-property');
utils.diff = require('arr-diff');
@@ -31,7 +32,7 @@ utils.isEmptyString = function(val) {
*/
utils.isWindows = function() {
- return path.sep === '\\' || process.platform === 'win32';
+ return path.sep === '\\' || isWindows === true;
};
/**
@@ -60,7 +61,7 @@ utils.instantiate = function(ast, options) {
}
utils.define(snapdragon, 'parse', function(str, options) {
- var parsed = Snapdragon.prototype.parse.apply(this, arguments);
+ var parsed = Snapdragon.prototype.parse.call(this, str, options);
parsed.input = str;
// escape unmatched brace/bracket/parens
@@ -148,21 +149,23 @@ utils.isObject = function(val) {
*/
utils.escapeRegex = function(str) {
- return str.replace(/[-[\]{}()^$|*+?.\\\/\s]/g, '\\$&');
+ return str.replace(/[-[\]{}()^$|*+?.\\/\s]/g, '\\$&');
};
/**
- * Combines duplicate characters in the provided string.
- * @param {String} `str`
+ * Combines duplicate characters in the provided `input` string.
+ * @param {String} `input`
* @returns {String}
*/
-utils.combineDuplicates = function(str, val) {
- if (typeof val === 'string') {
- var re = new RegExp('(' + val + ')(?=(?:' + val + ')*\\1)', 'g');
- return str.replace(re, '');
- }
- return str.replace(/(.)(?=.*\1)/g, '');
+utils.combineDupes = function(input, patterns) {
+ patterns = utils.arrayify(patterns).join('|').split('|');
+ patterns = patterns.map(function(s) {
+ return s.replace(/\\?([+*\\/])/g, '\\$1');
+ });
+ var substr = patterns.join('|');
+ var regex = new RegExp('(' + substr + ')(?=\\1)', 'g');
+ return input.replace(regex, '');
};
/**
@@ -170,7 +173,7 @@ utils.combineDuplicates = function(str, val) {
*/
utils.hasSpecialChars = function(str) {
- return /(?:(?:(^|\/)[!.])|[*?+()|\[\]{}]|[+@]\()/.test(str);
+ return /(?:(?:(^|\/)[!.])|[*?+()|[\]{}]|[+@]\()/.test(str);
};
/**
@@ -202,7 +205,7 @@ utils.unescape = function(str) {
*/
utils.stripDrive = function(fp) {
- return utils.isWindows() ? fp.replace(/^[a-z]:[\\\/]+?/i, '/') : fp;
+ return utils.isWindows() ? fp.replace(/^[a-z]:[\\/]+?/i, '/') : fp;
};
/**
@@ -226,7 +229,7 @@ utils.stripPrefix = function(str) {
*/
utils.isSimpleChar = function(str) {
- return str === '' || str === ' ' || str === '.';
+ return str.trim() === '' || str === '.';
};
/**