Files
lucide/scripts/build/generateExportsFile.js

32 lines
1.1 KiB
JavaScript
Raw Normal View History

2020-07-18 00:52:09 +02:00
import { generateComponentName, resetFile, writeFile} from './helpers';
export default function(fileName, outputDirectory, componentGetter, iconVNodesObject) {
// Reset file
resetFile(fileName, outputDirectory);
// Import the component getter
writeFile(`import ${componentGetter} from './src/getters/${componentGetter}';\n\n`, fileName, outputDirectory);
const icons = Object.keys(iconVNodesObject);
// Generate Import for Icon VNodes
icons.forEach(iconName => {
const componentName = generateComponentName(iconName);
const importString = `import ${componentName}VNode from './icons';\n`;
writeFile(importString, fileName, outputDirectory);
});
writeFile('\n', fileName, outputDirectory);
// Generate export for all the icons
//
// output: export const myIcon = getComponent(myIconVNode);
icons.forEach(iconName => {
const componentName = generateComponentName(iconName);
const constantString = `export const ${componentName} = ${componentGetter}(${componentName}VNode);\n`;
writeFile(constantString, fileName, outputDirectory);
});
console.log(`Successfully generated ${fileName} file`);
}