Blame view

node_modules/yargs-parser/lib/tokenize-arg-string.js 724 Bytes
2a09d1a4   liuqimichale   添加宜春 天水 宣化
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
  // take an un-split argv string and tokenize it.
  module.exports = function (argString) {
    if (Array.isArray(argString)) return argString
  
    var i = 0
    var c = null
    var opening = null
    var args = []
  
    for (var ii = 0; ii < argString.length; ii++) {
      c = argString.charAt(ii)
  
      // split on spaces unless we're in quotes.
      if (c === ' ' && !opening) {
        i++
        continue
      }
  
      // don't split the string if we're in matching
      // opening or closing single and double quotes.
      if (c === opening) {
        opening = null
        continue
      } else if ((c === "'" || c === '"') && !opening) {
        opening = c
        continue
      }
  
      if (!args[i]) args[i] = ''
      args[i] += c
    }
  
    return args
  }