( input: ReadonlyArray<string>, options: ReadonlyArray<ParseableInstruction>, config: CliConfig.CliConfig )
| 1540 | * arguments from `input` and a mapping between each flag and its values. |
| 1541 | */ |
| 1542 | const matchOptions = ( |
| 1543 | input: ReadonlyArray<string>, |
| 1544 | options: ReadonlyArray<ParseableInstruction>, |
| 1545 | config: CliConfig.CliConfig |
| 1546 | ): Effect.Effect< |
| 1547 | [ |
| 1548 | Option.Option<ValidationError.ValidationError>, |
| 1549 | ReadonlyArray<string>, |
| 1550 | HashMap.HashMap<string, ReadonlyArray<string>> |
| 1551 | ] |
| 1552 | > => { |
| 1553 | if (Arr.isNonEmptyReadonlyArray(options)) { |
| 1554 | return findOptions(input, options, config).pipe( |
| 1555 | Effect.flatMap(([otherArgs, otherOptions, map1]) => { |
| 1556 | if (HashMap.isEmpty(map1)) { |
| 1557 | return Effect.succeed([Option.none(), input, map1] as [ |
| 1558 | Option.Option<ValidationError.ValidationError>, |
| 1559 | ReadonlyArray<string>, |
| 1560 | HashMap.HashMap<string, ReadonlyArray<string>> |
| 1561 | ]) |
| 1562 | } |
| 1563 | return matchOptions(otherArgs, otherOptions, config).pipe( |
| 1564 | Effect.map(([error, otherArgs, map2]) => |
| 1565 | [error, otherArgs, merge(map1, Arr.fromIterable(map2))] as [ |
| 1566 | Option.Option<ValidationError.ValidationError>, |
| 1567 | ReadonlyArray<string>, |
| 1568 | HashMap.HashMap<string, ReadonlyArray<string>> |
| 1569 | ] |
| 1570 | ) |
| 1571 | ) |
| 1572 | }), |
| 1573 | Effect.catchAll((e) => |
| 1574 | Effect.succeed([Option.some(e), input, HashMap.empty()] as [ |
| 1575 | Option.Option<ValidationError.ValidationError>, |
| 1576 | ReadonlyArray<string>, |
| 1577 | HashMap.HashMap<string, ReadonlyArray<string>> |
| 1578 | ]) |
| 1579 | ) |
| 1580 | ) |
| 1581 | } |
| 1582 | return Arr.isEmptyReadonlyArray(input) |
| 1583 | ? Effect.succeed([Option.none(), Arr.empty(), HashMap.empty()] as [ |
| 1584 | Option.Option<ValidationError.ValidationError>, |
| 1585 | ReadonlyArray<string>, |
| 1586 | HashMap.HashMap<string, ReadonlyArray<string>> |
| 1587 | ]) |
| 1588 | : Effect.succeed([Option.none(), input, HashMap.empty()] as [ |
| 1589 | Option.Option<ValidationError.ValidationError>, |
| 1590 | ReadonlyArray<string>, |
| 1591 | HashMap.HashMap<string, ReadonlyArray<string>> |
| 1592 | ]) |
| 1593 | } |
| 1594 | |
| 1595 | /** |
| 1596 | * Returns the leftover arguments, leftover options, and a mapping between the |
no test coverage detected