/** * MonSQLize 内置插件核心实现 * * 负责整个 MonSQLize 生命周期编排: * 1. 读取并校验 database 配置 * 2. 构建 MonSQLize 构造函数配置(buildMonSQLizeConfig) * 3. 动态 import monsqlize 包,创建实例 * 4. 注册 onClose 钩子并建立失败路径清理 * 5. 连接数据库(Fail Fast) * 6. 加载 Model 定义(本地 + shared 包) * 7. 挂载 app.db(MonSQLizeConnection)+ app.monsqlize(原始实例) * * 设计原则: * - onClose 与 setup 失败路径都清理资源(确保启动异常时不遗留临时实例) * - Fail Fast:配置缺失或连接失败直接抛出,终止启动 * - 动态 import monsqlize(避免未安装时框架启动失败) * - 日志桥接:将 MonSQLize 日志桥接到 app.logger * * @module lib/plugins/monsqlize/plugin * @see 13-monsqlize-plugin.md §2.3(插件核心实现) */ import type { VextPluginContext } from "../../../types/plugin.js"; import type { StartupProfiler } from "../../startup-profiler.js"; export interface SetupMonSQLizeOptions { startupProfiler?: StartupProfiler; } /** * setupMonSQLize — 插件 setup 入口 * * 由内置插件的 setup() 调用,完成 MonSQLize 的完整初始化流程。 * * @param app 插件上下文(config.database 已可用) * @param srcDir src/ 目录的绝对路径(用于定位 models/ 目录) * @throws 配置缺失或连接失败时抛出错误(Fail Fast) */ export declare function setupMonSQLize(app: VextPluginContext, srcDir: string, options?: SetupMonSQLizeOptions): Promise;