Factoring

This commit is contained in:
Eric Fennis
2020-07-18 12:39:08 +02:00
parent e08eff7dee
commit ea8bec9320
5 changed files with 20 additions and 314 deletions
+3 -3
View File
@@ -16,11 +16,11 @@ export default function(iconNode, outputDirectory) {
const location = path.join(iconsDistDirectory, `${icon}.js`);
const ComponentName = generateComponentName(icon);
const VNode = JSON.stringify(iconNode[icon]);
const Node = JSON.stringify(iconNode[icon]);
const element = `
export default [${VNode}]
`
export default [${Node}]
`;
fs.writeFileSync(
location,
+13
View File
@@ -9,8 +9,21 @@ import path from 'path';
*/
export const generateComponentName = (iconName) => iconName === "github" ? "GitHub" : upperCamelCase(iconName);
/**
* Resets the file contents.
*
* @param {string} fileName
* @param {string} outputDirectory
*/
export const resetFile = (fileName, outputDirectory) => fs.writeFileSync(path.join(outputDirectory, fileName), "", "utf-8");
/**
* writes content to a file
*
* @param {string} content
* @param {string} fileName
* @param {string} outputDirectory
*/
export const writeFile = (content, fileName, outputDirectory) => fs.appendFileSync(
path.join(outputDirectory, fileName),
content,
+2
View File
@@ -19,8 +19,10 @@ const getSvg = svgFile => fs.readFileSync(path.join(IN_DIR, svgFile));
const icons = renderIconsObject(svgFiles, getSvg);
const iconVNodes = renderIconNodes(icons);
// Generates iconsNodes files for each icon
generateIconFiles(iconVNodes, OUTPUT_DIR);
// Generates entry files for the compiler filled with icons exports
generateExportsFile('index.js', OUTPUT_DIR, 'getElement', iconVNodes);
generateExportsFile('react.js', OUTPUT_DIR, 'getReactComponent', iconVNodes);
generateExportsFile('vue.js', OUTPUT_DIR, 'getVueComponent', iconVNodes);