import type { Component } from 'vue';
import { defineAsyncComponent } from 'vue';

import { ctx } from '../context';

const modules = ctx.use().yewuPages;
/**
 * 注册一个异步组件
 * @param componentPath 例如： /example1/create
 */
export default function registerComponent(componentPath: string) {
  // console.log('componentPath--> ', componentPath, modules);
  for (const item in modules) {
    // console.log('item', item);
    if (item.includes(componentPath)) {
      // 使用异步组件的方式来动态加载组件
      return defineAsyncComponent(modules[item] as () => Promise<{ default: Component }>);
    }
  }
}
