You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							35 lines
						
					
					
						
							1023 B
						
					
					
				
			
		
		
	
	
							35 lines
						
					
					
						
							1023 B
						
					
					
				"use strict"; | 
						|
 | 
						|
module.exports = parseArgsStringToArgv; | 
						|
module.exports.parseArgsStringToArgv = parseArgsStringToArgv; | 
						|
 | 
						|
function parseArgsStringToArgv(value, env, file) { | 
						|
  // ([^\s'"]+(['"])([^\2]*?)\2) Match `text"quotes text"` | 
						|
 | 
						|
  // [^\s'"] or Match if not a space ' or " | 
						|
 | 
						|
  // (['"])([^\4]*?)\4 or Match "quoted text" without quotes | 
						|
  // `\2` and `\4` are a backreference to the quote style (' or ") captured | 
						|
  var myRegexp = /([^\s'"]+(['"])([^\2]*?)\2)|[^\s'"]+|(['"])([^\4]*?)\4/gi; | 
						|
  var myString = value; | 
						|
  var myArray = [ | 
						|
  ]; | 
						|
  if (env) { | 
						|
    myArray.push(env); | 
						|
  } | 
						|
  if (file) { | 
						|
    myArray.push(file); | 
						|
  } | 
						|
  var match; | 
						|
  do { | 
						|
        // Each call to exec returns the next regex match as an array | 
						|
    match = myRegexp.exec(myString); | 
						|
    if (match !== null) { | 
						|
      // Index 1 in the array is the captured group if it exists | 
						|
      // Index 0 is the matched text, which we use if no captured group exists | 
						|
      myArray.push(match[1] || match[5] || match[0]); | 
						|
    } | 
						|
  } while (match !== null); | 
						|
 | 
						|
  return myArray; | 
						|
}
 | 
						|
 |