import { App } from "vue" import { Module } from "./types" import { Plugin } from "../types" export class ModuleManager extends Plugin { private modules: Module[] = [] private register(meta: ImportMeta) { this.modules = Object.values( meta.glob( ["../../modules/*.ts", "../../modules/**/index.ts"], { eager: true } ) ) console.log(this.modules) } private installModules(app: App) { this.modules.forEach((module) => { module?.install(app) }) } public install(app: App, meta: ImportMeta) { this.register(meta) this.installModules(app) } } /** * Automated Vue plugin installation * * ***Usage:*** * ```ts * import ModuleManager from "vvic-utils/modules" * app.use(ModuleManager, "../../modules/*.ts") * ``` */ export default new ModuleManager() export * from "./types"