xsd-generated-sunat
v1.0.6
Published
CLI para generar interfaces TypeScript desde archivos XSD de UBL/SUNAT
Downloads
702
Maintainers
Readme
xsd-generated-sunat
Generador Enterprise-Grade de interfaces TypeScript desde archivos XSD (UBL/SUNAT).
Esta herramienta CLI transforma archivos de esquema XML (XSD) en archivos TypeScript (.ts) con tipado estricto, resolviendo automáticamente colisiones de nombres, referencias circulares y dependencias entre namespaces. Ideal para proyectos de Facturación Electrónica que requieren máxima seguridad de tipos.
Características Principales
- Mapeo de
xsd:choice: Convierte bloques de decisión en Union Types de TypeScript para garantizar campos mutuamente excluyentes. - Soporte de Enumeraciones: Los códigos de la SUNAT se generan como uniones de strings (autocompletado).
- Soporte Nativo de Namespaces: Entiende los prefijos de UBL/SUNAT (
cac,cbc,ext, etc.) y gestiona los imports automáticamente. - CLI Rápido: Procesa cientos de XSDs en segundos manteniendo la jerarquía de carpetas.
- XJC para TypeScript: Diseñado para ofrecer la misma robustez que el compilador XJC de Java pero con la flexibilidad de TS.
Instalación
Puedes instalarlo globalmente o usarlo directamente con npx:
npm install -g xsd-generated-sunatUso del CLI
El comando principal es xsd-ts. Necesitas especificar la carpeta de origen de los XSD y la carpeta de destino:
# Sintaxis
xsd-ts <directorio_origen_xsd> <directorio_destino_ts>
# Ejemplo práctico para SUNAT UBL 2.1
xsd-ts ./esquemas/2.1 ./src/types/sunatEjemplo de Código Generado
Los archivos generados incluyen las importaciones necesarias y resuelven conflictos de nombres:
import { AmountType as CCT_AmountType } from './CCTS_CCT_SchemaModule-2.1';
export type AmountType = {
value: string;
currencyID: string;
};