UNPKG

svg-to-ts

Version:

Build amazing svg icon libraries

40 lines 2.6 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateExportSection = exports.generateCompleteIconSetContent = void 0; const lodash_camelcase_1 = __importDefault(require("lodash.camelcase")); const code_snippet_generators_1 = require("../generators/code-snippet-generators"); const file_type_model_1 = require("../shared/file-type.model"); const generateCompleteIconSetContent = (svgDefinitions, completeIconSetName, interfaceName, modelFileName, generateType) => { const importSection = generateImportSection(svgDefinitions, generateType ? interfaceName : undefined, generateType ? modelFileName : undefined); const exportSection = (0, exports.generateExportSection)(svgDefinitions, completeIconSetName, file_type_model_1.FILE_TYPE.TS, generateType ? interfaceName : undefined); return `${importSection}${exportSection}`; }; exports.generateCompleteIconSetContent = generateCompleteIconSetContent; const generateImportSection = (svgDefinitions, interfaceName, modelFileName) => { const imports = interfaceName && modelFileName ? (0, code_snippet_generators_1.generateNamedImportStatement)(interfaceName, `./${modelFileName}`) : ''; return svgDefinitions.reduce((acc, svgDefinition) => { acc += (0, code_snippet_generators_1.generateNamedImportStatement)(svgDefinition.variableName, `./${svgDefinition.prefix}-${svgDefinition.filenameWithoutEnding}.icon`); return acc; }, imports); }; const generateExportSection = (svgDefinitions, completeIconSetName, fileType = file_type_model_1.FILE_TYPE.TS, interfaceName) => { const interfaceSuffix = interfaceName ? `:${interfaceName}[]` : ''; return svgDefinitions.reduce((acc, svgDefinition, index) => { const variableName = fileType === file_type_model_1.FILE_TYPE.TSX ? svgDefinition.variableName.charAt(0).toUpperCase() + svgDefinition.variableName.slice(1) : svgDefinition.variableName; const interfaceSuffix = interfaceName ? ` as ${interfaceName}` : ''; if (index === svgDefinitions.length - 1) { acc += `${variableName}${interfaceSuffix}];`; } else { acc += `${variableName}${interfaceSuffix},`; } return acc; }, `export const ${(0, lodash_camelcase_1.default)(completeIconSetName)}${interfaceSuffix} = [`); }; exports.generateExportSection = generateExportSection; //# sourceMappingURL=complete-icon-set.helper.js.map