12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- const REPLACE_REG = /^([^/]*\/)*|\.js$/g
- const setByComponentName = (components, component) => {
- components[component.name] = component
- }
- const setByFileName = (components, component, fileName) => {
- components[fileName.replace(REPLACE_REG, '')] = component
- }
- const build = (requireComponent, callback) => requireComponent.keys().reduce((components, fileName) => {
- let componentConfig = requireComponent(fileName)
- let component = componentConfig.default || componentConfig
- callback(components, component, fileName)
- return components
- }, {})
- export default {
- getByComponentName: requireComponent => build(requireComponent, setByComponentName),
- getByFileName: requireComponent => build(requireComponent, setByFileName),
- getByCustom: (requireComponent, callback) => build(requireComponent, callback)
- }
|