Após revisar o repositório, tive uma ideia de compressão dos certificados e schemas que seria viável. Uma abordagem prática para reduzir o tamanho do bundle seria:

  1. Comprimir as pastas certificates e schemas utilizando gzip.
  2. Usar a biblioteca zlib em Node.js para descompactá-los sob demanda, carregando cada schema ou certificado apenas quando necessário.

Essa abordagem deve reduzir o tamanho do pacote final, mantendo o desempenho.

Aqui está um exemplo prático para implementar a sugestão de compressão e lazy loading dos certificados e schemas:

  1. Comprimir arquivos com gzip:

    • No terminal, comprima os arquivos na pasta certificates e schemas:
      gzip -k ./certificates/*.pem ./schemas/*.xsd
      
  2. Descompactar sob demanda com zlib:

    • No código, use o módulo zlib para carregar e descomprimir quando necessário:
    import zlib from 'zlib';
    import fs from 'fs';
    import path from 'path';
    
    // Função para descomprimir e carregar arquivos
    const loadCompressedFile = (filePath) => {
        const compressedData = fs.readFileSync(`${filePath}.gz`);
        return zlib.gunzipSync(compressedData).toString('utf8');
    };
    
    // Exemplo de uso
    const schemaContent = loadCompressedFile(path.resolve(__dirname, './schemas/schema-name.xsd'));
    
  3. Atualizar o Rollup para incluir apenas os arquivos comprimidos:

    • Certifique-se de que o Rollup inclui os arquivos .gz para evitar duplicação e reduzir o tamanho final do bundle.

Esse processo diminui o bundle inicial e carrega apenas o que for necessário para a comunicação com a SEFAZ, mantendo o desempenho.

O que acha? se falei besteira pode desconsiderar