(
args: readonly string[],
options?: ParseOptions<
TBooleans,
TStrings,
TCollectable,
TNegatable,
TDefaults,
TAliases,
TDoubleDash
>,
)
| 605 | * ``` |
| 606 | */ |
| 607 | export 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( |
no test coverage detected