1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | function filterArgs(argv, { allow, block }) {
|
4 | const filteredArgv = [];
|
5 | const unknownArgv = [];
|
6 | const isInvalid = (option) => {
|
7 | return (allow && !allow[option]) || (block && block[option]);
|
8 | };
|
9 | let skipNext = false;
|
10 | argv.forEach((arg, i) => {
|
11 | if (skipNext) {
|
12 | skipNext = false;
|
13 | return;
|
14 | }
|
15 | if (arg.startsWith('-')) {
|
16 | let option = arg;
|
17 | const nextArg = argv[i + 1];
|
18 |
|
19 | if (option.includes('=')) {
|
20 | [option] = option.split('=');
|
21 | if (isInvalid(option)) {
|
22 | unknownArgv.push(arg);
|
23 | return;
|
24 | }
|
25 |
|
26 | }
|
27 | else if (isInvalid(option)) {
|
28 | unknownArgv.push(arg);
|
29 | if (nextArg && !nextArg.startsWith('-')) {
|
30 | skipNext = true;
|
31 | unknownArgv.push(nextArg);
|
32 | }
|
33 | return;
|
34 | }
|
35 | }
|
36 | filteredArgv.push(arg);
|
37 | });
|
38 | return {
|
39 | filteredArgv,
|
40 | unknownArgv,
|
41 | };
|
42 | }
|
43 | exports.default = filterArgs;
|