O que adicionar-opcao-cli faz?
Adicione uma nova opção de CLI ou configuração do Remotion criando um AnyRemotionOption, registrando o parsing de CLI, conectando os setters de configuração e atualizando a documentação. Use ao adicionar ou converter flags de linha de comando ou opções do Remotion.
Visão geral
Este skill automatiza o processo de adicionar uma opção de CLI ou de configuração no ecossistema Remotion. Ele garante que todas as peças necessárias sejam criadas ou modificadas de forma consistente, seguindo as convenções do projeto.
Fluxo de Trabalho
- Criar um
AnyRemotionOption– Defina o tipo da opção, valor padrão, nome da CLI, descrição, etc. - Registrar o parsing de CLI – Adicione a opção ao arquivo de definição de comandos (ex:
src/cli/commands.ts) para que seja reconhecida pelo yargs/commander. - Conectar setters de configuração – No módulo de configuração (ex:
src/config.ts), adicione um setter público que armazena o valor e dispara efeitos colaterais se necessário. - Atualizar documentação – Inclua a nova opção na página de documentação docusaurus relevante (ex:
packages/docs/docs/cli/options.md). - Adicionar testes – Teste unitários e de integração para validar o comportamento.
Estrutura de Arquivos
packages/renderer/src/options/– Definições de opções.packages/cli/src/commands.ts– Registro de comandos CLI.packages/config/src/config.ts– Setters e estado da configuração.packages/docs/docs/– Documentação.
Exemplo de Criação de Opção
// packages/renderer/src/options/myNewOption.ts
import { AnyRemotionOption } from './AnyRemotionOption';
export const myNewOption: AnyRemotionOption<number> = {
name: 'my-new-option',
cliFlag: 'my-new-option',
description: 'Minha nova opção',
defaultValue: 42,
type: 'number',
};
Registro no CLI
No arquivo packages/cli/src/commands.ts, adicione:
// Dentro do handler do comando 'render' ou similar
.option('my-new-option', {
type: 'number',
describe: 'Minha nova opção',
default: 42,
})
Setter de Configuração
Em packages/config/src/config.ts:
export const setMyNewOption = (value: number) => {
options.myNewOption = value;
// Efeitos colaterais opcionais
};
Documentação
Adicione no arquivo packages/docs/docs/cli/options.md:
### `--my-new-option`
Define o valor da minha nova opção. Valor padrão: `42`.
Testes
Crie testes no diretório packages/cli/src/__tests__/ e packages/config/src/__tests__/.
Notas
- Mantenha a nomenclatura consistente com as convenções do Remotion (camelCase para código, kebab-case para CLI).
- Verifique se a opção não conflita com opções existentes.
- Atualize o arquivo de changelog se aplicável.