MCPcopy Index your code
hub / github.com/Effect-TS/effect / parseCommandLine

Function parseCommandLine

packages/cli/src/internal/commandDescriptor.ts:511–532  ·  view source on GitHub ↗
(
    self: Standard | GetUserInput,
    args: ReadonlyArray<string>
  )

Source from the content-addressed store, hash-verified

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 = (

Callers 2

parseUserDefinedArgsFunction · 0.70
parseInternalFunction · 0.70

Calls 2

failMethod · 0.65
pipeMethod · 0.65

Tested by

no test coverage detected