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
O conteúdo continua público. O registro técnico fica disponível após autenticação.