MCPcopy
hub / github.com/foambubble/foam / parseArgs

Function parseArgs

packages/foam-cli/src/support/args.ts:24–73  ·  view source on GitHub ↗
(argv: string[])

Source from the content-addressed store, hash-verified

22}
23
24export function parseArgs(argv: string[]): ParsedArgs {
25 const options = new Map<string, string | boolean>();
26 const multi = new Map<string, string[]>();
27 const positionals: string[] = [];
28
29 const pushMulti = (name: string, value: string) => {
30 const existing = multi.get(name);
31 if (existing) {
32 existing.push(value);
33 } else {
34 multi.set(name, [value]);
35 }
36 };
37
38 for (let i = 0; i < argv.length; i++) {
39 const arg = argv[i];
40
41 if (arg === '--') {
42 positionals.push(...argv.slice(i + 1));
43 break;
44 }
45
46 if (arg.startsWith('--')) {
47 const [name, inlineValue] = arg.slice(2).split('=', 2);
48 if (inlineValue !== undefined) {
49 options.set(name, inlineValue);
50 pushMulti(name, inlineValue);
51 continue;
52 }
53 const next = argv[i + 1];
54 if (next !== undefined && !next.startsWith('-')) {
55 options.set(name, next);
56 pushMulti(name, next);
57 i++;
58 continue;
59 }
60 options.set(name, true);
61 continue;
62 }
63
64 if (arg === '-h') {
65 options.set('help', true);
66 continue;
67 }
68
69 positionals.push(arg);
70 }
71
72 return { options, multi, positionals };
73}
74
75export function getString(parsed: ParsedArgs, name: string): string | undefined;
76export function getString(options: Map<string, string | boolean>, name: string): string | undefined;

Callers 13

runGrepCommandFunction · 0.90
runListCommandFunction · 0.90
parseMcpArgsFunction · 0.90
runNoteCommandFunction · 0.90
runLinksCommandFunction · 0.90
runGraphCommandFunction · 0.90
runQueryCommandFunction · 0.90
runLintCommandFunction · 0.90
runSearchCommandFunction · 0.90
runTagCommandFunction · 0.90
runOutlineCommandFunction · 0.90
runDailyCommandFunction · 0.90

Calls 3

pushMultiFunction · 0.85
pushMethod · 0.80
setMethod · 0.65

Tested by

no test coverage detected