Files
lucide/scripts/build/generateExportsFile.js

36 lines
1.2 KiB
JavaScript
Raw Normal View History

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`);
}