Verificando sessão...
StudyOpsÍndice da tarefa

CLI para ferramentas / Implementar CLI de leitura local / Sessão 3

Briefing de missão · Sessão 3 de 6

Implementacao minima

Missão
Implementar CLI de leitura local
Registro
Logbook local

Contexto de missão

Implementacao minima

Esta leitura alimenta o fundamento CLI para ferramentas. Termine com uma evidência pequena antes de avançar.

Contexto
Sessão 3 de 6
type Options = { inputPath: string; format: "text" | "json" };

export function parseArgs(argv: string[]): Options {
  const [inputPath, flag, value] = argv;

  if (!inputPath) throw new Error("arquivo obrigatorio");
  if (flag && flag !== "--format") throw new Error(`opcao invalida: ${flag}`);

  const format = value ?? "text";
  if (format !== "text" && format !== "json") {
    throw new Error(`formato invalido: ${format}`);
  }

  return { inputPath, format };
}

export function run(input: string, options: Options): string {
  const lineCount = input.split(/\r?\n/).filter(Boolean).length;
  return options.format === "json"
    ? JSON.stringify({ source: options.inputPath, lineCount })
    : `${options.inputPath}: ${lineCount} linhas`;
}

O adaptador de terminal fica responsavel por ler o arquivo e chamar essas funcoes. A regra importante e que run nao precisa saber de process.argv.

Logbook técnico

Registro de campo desta sessão

Verificando sessão...

O conteúdo continua público. O registro técnico fica disponível após autenticação.