forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			49 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			49 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								/*!
							 | 
						||
| 
								 | 
							
								 * is-glob <https://github.com/jonschlinkert/is-glob>
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Copyright (c) 2014-2017, Jon Schlinkert.
							 | 
						||
| 
								 | 
							
								 * Released under the MIT License.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var isExtglob = require('is-extglob');
							 | 
						||
| 
								 | 
							
								var chars = { '{': '}', '(': ')', '[': ']'};
							 | 
						||
| 
								 | 
							
								var strictRegex = /\\(.)|(^!|\*|[\].+)]\?|\[[^\\\]]+\]|\{[^\\}]+\}|\(\?[:!=][^\\)]+\)|\([^|]+\|[^\\)]+\))/;
							 | 
						||
| 
								 | 
							
								var relaxedRegex = /\\(.)|(^!|[*?{}()[\]]|\(\?)/;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = function isGlob(str, options) {
							 | 
						||
| 
								 | 
							
								  if (typeof str !== 'string' || str === '') {
							 | 
						||
| 
								 | 
							
								    return false;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (isExtglob(str)) {
							 | 
						||
| 
								 | 
							
								    return true;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var regex = strictRegex;
							 | 
						||
| 
								 | 
							
								  var match;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  // optionally relax regex
							 | 
						||
| 
								 | 
							
								  if (options && options.strict === false) {
							 | 
						||
| 
								 | 
							
								    regex = relaxedRegex;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  while ((match = regex.exec(str))) {
							 | 
						||
| 
								 | 
							
								    if (match[2]) return true;
							 | 
						||
| 
								 | 
							
								    var idx = match.index + match[0].length;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // if an open bracket/brace/paren is escaped,
							 | 
						||
| 
								 | 
							
								    // set the index to the next closing character
							 | 
						||
| 
								 | 
							
								    var open = match[1];
							 | 
						||
| 
								 | 
							
								    var close = open ? chars[open] : null;
							 | 
						||
| 
								 | 
							
								    if (open && close) {
							 | 
						||
| 
								 | 
							
								      var n = str.indexOf(close, idx);
							 | 
						||
| 
								 | 
							
								      if (n !== -1) {
							 | 
						||
| 
								 | 
							
								        idx = n + 1;
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    str = str.slice(idx);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  return false;
							 | 
						||
| 
								 | 
							
								};
							 |