(value)
| 67 | function takeFlag(rest, flag) { |
| 68 | const pattern = new RegExp(`(^|\\s)${escapeRegExp(flag)}(?=\\s|$)`, "i"); |
| 69 | const found = pattern.test(rest); |
| 70 | return [found, rest.replace(pattern, " ").replace(/\s+/g, " ").trim()]; |
| 71 | } |
| 72 | function takeFlagValue(rest, flag) { |
| 73 | const pattern = new RegExp(`(^|\\s)${escapeRegExp(flag)}\\s+(?:"([^"]*)"|'([^']*)'|(\\S+))`, "i"); |
| 74 | const match = rest.match(pattern); |
| 75 | if (!match) |
| 76 | return [undefined, rest]; |
| 77 | const value = match[2] ?? match[3] ?? match[4]; |
| 78 | return [value, rest.replace(pattern, " ").replace(/\s+/g, " ").trim()]; |
| 79 | } |
| 80 | function takeAllFlagValues(rest, flag) { |
| 81 | const values = []; |
| 82 | let current = rest; |
| 83 | while (true) { |
| 84 | const [value, next] = takeFlagValue(current, flag); |
| 85 | if (value === undefined) |
| 86 | return [values, current]; |
no outgoing calls
no test coverage detected