{"version":3,"sources":["../src/module.ts"],"sourcesContent":["import { defineNuxtModule, createResolver, addServerHandler } from \"@nuxt/kit\";\n\n/**\n * 多泳道管理模块\n *\n * 这个模块提供了多泳道管理功能，包括：\n * 1. 服务注册与发现：将服务实例注册到 Nacos，并从 Nacos 获取目标泳道的服务实例\n * 2. 跨泳道请求转发：将请求转发到目标泳道的服务实例\n * 3. 健康检查：提供健康检查接口\n */\nexport default defineNuxtModule({\n  meta: {\n    name: \"multi-lane-manager\",\n    configKey: \"multiLaneManager\", // 统一使用与类型定义相同的配置键\n    compatibility: {\n      nuxt: \"^3.0.0\", // 兼容 Nuxt 3.0.0 及以上版本\n    },\n  },\n  /**\n   * 模块设置函数\n   * 负责注册 Nitro 插件和服务器中间件\n   *\n   * @param _options 模块配置选项\n   * @param nuxt Nuxt 实例\n   */\n  setup(_options, nuxt) {\n    // 创建简单的日志记录器\n    const logger = {\n      info: (msg: string) => console.log(`[multi-lane-manager:module][INFO] 🔵 ${msg}`),\n      warn: (msg: string) => console.warn(`[multi-lane-manager:module][WARN] 🟠 ${msg}`),\n      error: (msg: string) => console.error(`[multi-lane-manager:module][ERROR] 🔴 ${msg}`),\n    };\n\n    logger.info(\"正在设置 multi-lane-manager 模块...\");\n\n    // 创建路径解析器\n    const { resolve } = createResolver(import.meta.url);\n\n    // 添加 Nitro 插件\n    try {\n      logger.info(\"正在添加用于服务注册的 Nitro 插件...\");\n      nuxt.hook('nitro:config', (nitroConfig) => {\n        // 确保 plugins 数组存在\n        nitroConfig.plugins = nitroConfig.plugins || [];\n\n        // 添加我们的 Nitro 插件到数组的最前面，确保它最早执行\n        nitroConfig.plugins.unshift(resolve('./runtime/nitro-plugin'));\n\n        logger.info(\"Nitro 插件添加成功 (已设置为最早执行) ✅\");\n      });\n    } catch (error) {\n      logger.error(`添加 Nitro 插件失败: ${error}`);\n    }\n\n    // 添加服务器中间件\n    try {\n      logger.info(\"正在添加服务器中间件...\");\n\n      // 添加一个全局中间件，确保它在所有其他中间件之前执行\n      addServerHandler({\n        handler: resolve('./runtime/server-middleware.mjs'),\n        middleware: true,\n        route: '/**', // 匹配所有路径\n        order: -100, // 负数表示更高的优先级，确保最先执行\n      });\n\n      // 为了确保能拦截静态资源，再添加一个特定的处理程序用于 /_nuxt/ 路径\n      addServerHandler({\n        handler: resolve('./runtime/server-middleware.mjs'),\n        route: '/_nuxt/**', // 专门匹配 /_nuxt/ 路径下的所有请求\n        order: -100, // 负数表示更高的优先级，确保最先执行\n      });\n\n      // 为了确保能拦截 API 请求，添加一个特定的处理程序用于 /api/ 路径\n      addServerHandler({\n        handler: resolve('./runtime/server-middleware.mjs'),\n        route: '/api/**', // 专门匹配 /api/ 路径下的所有请求\n        middleware: true, // 确保它作为中间件执行\n        order: -100, // 负数表示更高的优先级，确保最先执行\n      });\n\n      logger.info(\"服务器中间件添加成功，设置为最高优先级 ✅\");\n    } catch (error) {\n      logger.error(`添加服务器中间件失败: ${error}`);\n    }\n\n    logger.info(\"Multi-lane-manager 模块设置完成 ✅\");\n  },\n});\n"],"mappings":";AAAA,SAAS,kBAAkB,gBAAgB,wBAAwB;AAUnE,IAAO,iBAAQ,iBAAiB;AAAA,EAC9B,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,WAAW;AAAA;AAAA,IACX,eAAe;AAAA,MACb,MAAM;AAAA;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,UAAU,MAAM;AAEpB,UAAM,SAAS;AAAA,MACb,MAAM,CAAC,QAAgB,QAAQ,IAAI,+CAAwC,GAAG,EAAE;AAAA,MAChF,MAAM,CAAC,QAAgB,QAAQ,KAAK,+CAAwC,GAAG,EAAE;AAAA,MACjF,OAAO,CAAC,QAAgB,QAAQ,MAAM,gDAAyC,GAAG,EAAE;AAAA,IACtF;AAEA,WAAO,KAAK,6DAA+B;AAG3C,UAAM,EAAE,QAAQ,IAAI,eAAe,YAAY,GAAG;AAGlD,QAAI;AACF,aAAO,KAAK,0FAAyB;AACrC,WAAK,KAAK,gBAAgB,CAAC,gBAAgB;AAEzC,oBAAY,UAAU,YAAY,WAAW,CAAC;AAG9C,oBAAY,QAAQ,QAAQ,QAAQ,wBAAwB,CAAC;AAE7D,eAAO,KAAK,sGAA2B;AAAA,MACzC,CAAC;AAAA,IACH,SAAS,OAAO;AACd,aAAO,MAAM,gDAAkB,KAAK,EAAE;AAAA,IACxC;AAGA,QAAI;AACF,aAAO,KAAK,iEAAe;AAG3B,uBAAiB;AAAA,QACf,SAAS,QAAQ,iCAAiC;AAAA,QAClD,YAAY;AAAA,QACZ,OAAO;AAAA;AAAA,QACP,OAAO;AAAA;AAAA,MACT,CAAC;AAGD,uBAAiB;AAAA,QACf,SAAS,QAAQ,iCAAiC;AAAA,QAClD,OAAO;AAAA;AAAA,QACP,OAAO;AAAA;AAAA,MACT,CAAC;AAGD,uBAAiB;AAAA,QACf,SAAS,QAAQ,iCAAiC;AAAA,QAClD,OAAO;AAAA;AAAA,QACP,YAAY;AAAA;AAAA,QACZ,OAAO;AAAA;AAAA,MACT,CAAC;AAED,aAAO,KAAK,2HAAuB;AAAA,IACrC,SAAS,OAAO;AACd,aAAO,MAAM,iEAAe,KAAK,EAAE;AAAA,IACrC;AAEA,WAAO,KAAK,gEAA6B;AAAA,EAC3C;AACF,CAAC;","names":[]}