cycles-quartz/apps/transfers/frontend/scripts/rebuild-component-index.js

44 lines
1 KiB
JavaScript
Raw Normal View History

2024-07-10 19:11:07 +00:00
const fs = require('fs')
const componentsDirectory = `${__dirname}/../src/components`
const indexFile = `${componentsDirectory}/index.ts`
// Get directories and files in the components directory
const filesAndDirectories = fs.readdirSync(componentsDirectory)
const [files, directories] = filesAndDirectories.reduce(
(acc, fileOrDirectory) => {
if (
fs.statSync(`${componentsDirectory}/${fileOrDirectory}`).isDirectory()
) {
acc[1].push(fileOrDirectory)
} else {
acc[0].push(fileOrDirectory)
}
return acc
},
[[], []],
)
// Write them
fs.writeFileSync(
indexFile,
filesAndDirectories
.reduce((acc, fileOrDirectory) => {
if (['.DS_Store', 'index.ts'].includes(fileOrDirectory)) {
return [...acc]
}
const componentName = fileOrDirectory.replace('.tsx', '')
return [...acc, `export { ${componentName} } from './${componentName}'`]
}, [])
.join('\n'),
{
flag: 'w',
},
)
console.log(`Rebuilt component index file at ${indexFile}`)