55 */
66import formBody from '@fastify/formbody' ;
77import websocket from '@fastify/websocket' ;
8- // WebSocket实时日志控制器-最早引入才能全局拦截console日志
9- import websocketController from './websocket.js' ;
10- // 静态文件服务控制器
11- import staticController from './static.js' ;
12- // 文档服务控制器
13- import docsController from './docs.js' ;
14- // 配置管理控制器
15- import configController from './config.js' ;
16- // API接口控制器
17- import apiController from './api.js' ;
18- // 媒体代理控制器
19- import mediaProxyController from './mediaProxy.js' ;
20- // 根路径控制器
21- import rootController from './root.js' ;
22- // 编码器控制器
23- import encoderController from './encoder.js' ;
24- // 解码器控制器
25- import decoderController from './decoder.js' ;
26- // 认证编码控制器
27- import authCoderController from './authcoder.js' ;
28- // Web界面控制器
29- import webController from './web.js' ;
30- // HTTP请求控制器
31- import httpController from './http.js' ;
32- // 剪贴板推送控制器
33- import clipboardPusherController from './clipboard-pusher.js' ;
34- // 任务控制器(已注释)
35- // import taskController from './tasker.js';
36- // 定时任务控制器
37- import cronTaskerController from './cron-tasker.js' ;
38- // 源检查控制器
39- import sourceCheckerController from './source-checker.js' ;
40- // 图片存储控制器
41- import imageStoreController from './image-store.js' ;
42- // WebDAV 代理控制器
43- import webdavProxyController from './webdav-proxy.js' ;
44- // FTP 代理控制器
45- import ftpProxyController from './ftp-proxy.js' ;
46- // 文件代理控制器
47- import fileProxyController from './file-proxy.js' ;
48- import m3u8ProxyController from './m3u8-proxy.js' ;
49- import unifiedProxyController from './unified-proxy.js' ;
50- // WebSocket实时弹幕日志控制器
51- import websocketServerController from "./websocketServer.js" ;
52- import githubController from './github.js' ;
8+
9+ // 懒加载辅助函数
10+ const lazyRegister = ( fastify , importFn , options ) => {
11+ fastify . register ( async ( instance , opts ) => {
12+ const module = await importFn ( ) ;
13+ const plugin = module . default || module ;
14+ // 使用传入的 options (全局配置)
15+ await instance . register ( plugin , options ) ;
16+ } ) ;
17+ } ;
5318
5419/**
5520 * 注册所有路由控制器
@@ -62,51 +27,52 @@ export const registerRoutes = (fastify, options) => {
6227 fastify . register ( formBody ) ;
6328 // 注册WebSocket插件
6429 fastify . register ( websocket ) ;
65- // 注册WebSocket路由
66- fastify . register ( websocketController , options ) ;
67- // 注册静态文件服务路由
68- fastify . register ( staticController , options ) ;
69- // 注册文档服务路由
70- fastify . register ( docsController , options ) ;
71- // 注册配置管理路由
72- fastify . register ( configController , options ) ;
73- // 注册API接口路由
74- fastify . register ( apiController , options ) ;
75- // 注册媒体代理路由
76- fastify . register ( mediaProxyController , options ) ;
77- // 注册根路径路由
78- fastify . register ( rootController , options ) ;
79- // 注册编码器路由
80- fastify . register ( encoderController , options ) ;
81- // 注册解码器路由
82- fastify . register ( decoderController , options ) ;
83- // 注册认证编码路由
84- fastify . register ( authCoderController , options ) ;
85- // 注册Web界面路由
86- fastify . register ( webController , options ) ;
87- // 注册HTTP请求路由
88- fastify . register ( httpController , options ) ;
89- // 注册剪贴板推送路由
90- fastify . register ( clipboardPusherController , options ) ;
91- // 注册任务路由(已注释)
92- // fastify.register(taskController, options);
93- // 注册定时任务路由
94- fastify . register ( cronTaskerController , options ) ;
95- // 注册源检查路由
96- fastify . register ( sourceCheckerController , options ) ;
97- // 注册图片存储路由
98- fastify . register ( imageStoreController , options ) ;
99- // 注册 WebDAV 代理路由
100- fastify . register ( webdavProxyController , options ) ;
101- // 注册 FTP 代理路由
102- fastify . register ( ftpProxyController , options ) ;
103- // 注册文件代理路由
104- fastify . register ( fileProxyController , options ) ;
105- fastify . register ( m3u8ProxyController , options ) ;
30+
31+ // WebSocket实时日志控制器-最早引入才能全局拦截console日志
32+ lazyRegister ( fastify , ( ) => import ( './websocket.js' ) , options ) ;
33+ // 静态文件服务控制器
34+ lazyRegister ( fastify , ( ) => import ( './static.js' ) , options ) ;
35+ // 文档服务控制器
36+ lazyRegister ( fastify , ( ) => import ( './docs.js' ) , options ) ;
37+ // 配置管理控制器
38+ lazyRegister ( fastify , ( ) => import ( './config.js' ) , options ) ;
39+ // API接口控制器
40+ lazyRegister ( fastify , ( ) => import ( './api.js' ) , options ) ;
41+ // 媒体代理控制器
42+ lazyRegister ( fastify , ( ) => import ( './mediaProxy.js' ) , options ) ;
43+ // 根路径控制器
44+ lazyRegister ( fastify , ( ) => import ( './root.js' ) , options ) ;
45+ // 编码器控制器
46+ lazyRegister ( fastify , ( ) => import ( './encoder.js' ) , options ) ;
47+ // 解码器控制器
48+ lazyRegister ( fastify , ( ) => import ( './decoder.js' ) , options ) ;
49+ // 认证编码控制器
50+ lazyRegister ( fastify , ( ) => import ( './authcoder.js' ) , options ) ;
51+ // Web界面控制器
52+ lazyRegister ( fastify , ( ) => import ( './web.js' ) , options ) ;
53+ // HTTP请求控制器
54+ lazyRegister ( fastify , ( ) => import ( './http.js' ) , options ) ;
55+ // 剪贴板推送控制器
56+ lazyRegister ( fastify , ( ) => import ( './clipboard-pusher.js' ) , options ) ;
57+ // 任务控制器(已注释)
58+ // lazyRegister(fastify, () => import('./tasker.js'), options);
59+ // 定时任务控制器
60+ lazyRegister ( fastify , ( ) => import ( './cron-tasker.js' ) , options ) ;
61+ // 源检查控制器
62+ lazyRegister ( fastify , ( ) => import ( './source-checker.js' ) , options ) ;
63+ // 图片存储控制器
64+ lazyRegister ( fastify , ( ) => import ( './image-store.js' ) , options ) ;
65+ // WebDAV 代理控制器
66+ lazyRegister ( fastify , ( ) => import ( './webdav-proxy.js' ) , options ) ;
67+ // FTP 代理控制器
68+ lazyRegister ( fastify , ( ) => import ( './ftp-proxy.js' ) , options ) ;
69+ // 文件代理控制器
70+ lazyRegister ( fastify , ( ) => import ( './file-proxy.js' ) , options ) ;
71+ lazyRegister ( fastify , ( ) => import ( './m3u8-proxy.js' ) , options ) ;
10672 // 注册统一代理路由
107- fastify . register ( unifiedProxyController , options ) ;
73+ lazyRegister ( fastify , ( ) => import ( './unified-proxy.js' ) , options ) ;
10874 // 注册GitHub Release路由
109- fastify . register ( githubController , options ) ;
75+ lazyRegister ( fastify , ( ) => import ( './github.js' ) , options ) ;
11076} ;
11177
11278/**
@@ -116,5 +82,5 @@ export const registerRoutes = (fastify, options) => {
11682 * @param {Object } options - 路由配置选项
11783 */
11884export const registerWsRoutes = ( wsApp , options ) => {
119- wsApp . register ( websocketServerController , options ) ;
120- }
85+ lazyRegister ( wsApp , ( ) => import ( "./websocketServer.js" ) , options ) ;
86+ }
0 commit comments