UNPKG

@designliquido/foles

Version:

Linguagem de folhas de estilo para documentos em geral em português

68 lines 3.32 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Exportador = void 0; const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); const base64_1 = require("../utilidades/base64"); /** * Classe que exporta traduções em diferentes formatos de arquivos. Como possui dependência * direta com Node.js, deve ser transferida futuramente para um projeto próprio. */ class Exportador { /** * A exportação em si. Exporta para o mesmo diretório onde está o arquivo de origem. * @param formato O formato do arquivo traduzido. * @param arquivoOrigem O nome do arquivo de origem. * @param conteudo O conteúdo da tradução. * @param mapa Um mapa de fontes, se disponível (como string JSON). * @param inline Se verdadeiro, incorpora o mapa como base64 inline; caso contrário, cria arquivo separado. */ exportar(formato, arquivoOrigem, conteudo, mapa, inline = false) { let nomeArquivoSaida; let nomeArquivoMapa; let conteudoCompleto = conteudo; switch (formato) { case "css": nomeArquivoSaida = arquivoOrigem.replace(/\.foles$/, ".css"); if (mapa) { if (inline) { // Modo inline: incorpora o mapa como base64 const mapaBase64 = new base64_1.Base64().encode(mapa); conteudoCompleto += `\n/*# sourceMappingURL=data:application/json;base64,${mapaBase64} */\n`; } else { // Modo separado: cria arquivo .map nomeArquivoMapa = nomeArquivoSaida + ".map"; fs_1.default.writeFileSync(nomeArquivoMapa, mapa); conteudoCompleto += `\n/*# sourceMappingURL=${path_1.default.basename(nomeArquivoMapa)} */\n`; } } fs_1.default.writeFileSync(nomeArquivoSaida, conteudoCompleto); break; case "foles": nomeArquivoSaida = arquivoOrigem.replace(/\.css$/, ".foles"); if (mapa) { if (inline) { // Modo inline: incorpora o mapa como base64 const mapaBase64 = new base64_1.Base64().encode(mapa); conteudoCompleto += `\n/*# sourceMappingURL=data:application/json;base64,${mapaBase64} */\n`; } else { // Modo separado: cria arquivo .map nomeArquivoMapa = nomeArquivoSaida + ".map"; fs_1.default.writeFileSync(nomeArquivoMapa, mapa); conteudoCompleto += `\n/*# sourceMappingURL=${path_1.default.basename(nomeArquivoMapa)} */\n`; } } fs_1.default.writeFileSync(nomeArquivoSaida, conteudoCompleto); break; default: throw new Error("Formato de arquivo não reconhecido."); } } } exports.Exportador = Exportador; //# sourceMappingURL=index.js.map