37 lines
783 B
TypeScript
37 lines
783 B
TypeScript
import type { App } from 'vue'
|
||
import type { Router, RouteRecordRaw } from 'vue-router'
|
||
|
||
export interface PageType {
|
||
component: any
|
||
meta?: RouteRecordRaw['meta']
|
||
name?: string
|
||
}
|
||
|
||
export interface ModuleOptions {
|
||
/**
|
||
* 初始化模块配置
|
||
* @param app
|
||
*/
|
||
app?: (app: App) => Promise<void> | void
|
||
/**
|
||
* 静态的路由配置信息
|
||
*/
|
||
routes?: RouteRecordRaw[] | ((routes: RouteRecordRaw[]) => RouteRecordRaw[])
|
||
/**
|
||
* 动态路由页面配置
|
||
*/
|
||
pages?: Record<string, PageType>
|
||
/**
|
||
* 给用户router的实例,进行操作
|
||
*/
|
||
router?: (router: Router) => Promise<void> | void
|
||
/**
|
||
* 这里的setup就是rootComponent的setup
|
||
*/
|
||
setup?: () => void
|
||
}
|
||
|
||
export function defineModule(options: ModuleOptions) {
|
||
return options
|
||
}
|