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

Function parseBuiltInArgs

packages/cli/src/internal/commandDescriptor.ts:535–568  ·  view source on GitHub ↗
(
        args: ReadonlyArray<string>
      )

Source from the content-addressed store, hash-verified

533 switch (self._tag) {
534 case "Standard": {
535 const parseBuiltInArgs = (
536 args: ReadonlyArray<string>
537 ): Effect.Effect<
538 Directive.CommandDirective<never>,
539 ValidationError.ValidationError,
540 FileSystem.FileSystem | Path.Path | Terminal.Terminal
541 > =>
542 Arr.matchLeft(args, {
543 onEmpty: () => {
544 const error = InternalHelpDoc.p(`Missing command name: '${self.name}'`)
545 return Effect.fail(InternalValidationError.commandMismatch(error))
546 },
547 onNonEmpty: (argv0) => {
548 const normalizedArgv0 = InternalCliConfig.normalizeCase(config, argv0)
549 const normalizedCommandName = InternalCliConfig.normalizeCase(config, self.name)
550 if (normalizedArgv0 === normalizedCommandName) {
551 const help = getHelpInternal(self, config)
552 const usage = getUsageInternal(self)
553 const options = InternalBuiltInOptions.builtInOptions(self, usage, help)
554 const argsWithoutCommand = Arr.drop(args, 1)
555 return InternalOptions.processCommandLine(options, argsWithoutCommand, config)
556 .pipe(
557 Effect.flatMap((tuple) => tuple[2]),
558 Effect.catchTag("NoSuchElementException", () => {
559 const error = InternalHelpDoc.p("No built-in option was matched")
560 return Effect.fail(InternalValidationError.noBuiltInMatch(error))
561 }),
562 Effect.map(InternalCommandDirective.builtIn)
563 )
564 }
565 const error = InternalHelpDoc.p(`Missing command name: '${self.name}'`)
566 return Effect.fail(InternalValidationError.commandMismatch(error))
567 }
568 })
569 const parseUserDefinedArgs = (
570 args: ReadonlyArray<string>
571 ): Effect.Effect<

Callers 2

exhaustiveSearchFunction · 0.85
parseInternalFunction · 0.85

Calls 5

getHelpInternalFunction · 0.70
getUsageInternalFunction · 0.70
failMethod · 0.65
pipeMethod · 0.65
mapMethod · 0.65

Tested by

no test coverage detected