2020-07-18 13:13:57 +02:00
|
|
|
import { generateComponentName, resetFile, writeFile } from './helpers';
|
2020-07-18 00:52:09 +02:00
|
|
|
|
2020-07-18 12:22:43 +02:00
|
|
|
export default function(fileName, outputDirectory, componentGetter, iconNodes) {
|
2020-07-18 00:52:09 +02:00
|
|
|
// Reset file
|
|
|
|
|
resetFile(fileName, outputDirectory);
|
|
|
|
|
|
|
|
|
|
// Import the component getter
|
2020-07-18 13:13:57 +02:00
|
|
|
writeFile(
|
2020-08-14 23:20:19 +02:00
|
|
|
`import ${componentGetter} from '../src/${componentGetter}';\n\n`,
|
2020-07-18 13:13:57 +02:00
|
|
|
fileName,
|
|
|
|
|
outputDirectory,
|
|
|
|
|
);
|
2020-07-18 00:52:09 +02:00
|
|
|
|
2020-07-18 12:22:43 +02:00
|
|
|
const icons = Object.keys(iconNodes);
|
2020-07-18 00:52:09 +02:00
|
|
|
|
|
|
|
|
// Generate Import for Icon VNodes
|
|
|
|
|
icons.forEach(iconName => {
|
|
|
|
|
const componentName = generateComponentName(iconName);
|
2020-08-14 23:20:19 +02:00
|
|
|
const importString = `import ${componentName}Node from './icons/${iconName}';\n`;
|
2020-07-18 00:52:09 +02:00
|
|
|
writeFile(importString, fileName, outputDirectory);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
writeFile('\n', fileName, outputDirectory);
|
|
|
|
|
|
|
|
|
|
// Generate export for all the icons
|
|
|
|
|
//
|
2020-07-18 12:53:05 +02:00
|
|
|
// (output): export const myIcon = getComponent(myIconVNode);
|
2020-07-18 00:52:09 +02:00
|
|
|
icons.forEach(iconName => {
|
|
|
|
|
const componentName = generateComponentName(iconName);
|
2020-08-14 23:20:19 +02:00
|
|
|
const constantString = `export const ${componentName} = ${componentGetter}('${componentName}', ${componentName}Node);\n`;
|
2020-07-18 00:52:09 +02:00
|
|
|
writeFile(constantString, fileName, outputDirectory);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
console.log(`Successfully generated ${fileName} file`);
|
|
|
|
|
}
|