Contratos, tipos y traductores
Genera clientes TypeScript y verifica cambios de contrato con adaptaciones de versiones anteriores.
Requiere WU CLI 1.2.0 y, para las APIs de las aplicaciones, WU Framework 4.0.0. Comprueba wu --version y las dependencias del proyecto.
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
Los archivos JSON contienen el mismo descriptor aceptado por defineService. La CLI carga wu-framework/services desde el proyecto, no desde una copia global. Cada archivo debe ser JSON válido y no superar 1 MiB. types escribe declaraciones TypeScript en stdout o en un archivo .d.ts separado con --out.
Con varios contratos, los nombres son ServiceClientV1, ServiceClientV2, etc. Si comparten major, se incluye la versión completa, por ejemplo ServiceClient_1_2_0. check recibe exactamente el contrato anterior y el nuevo; no acepta --out. types no acepta --json ni --translators.
Compatibilidad con traductores
El módulo de --translators exporta un array como default o translators. Cada entrada tiene definition y methods: el mismo contrato que recibe provideService. La comprobación mueve cambios cubiertos a translated; los cambios no cubiertos permanecen en changes. Usa servicios versionados para implementar y probar los traductores.
| Salida | Significado |
|---|---|
0 |
Contrato compatible o tipos generados. |
1 |
Cambios incompatibles sin cobertura. |
2 |
Archivo, descriptor, dependencia u opción inválida. |
Un resultado compatible verifica la estructura de los contratos, no que tus funciones traductoras sean correctas para todos los valores. Ejecuta ejemplos de entrada y salida, errores de validación y permisos con el runtime antes de cambiar el proveedor.