svg-to-ts
Version:
Build amazing svg icon libraries
40 lines • 2.6 kB
JavaScript
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
;