(
self: Standard | GetUserInput,
args: ReadonlyArray<string>
)
| 509 | FileSystem.FileSystem | Path.Path | Terminal.Terminal |
| 510 | > => { |
| 511 | const parseCommandLine = ( |
| 512 | self: Standard | GetUserInput, |
| 513 | args: ReadonlyArray<string> |
| 514 | ): Effect.Effect<Array<string>, ValidationError.ValidationError> => |
| 515 | Arr.matchLeft(args, { |
| 516 | onEmpty: () => { |
| 517 | const error = InternalHelpDoc.p(`Missing command name: '${self.name}'`) |
| 518 | return Effect.fail(InternalValidationError.commandMismatch(error)) |
| 519 | }, |
| 520 | onNonEmpty: (head, tail) => { |
| 521 | const normalizedArgv0 = InternalCliConfig.normalizeCase(config, head) |
| 522 | const normalizedCommandName = InternalCliConfig.normalizeCase(config, self.name) |
| 523 | return Effect.succeed(tail).pipe( |
| 524 | Effect.when(() => normalizedArgv0 === normalizedCommandName), |
| 525 | Effect.flatten, |
| 526 | Effect.catchTag("NoSuchElementException", () => { |
| 527 | const error = InternalHelpDoc.p(`Missing command name: '${self.name}'`) |
| 528 | return Effect.fail(InternalValidationError.commandMismatch(error)) |
| 529 | }) |
| 530 | ) |
| 531 | } |
| 532 | }) |
| 533 | switch (self._tag) { |
| 534 | case "Standard": { |
| 535 | const parseBuiltInArgs = ( |
no test coverage detected