UNPKG

svg-to-ts

Version:

Build amazing svg icon libraries

79 lines 5.38 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.convertToConstants = void 0; const code_snippet_generators_1 = require("../generators/code-snippet-generators"); const complete_icon_set_helper_1 = require("../helpers/complete-icon-set.helper"); const file_helpers_1 = require("../helpers/file-helpers"); const logger_1 = require("../helpers/logger"); const monitor_1 = require("../helpers/monitor"); const file_type_model_1 = require("../shared/file-type.model"); const shared_converter_1 = require("./shared.converter"); function convertToConstants(conversionOptions) { return __awaiter(this, void 0, void 0, function* () { const { tsx } = conversionOptions; const svgDefinitions = yield (0, monitor_1.callAndMonitorAsync)(shared_converter_1.filesProcessor.bind({}, conversionOptions), 'Processing SVG files'); if (!svgDefinitions.length) { logger_1.Logger.error('No SVG files found under ${outputDirectory}'); return; } if (tsx) { yield convertToTSXConstants(conversionOptions, svgDefinitions); } else { yield convertToTSConstants(conversionOptions, svgDefinitions); } }); } exports.convertToConstants = convertToConstants; function convertToTSConstants(conversionOptions, svgDefinitions) { return __awaiter(this, void 0, void 0, function* () { const { outputDirectory, fileName, interfaceName, exportCompleteIconSet, completeIconSetName, generateType, generateEnum, } = conversionOptions; let exportAllStatement = ''; const svgContants = (0, monitor_1.callAndMonitor)(getTSConstants.bind({}, svgDefinitions), 'Generate SVG constants'); const typeDefinition = generateType ? (0, monitor_1.callAndMonitor)(code_snippet_generators_1.generateTypeDefinition.bind({}, conversionOptions, svgDefinitions), 'Generate type definitions') : ''; const interfaceDefinition = (0, monitor_1.callAndMonitor)(code_snippet_generators_1.generateInterfaceDefinition.bind({}, conversionOptions), 'Generate Interface Definition'); const enumDefinition = generateEnum ? (0, monitor_1.callAndMonitor)(code_snippet_generators_1.generateEnumDefinition.bind({}, conversionOptions, svgDefinitions), 'Generate enum') : ''; if (exportCompleteIconSet) { exportAllStatement = (0, monitor_1.callAndMonitor)(complete_icon_set_helper_1.generateExportSection.bind({}, svgDefinitions, completeIconSetName), 'Exporting all constants'); } const typeHelper = (0, monitor_1.callAndMonitor)(code_snippet_generators_1.generateTypeHelper.bind({}, interfaceName), 'Generate Type Helper'); const fileContent = `${svgContants}${typeDefinition}${enumDefinition}${interfaceDefinition}${typeHelper}${exportAllStatement}`; yield (0, monitor_1.callAndMonitorAsync)(file_helpers_1.writeFile.bind({}, outputDirectory, fileName, fileContent), `Writing files to ${outputDirectory}`); logger_1.Logger.generationSuccess(outputDirectory); }); } function convertToTSXConstants(conversionOptions, svgDefinitions) { return __awaiter(this, void 0, void 0, function* () { const { exportCompleteIconSet, completeIconSetName, outputDirectory, fileName } = conversionOptions; const tsxContants = (0, monitor_1.callAndMonitor)(getTSXConstants.bind({}, svgDefinitions), 'Generate TSX constants'); let exportAllStatement = ''; if (exportCompleteIconSet) { exportAllStatement = (0, monitor_1.callAndMonitor)(complete_icon_set_helper_1.generateExportSection.bind({}, svgDefinitions, completeIconSetName, file_type_model_1.FILE_TYPE.TSX), 'Exporting all TSX constants as ${completeIconSetName}'); } const fileContent = `${tsxContants}${exportAllStatement}`; yield (0, monitor_1.callAndMonitorAsync)(file_helpers_1.writeFile.bind({}, outputDirectory, fileName, fileContent, file_type_model_1.FILE_TYPE.TSX), `Writing files to ${outputDirectory}`); logger_1.Logger.generationSuccess(outputDirectory); }); } function getTSConstants(svgDefinitions) { const svgConstants = svgDefinitions.map((svgDefinition) => (0, code_snippet_generators_1.generateSvgConstant)(svgDefinition.variableName, svgDefinition.typeName, svgDefinition.data)); return svgConstants.join(''); } function getTSXConstants(svgDefinitions) { const tsxConstants = svgDefinitions.map((svgDefinition) => (0, code_snippet_generators_1.generateTSXConstant)(svgDefinition.variableName, svgDefinition.data)); return tsxConstants.join(''); } //# sourceMappingURL=constants.converter.js.map