Contratos, tipos e tradutores
Gere clientes TypeScript e verifique mudanças de contrato com adaptações para versões anteriores.
Requer WU CLI 1.2.0 e WU Framework 4.0.0 para as APIs das aplicações. Confira wu --version e as dependências do projeto.
wu contracts types counter-v1.json --out client.d.ts
wu contracts types counter-v1.json counter-v2.json --out clients.d.ts
wu contracts check counter-v1.json counter-v2.json --json
wu contracts check counter-v1.json counter-v2.json --translators translators.mjs --json
Os arquivos JSON contêm o descritor aceito por defineService. A CLI carrega wu-framework/services do projeto, não de uma cópia global. Cada arquivo precisa ser JSON válido e ter no máximo 1 MiB. types escreve declarações TypeScript em stdout ou em um .d.ts separado com --out.
Com vários contratos, os nomes são ServiceClientV1, ServiceClientV2 etc. Se compartilham a major, inclui a versão completa, como ServiceClient_1_2_0. check recebe exatamente o contrato anterior e o novo; não aceita --out. types não aceita --json nem --translators.
Compatibilidade com tradutores
O módulo de --translators exporta um array como default ou translators. Cada entrada tem definition e methods, como em provideService. A verificação move mudanças cobertas para translated; as demais ficam em changes. Use serviços versionados para implementar e testar tradutores.
| Saída | Significado |
|---|---|
0 |
Contrato compatível ou tipos gerados. |
1 |
Mudanças incompatíveis sem cobertura. |
2 |
Arquivo, descritor, dependência ou opção inválida. |
Um resultado compatível verifica a estrutura do contrato, não a correção dos tradutores para todos os valores. Teste exemplos de entrada e saída, falhas de validação e permissões no runtime antes de trocar o provedor.