UNPKG

@mandlazy/cute

Version:
34 lines (28 loc) 1.15 kB
const fs = require('fs') const path = require('path') const camelCase = require('camelcase') const getComponentModuleNames = componentDir => fs.readdirSync(path.resolve(componentDir)) const makeEntryFile = (componentModuleNames) => { const content = componentModuleNames.map(componentName => `export { default as ${camelCase(componentName, { pascalCase: true })} } from './component/${componentName}'`) const index = './src/index.js' fs.writeFileSync(index, `${content.join('\n')}\n`) return { index } } const getRestEntry = (componentModuleNames, componentDir) => { makeEntryFile(componentModuleNames) return componentModuleNames.reduce((prev, name) => { prev[name] = `${componentDir}/${name}/index.js` return prev }, {}) } export const getInput = () => { const componentDir = './src/component' const componentModuleNames = getComponentModuleNames(componentDir) const index = makeEntryFile(componentModuleNames) const restEntry = getRestEntry(componentModuleNames, componentDir) return { ...index, ...restEntry, } } export const getOutput = name => (name === 'index' ? 'index.js' : `${name}/index.js`)