MCPcopy Create free account
hub / github.com/denoland/std / parseArgs

Function parseArgs

cli/parse_args.ts:607–906  ·  view source on GitHub ↗
(
  args: readonly string[],
  options?: ParseOptions<
    TBooleans,
    TStrings,
    TCollectable,
    TNegatable,
    TDefaults,
    TAliases,
    TDoubleDash
  >,
)

Source from the content-addressed store, hash-verified

605 * ```
606 */
607export function parseArgs<
608 TArgs extends Values<
609 TBooleans,
610 TStrings,
611 TCollectable,
612 TNegatable,
613 TDefaults,
614 TAliases
615 >,
616 TDoubleDash extends boolean | undefined = undefined,
617 TBooleans extends BooleanType = undefined,
618 TStrings extends StringType = undefined,
619 TCollectable extends Collectable = undefined,
620 TNegatable extends Negatable = undefined,
621 TDefaults extends Record<string, unknown> | undefined = undefined,
622 TAliases extends Aliases<TAliasArgNames, TAliasNames> | undefined = undefined,
623 TAliasArgNames extends string = string,
624 TAliasNames extends string = string,
625>(
626 args: readonly string[],
627 options?: ParseOptions<
628 TBooleans,
629 TStrings,
630 TCollectable,
631 TNegatable,
632 TDefaults,
633 TAliases,
634 TDoubleDash
635 >,
636): Args<TArgs, TDoubleDash> {
637 const {
638 "--": doubleDash = false,
639 alias = {} as NonNullable<TAliases>,
640 boolean = false,
641 default: defaults = {} as TDefaults & Defaults<TBooleans, TStrings>,
642 stopEarly = false,
643 string = [],
644 collect = [],
645 negatable = [],
646 unknown: unknownFn = (i: string): unknown => i,
647 } = options ?? {};
648 const aliasMap: Map<string, Set<string>> = new Map();
649 const booleanSet = new Set<string>();
650 const stringSet = new Set<string>();
651 const collectSet = new Set<string>();
652 const negatableSet = new Set<string>();
653
654 let allBools = false;
655
656 if (alias) {
657 for (const [key, value] of Object.entries(alias)) {
658 if (value === undefined) {
659 throw new TypeError("Alias value must be defined");
660 }
661 const aliases = Array.isArray(value) ? value : [value];
662 aliasMap.set(key, new Set(aliases));
663 aliases.forEach((alias) =>
664 aliasMap.set(

Callers 2

parse_args_test.tsFile · 0.90
mainFunction · 0.85

Calls 15

parseBooleanStringFunction · 0.85
setArgumentFunction · 0.85
aliasIsBooleanFunction · 0.85
isBooleanStringFunction · 0.85
unknownFnFunction · 0.85
isNumberFunction · 0.85
hasNestedFunction · 0.85
setNestedFunction · 0.85
forEachMethod · 0.80
matchMethod · 0.80
startsWithMethod · 0.80
keysMethod · 0.80

Tested by

no test coverage detected