-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgenIndex.js
27 lines (26 loc) · 949 Bytes
/
genIndex.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
const fs = require('fs');
const fileNames = getFileNamesRecursively('./src/components')
let content = '';
fileNames.forEach((fileName) => {
if (fileName.indexOf('stories.tsx') !== -1 || fileName.indexOf('test.tsx') !== -1) return;
const component = fileName.substring(fileName.lastIndexOf('/') + 1, fileName.indexOf('.tsx'));
content += `export {${component}} from "${fileName.replace('/src', '').replace('.tsx', '')}";\n`
});
fs.writeFile('./src/index.ts', content, (err) => {
if (err) {
return console.log(err);
}
console.log('src/index.ts was generated!');
});
function getFileNamesRecursively(root) {
let results = [];
const fileNames = fs.readdirSync(root);
fileNames.forEach((fileName) => {
if (fs.statSync(root + '/' + fileName).isDirectory()) {
results = [...results, ...getFileNamesRecursively(root + '/' + fileName)];
} else {
results.push(root + '/' + fileName);
}
});
return results;
}