ee-core 4.1.5 → 5.0.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/app/application.d.ts +41 -0
- package/dist/cjs/app/application.d.ts.map +1 -0
- package/dist/cjs/app/application.js +68 -0
- package/dist/cjs/app/application.js.map +1 -0
- package/dist/cjs/app/boot.d.ts +64 -0
- package/dist/cjs/app/boot.d.ts.map +1 -0
- package/dist/cjs/app/boot.js +138 -0
- package/dist/cjs/app/boot.js.map +1 -0
- package/dist/cjs/app/dir.d.ts +12 -0
- package/dist/cjs/app/dir.d.ts.map +1 -0
- package/dist/cjs/app/dir.js +88 -0
- package/dist/cjs/app/dir.js.map +1 -0
- package/dist/cjs/app/events.d.ts +71 -0
- package/dist/cjs/app/events.d.ts.map +1 -0
- package/dist/cjs/app/events.js +124 -0
- package/dist/cjs/app/events.js.map +1 -0
- package/dist/cjs/config/config_loader.d.ts +54 -0
- package/dist/cjs/config/config_loader.d.ts.map +1 -0
- package/dist/cjs/config/config_loader.js +137 -0
- package/dist/cjs/config/config_loader.js.map +1 -0
- package/dist/cjs/config/default_config.d.ts +8 -0
- package/dist/cjs/config/default_config.d.ts.map +1 -0
- package/dist/cjs/config/default_config.js +196 -0
- package/dist/cjs/config/default_config.js.map +1 -0
- package/dist/cjs/config/index.d.ts +34 -0
- package/dist/cjs/config/index.d.ts.map +1 -0
- package/dist/cjs/config/index.js +69 -0
- package/dist/cjs/config/index.js.map +1 -0
- package/dist/cjs/const/channel.d.ts +34 -0
- package/dist/cjs/const/channel.d.ts.map +1 -0
- package/dist/cjs/const/channel.js +37 -0
- package/dist/cjs/const/channel.js.map +1 -0
- package/dist/cjs/controller/controller_loader.d.ts +29 -0
- package/dist/cjs/controller/controller_loader.d.ts.map +1 -0
- package/dist/cjs/controller/controller_loader.js +158 -0
- package/dist/cjs/controller/controller_loader.js.map +1 -0
- package/dist/cjs/controller/index.d.ts +36 -0
- package/dist/cjs/controller/index.d.ts.map +1 -0
- package/dist/cjs/controller/index.js +88 -0
- package/dist/cjs/controller/index.js.map +1 -0
- package/dist/cjs/core/loader/file_loader.d.ts +112 -0
- package/dist/cjs/core/loader/file_loader.d.ts.map +1 -0
- package/dist/cjs/core/loader/file_loader.js +283 -0
- package/dist/cjs/core/loader/file_loader.js.map +1 -0
- package/dist/cjs/core/utils/index.d.ts +70 -0
- package/dist/cjs/core/utils/index.d.ts.map +1 -0
- package/dist/cjs/core/utils/index.js +181 -0
- package/dist/cjs/core/utils/index.js.map +1 -0
- package/dist/cjs/core/utils/timing.d.ts +65 -0
- package/dist/cjs/core/utils/timing.d.ts.map +1 -0
- package/dist/cjs/core/utils/timing.js +107 -0
- package/dist/cjs/core/utils/timing.js.map +1 -0
- package/dist/cjs/cross/cross.d.ts +104 -0
- package/dist/cjs/cross/cross.d.ts.map +1 -0
- package/dist/cjs/cross/cross.js +202 -0
- package/dist/cjs/cross/cross.js.map +1 -0
- package/dist/cjs/cross/crossProcess.d.ts +118 -0
- package/dist/cjs/cross/crossProcess.d.ts.map +1 -0
- package/dist/cjs/cross/crossProcess.js +262 -0
- package/dist/cjs/cross/crossProcess.js.map +1 -0
- package/dist/cjs/cross/index.d.ts +4 -0
- package/dist/cjs/cross/index.d.ts.map +1 -0
- package/dist/cjs/cross/index.js +9 -0
- package/dist/cjs/cross/index.js.map +1 -0
- package/dist/cjs/electron/app/index.d.ts +23 -0
- package/dist/cjs/electron/app/index.d.ts.map +1 -0
- package/dist/cjs/electron/app/index.js +99 -0
- package/dist/cjs/electron/app/index.js.map +1 -0
- package/dist/cjs/electron/index.d.ts +10 -0
- package/dist/cjs/electron/index.d.ts.map +1 -0
- package/dist/cjs/electron/index.js +35 -0
- package/dist/cjs/electron/index.js.map +1 -0
- package/dist/cjs/electron/window/index.d.ts +45 -0
- package/dist/cjs/electron/window/index.d.ts.map +1 -0
- package/dist/cjs/electron/window/index.js +311 -0
- package/dist/cjs/electron/window/index.js.map +1 -0
- package/dist/cjs/exception/index.d.ts +15 -0
- package/dist/cjs/exception/index.d.ts.map +1 -0
- package/dist/cjs/exception/index.js +145 -0
- package/dist/cjs/exception/index.js.map +1 -0
- package/dist/cjs/html/index.d.ts +21 -0
- package/dist/cjs/html/index.d.ts.map +1 -0
- package/dist/cjs/html/index.js +59 -0
- package/dist/cjs/html/index.js.map +1 -0
- package/dist/cjs/index.d.ts +60 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +245 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/jobs/child/app.d.ts +2 -0
- package/dist/cjs/jobs/child/app.d.ts.map +1 -0
- package/dist/cjs/jobs/child/app.js +132 -0
- package/dist/cjs/jobs/child/app.js.map +1 -0
- package/dist/cjs/jobs/child/index.d.ts +29 -0
- package/dist/cjs/jobs/child/index.d.ts.map +1 -0
- package/dist/cjs/jobs/child/index.js +78 -0
- package/dist/cjs/jobs/child/index.js.map +1 -0
- package/dist/cjs/jobs/child/jobProcess.d.ts +102 -0
- package/dist/cjs/jobs/child/jobProcess.d.ts.map +1 -0
- package/dist/cjs/jobs/child/jobProcess.js +196 -0
- package/dist/cjs/jobs/child/jobProcess.js.map +1 -0
- package/dist/cjs/jobs/child-pool/index.d.ts +126 -0
- package/dist/cjs/jobs/child-pool/index.d.ts.map +1 -0
- package/dist/cjs/jobs/child-pool/index.js +252 -0
- package/dist/cjs/jobs/child-pool/index.js.map +1 -0
- package/dist/cjs/jobs/index.d.ts +18 -0
- package/dist/cjs/jobs/index.d.ts.map +1 -0
- package/dist/cjs/jobs/index.js +22 -0
- package/dist/cjs/jobs/index.js.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts +7 -0
- package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/index.js +32 -0
- package/dist/cjs/jobs/load-balancer/algorithm/index.js.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.d.ts +6 -0
- package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.d.ts.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.js +27 -0
- package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.js.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/polling.d.ts +6 -0
- package/dist/cjs/jobs/load-balancer/algorithm/polling.d.ts.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/polling.js +15 -0
- package/dist/cjs/jobs/load-balancer/algorithm/polling.js.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/random.d.ts +6 -0
- package/dist/cjs/jobs/load-balancer/algorithm/random.d.ts.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/random.js +12 -0
- package/dist/cjs/jobs/load-balancer/algorithm/random.js.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/specify.d.ts +6 -0
- package/dist/cjs/jobs/load-balancer/algorithm/specify.d.ts.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/specify.js +18 -0
- package/dist/cjs/jobs/load-balancer/algorithm/specify.js.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts +6 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weights.js +26 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weights.js.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +6 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js +32 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.d.ts +6 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.d.ts.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.js +26 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.js.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.d.ts +6 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.d.ts.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.js +22 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.js.map +1 -0
- package/dist/cjs/jobs/load-balancer/consts.d.ts +35 -0
- package/dist/cjs/jobs/load-balancer/consts.d.ts.map +1 -0
- package/dist/cjs/jobs/load-balancer/consts.js +36 -0
- package/dist/cjs/jobs/load-balancer/consts.js.map +1 -0
- package/dist/cjs/jobs/load-balancer/index.d.ts +84 -0
- package/dist/cjs/jobs/load-balancer/index.d.ts.map +1 -0
- package/dist/cjs/jobs/load-balancer/index.js +195 -0
- package/dist/cjs/jobs/load-balancer/index.js.map +1 -0
- package/dist/cjs/jobs/load-balancer/scheduler.d.ts +17 -0
- package/dist/cjs/jobs/load-balancer/scheduler.d.ts.map +1 -0
- package/dist/cjs/jobs/load-balancer/scheduler.js +36 -0
- package/dist/cjs/jobs/load-balancer/scheduler.js.map +1 -0
- package/dist/cjs/jobs/load-balancer/types.d.ts +43 -0
- package/dist/cjs/jobs/load-balancer/types.d.ts.map +1 -0
- package/dist/cjs/jobs/load-balancer/types.js +7 -0
- package/dist/cjs/jobs/load-balancer/types.js.map +1 -0
- package/dist/cjs/jobs/registry.d.ts +24 -0
- package/dist/cjs/jobs/registry.d.ts.map +1 -0
- package/dist/cjs/jobs/registry.js +52 -0
- package/dist/cjs/jobs/registry.js.map +1 -0
- package/dist/cjs/loader/index.d.ts +58 -0
- package/dist/cjs/loader/index.d.ts.map +1 -0
- package/dist/cjs/loader/index.js +151 -0
- package/dist/cjs/loader/index.js.map +1 -0
- package/dist/cjs/log/index.d.ts +59 -0
- package/dist/cjs/log/index.d.ts.map +1 -0
- package/dist/cjs/log/index.js +123 -0
- package/dist/cjs/log/index.js.map +1 -0
- package/dist/cjs/log/logger.d.ts +35 -0
- package/dist/cjs/log/logger.d.ts.map +1 -0
- package/dist/cjs/log/logger.js +246 -0
- package/dist/cjs/log/logger.js.map +1 -0
- package/dist/cjs/message/childMessage.d.ts +58 -0
- package/dist/cjs/message/childMessage.d.ts.map +1 -0
- package/dist/cjs/message/childMessage.js +118 -0
- package/dist/cjs/message/childMessage.js.map +1 -0
- package/dist/cjs/message/index.d.ts +2 -0
- package/dist/cjs/message/index.d.ts.map +1 -0
- package/dist/cjs/message/index.js +7 -0
- package/dist/cjs/message/index.js.map +1 -0
- package/dist/cjs/ps/index.d.ts +155 -0
- package/dist/cjs/ps/index.d.ts.map +1 -0
- package/dist/cjs/ps/index.js +369 -0
- package/dist/cjs/ps/index.js.map +1 -0
- package/dist/cjs/socket/httpServer.d.ts +74 -0
- package/dist/cjs/socket/httpServer.d.ts.map +1 -0
- package/dist/cjs/socket/httpServer.js +240 -0
- package/dist/cjs/socket/httpServer.js.map +1 -0
- package/dist/cjs/socket/index.d.ts +60 -0
- package/dist/cjs/socket/index.d.ts.map +1 -0
- package/dist/cjs/socket/index.js +103 -0
- package/dist/cjs/socket/index.js.map +1 -0
- package/dist/cjs/socket/ipcServer.d.ts +40 -0
- package/dist/cjs/socket/ipcServer.d.ts.map +1 -0
- package/dist/cjs/socket/ipcServer.js +124 -0
- package/dist/cjs/socket/ipcServer.js.map +1 -0
- package/dist/cjs/socket/socketServer.d.ts +43 -0
- package/dist/cjs/socket/socketServer.d.ts.map +1 -0
- package/dist/cjs/socket/socketServer.js +116 -0
- package/dist/cjs/socket/socketServer.js.map +1 -0
- package/dist/cjs/socket/utils.d.ts +13 -0
- package/dist/cjs/socket/utils.d.ts.map +1 -0
- package/dist/cjs/socket/utils.js +41 -0
- package/dist/cjs/socket/utils.js.map +1 -0
- package/dist/cjs/storage/index.d.ts +2 -0
- package/dist/cjs/storage/index.d.ts.map +1 -0
- package/dist/cjs/storage/index.js +6 -0
- package/dist/cjs/storage/index.js.map +1 -0
- package/dist/cjs/storage/sqliteStorage.d.ts +117 -0
- package/dist/cjs/storage/sqliteStorage.d.ts.map +1 -0
- package/dist/cjs/storage/sqliteStorage.js +197 -0
- package/dist/cjs/storage/sqliteStorage.js.map +1 -0
- package/dist/cjs/types/index.d.ts +524 -0
- package/dist/cjs/types/index.d.ts.map +1 -0
- package/dist/cjs/types/index.js +3 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/utils/extend.d.ts +46 -0
- package/dist/cjs/utils/extend.d.ts.map +1 -0
- package/dist/cjs/utils/extend.js +105 -0
- package/dist/cjs/utils/extend.js.map +1 -0
- package/dist/cjs/utils/helper.d.ts +169 -0
- package/dist/cjs/utils/helper.d.ts.map +1 -0
- package/dist/cjs/utils/helper.js +351 -0
- package/dist/cjs/utils/helper.js.map +1 -0
- package/dist/cjs/utils/index.d.ts +113 -0
- package/dist/cjs/utils/index.d.ts.map +1 -0
- package/dist/cjs/utils/index.js +344 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/ip.d.ts +42 -0
- package/dist/cjs/utils/ip.d.ts.map +1 -0
- package/dist/cjs/utils/ip.js +276 -0
- package/dist/cjs/utils/ip.js.map +1 -0
- package/dist/cjs/utils/is.d.ts +138 -0
- package/dist/cjs/utils/is.d.ts.map +1 -0
- package/dist/cjs/utils/is.js +203 -0
- package/dist/cjs/utils/is.js.map +1 -0
- package/dist/cjs/utils/json.d.ts +64 -0
- package/dist/cjs/utils/json.d.ts.map +1 -0
- package/dist/cjs/utils/json.js +122 -0
- package/dist/cjs/utils/json.js.map +1 -0
- package/dist/cjs/utils/pargv.d.ts +67 -0
- package/dist/cjs/utils/pargv.d.ts.map +1 -0
- package/dist/cjs/utils/pargv.js +406 -0
- package/dist/cjs/utils/pargv.js.map +1 -0
- package/dist/cjs/utils/port/index.d.ts +48 -0
- package/dist/cjs/utils/port/index.d.ts.map +1 -0
- package/dist/cjs/utils/port/index.js +235 -0
- package/dist/cjs/utils/port/index.js.map +1 -0
- package/dist/cjs/utils/type_check.d.ts +88 -0
- package/dist/cjs/utils/type_check.d.ts.map +1 -0
- package/dist/cjs/utils/type_check.js +121 -0
- package/dist/cjs/utils/type_check.js.map +1 -0
- package/dist/cjs/utils/wrap.d.ts +31 -0
- package/dist/cjs/utils/wrap.d.ts.map +1 -0
- package/dist/cjs/utils/wrap.js +88 -0
- package/dist/cjs/utils/wrap.js.map +1 -0
- package/dist/esm/app/application.d.ts +41 -0
- package/dist/esm/app/application.d.ts.map +1 -0
- package/dist/esm/app/application.js +68 -0
- package/dist/esm/app/application.js.map +1 -0
- package/dist/esm/app/boot.d.ts +64 -0
- package/dist/esm/app/boot.d.ts.map +1 -0
- package/dist/esm/app/boot.js +138 -0
- package/dist/esm/app/boot.js.map +1 -0
- package/dist/esm/app/dir.d.ts +12 -0
- package/dist/esm/app/dir.d.ts.map +1 -0
- package/dist/esm/app/dir.js +88 -0
- package/dist/esm/app/dir.js.map +1 -0
- package/dist/esm/app/events.d.ts +71 -0
- package/dist/esm/app/events.d.ts.map +1 -0
- package/dist/esm/app/events.js +124 -0
- package/dist/esm/app/events.js.map +1 -0
- package/dist/esm/config/config_loader.d.ts +54 -0
- package/dist/esm/config/config_loader.d.ts.map +1 -0
- package/dist/esm/config/config_loader.js +137 -0
- package/dist/esm/config/config_loader.js.map +1 -0
- package/dist/esm/config/default_config.d.ts +8 -0
- package/dist/esm/config/default_config.d.ts.map +1 -0
- package/dist/esm/config/default_config.js +196 -0
- package/dist/esm/config/default_config.js.map +1 -0
- package/dist/esm/config/index.d.ts +34 -0
- package/dist/esm/config/index.d.ts.map +1 -0
- package/dist/esm/config/index.js +69 -0
- package/dist/esm/config/index.js.map +1 -0
- package/dist/esm/const/channel.d.ts +34 -0
- package/dist/esm/const/channel.d.ts.map +1 -0
- package/dist/esm/const/channel.js +37 -0
- package/dist/esm/const/channel.js.map +1 -0
- package/dist/esm/controller/controller_loader.d.ts +29 -0
- package/dist/esm/controller/controller_loader.d.ts.map +1 -0
- package/dist/esm/controller/controller_loader.js +158 -0
- package/dist/esm/controller/controller_loader.js.map +1 -0
- package/dist/esm/controller/index.d.ts +36 -0
- package/dist/esm/controller/index.d.ts.map +1 -0
- package/dist/esm/controller/index.js +88 -0
- package/dist/esm/controller/index.js.map +1 -0
- package/dist/esm/core/loader/file_loader.d.ts +112 -0
- package/dist/esm/core/loader/file_loader.d.ts.map +1 -0
- package/dist/esm/core/loader/file_loader.js +283 -0
- package/dist/esm/core/loader/file_loader.js.map +1 -0
- package/dist/esm/core/utils/index.d.ts +70 -0
- package/dist/esm/core/utils/index.d.ts.map +1 -0
- package/dist/esm/core/utils/index.js +148 -0
- package/dist/esm/core/utils/index.js.map +1 -0
- package/dist/esm/core/utils/timing.d.ts +65 -0
- package/dist/esm/core/utils/timing.d.ts.map +1 -0
- package/dist/esm/core/utils/timing.js +107 -0
- package/dist/esm/core/utils/timing.js.map +1 -0
- package/dist/esm/cross/cross.d.ts +104 -0
- package/dist/esm/cross/cross.d.ts.map +1 -0
- package/dist/esm/cross/cross.js +202 -0
- package/dist/esm/cross/cross.js.map +1 -0
- package/dist/esm/cross/crossProcess.d.ts +118 -0
- package/dist/esm/cross/crossProcess.d.ts.map +1 -0
- package/dist/esm/cross/crossProcess.js +262 -0
- package/dist/esm/cross/crossProcess.js.map +1 -0
- package/dist/esm/cross/index.d.ts +4 -0
- package/dist/esm/cross/index.d.ts.map +1 -0
- package/dist/esm/cross/index.js +9 -0
- package/dist/esm/cross/index.js.map +1 -0
- package/dist/esm/electron/app/index.d.ts +23 -0
- package/dist/esm/electron/app/index.d.ts.map +1 -0
- package/dist/esm/electron/app/index.js +99 -0
- package/dist/esm/electron/app/index.js.map +1 -0
- package/dist/esm/electron/index.d.ts +10 -0
- package/dist/esm/electron/index.d.ts.map +1 -0
- package/dist/esm/electron/index.js +35 -0
- package/dist/esm/electron/index.js.map +1 -0
- package/dist/esm/electron/window/index.d.ts +45 -0
- package/dist/esm/electron/window/index.d.ts.map +1 -0
- package/dist/esm/electron/window/index.js +311 -0
- package/dist/esm/electron/window/index.js.map +1 -0
- package/dist/esm/exception/index.d.ts +15 -0
- package/dist/esm/exception/index.d.ts.map +1 -0
- package/dist/esm/exception/index.js +145 -0
- package/dist/esm/exception/index.js.map +1 -0
- package/dist/esm/html/index.d.ts +21 -0
- package/dist/esm/html/index.d.ts.map +1 -0
- package/dist/esm/html/index.js +59 -0
- package/dist/esm/html/index.js.map +1 -0
- package/dist/esm/index.d.ts +60 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +245 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/jobs/child/app.d.ts +2 -0
- package/dist/esm/jobs/child/app.d.ts.map +1 -0
- package/dist/esm/jobs/child/app.js +132 -0
- package/dist/esm/jobs/child/app.js.map +1 -0
- package/dist/esm/jobs/child/index.d.ts +29 -0
- package/dist/esm/jobs/child/index.d.ts.map +1 -0
- package/dist/esm/jobs/child/index.js +78 -0
- package/dist/esm/jobs/child/index.js.map +1 -0
- package/dist/esm/jobs/child/jobProcess.d.ts +102 -0
- package/dist/esm/jobs/child/jobProcess.d.ts.map +1 -0
- package/dist/esm/jobs/child/jobProcess.js +196 -0
- package/dist/esm/jobs/child/jobProcess.js.map +1 -0
- package/dist/esm/jobs/child-pool/index.d.ts +126 -0
- package/dist/esm/jobs/child-pool/index.d.ts.map +1 -0
- package/dist/esm/jobs/child-pool/index.js +252 -0
- package/dist/esm/jobs/child-pool/index.js.map +1 -0
- package/dist/esm/jobs/index.d.ts +18 -0
- package/dist/esm/jobs/index.d.ts.map +1 -0
- package/dist/esm/jobs/index.js +22 -0
- package/dist/esm/jobs/index.js.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/index.d.ts +7 -0
- package/dist/esm/jobs/load-balancer/algorithm/index.d.ts.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/index.js +32 -0
- package/dist/esm/jobs/load-balancer/algorithm/index.js.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.d.ts +6 -0
- package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.d.ts.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.js +27 -0
- package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.js.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/polling.d.ts +6 -0
- package/dist/esm/jobs/load-balancer/algorithm/polling.d.ts.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/polling.js +15 -0
- package/dist/esm/jobs/load-balancer/algorithm/polling.js.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/random.d.ts +6 -0
- package/dist/esm/jobs/load-balancer/algorithm/random.d.ts.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/random.js +12 -0
- package/dist/esm/jobs/load-balancer/algorithm/random.js.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/specify.d.ts +6 -0
- package/dist/esm/jobs/load-balancer/algorithm/specify.d.ts.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/specify.js +18 -0
- package/dist/esm/jobs/load-balancer/algorithm/specify.js.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts +6 -0
- package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/weights.js +26 -0
- package/dist/esm/jobs/load-balancer/algorithm/weights.js.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +6 -0
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js +32 -0
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.d.ts +6 -0
- package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.d.ts.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.js +26 -0
- package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.js.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.d.ts +6 -0
- package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.d.ts.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.js +22 -0
- package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.js.map +1 -0
- package/dist/esm/jobs/load-balancer/consts.d.ts +35 -0
- package/dist/esm/jobs/load-balancer/consts.d.ts.map +1 -0
- package/dist/esm/jobs/load-balancer/consts.js +36 -0
- package/dist/esm/jobs/load-balancer/consts.js.map +1 -0
- package/dist/esm/jobs/load-balancer/index.d.ts +84 -0
- package/dist/esm/jobs/load-balancer/index.d.ts.map +1 -0
- package/dist/esm/jobs/load-balancer/index.js +195 -0
- package/dist/esm/jobs/load-balancer/index.js.map +1 -0
- package/dist/esm/jobs/load-balancer/scheduler.d.ts +17 -0
- package/dist/esm/jobs/load-balancer/scheduler.d.ts.map +1 -0
- package/dist/esm/jobs/load-balancer/scheduler.js +36 -0
- package/dist/esm/jobs/load-balancer/scheduler.js.map +1 -0
- package/dist/esm/jobs/load-balancer/types.d.ts +43 -0
- package/dist/esm/jobs/load-balancer/types.d.ts.map +1 -0
- package/dist/esm/jobs/load-balancer/types.js +7 -0
- package/dist/esm/jobs/load-balancer/types.js.map +1 -0
- package/dist/esm/jobs/registry.d.ts +24 -0
- package/dist/esm/jobs/registry.d.ts.map +1 -0
- package/dist/esm/jobs/registry.js +52 -0
- package/dist/esm/jobs/registry.js.map +1 -0
- package/dist/esm/loader/index.d.ts +58 -0
- package/dist/esm/loader/index.d.ts.map +1 -0
- package/dist/esm/loader/index.js +151 -0
- package/dist/esm/loader/index.js.map +1 -0
- package/dist/esm/log/index.d.ts +59 -0
- package/dist/esm/log/index.d.ts.map +1 -0
- package/dist/esm/log/index.js +123 -0
- package/dist/esm/log/index.js.map +1 -0
- package/dist/esm/log/logger.d.ts +35 -0
- package/dist/esm/log/logger.d.ts.map +1 -0
- package/dist/esm/log/logger.js +246 -0
- package/dist/esm/log/logger.js.map +1 -0
- package/dist/esm/message/childMessage.d.ts +58 -0
- package/dist/esm/message/childMessage.d.ts.map +1 -0
- package/dist/esm/message/childMessage.js +118 -0
- package/dist/esm/message/childMessage.js.map +1 -0
- package/dist/esm/message/index.d.ts +2 -0
- package/dist/esm/message/index.d.ts.map +1 -0
- package/dist/esm/message/index.js +7 -0
- package/dist/esm/message/index.js.map +1 -0
- package/dist/esm/ps/index.d.ts +155 -0
- package/dist/esm/ps/index.d.ts.map +1 -0
- package/dist/esm/ps/index.js +369 -0
- package/dist/esm/ps/index.js.map +1 -0
- package/dist/esm/socket/httpServer.d.ts +74 -0
- package/dist/esm/socket/httpServer.d.ts.map +1 -0
- package/dist/esm/socket/httpServer.js +240 -0
- package/dist/esm/socket/httpServer.js.map +1 -0
- package/dist/esm/socket/index.d.ts +60 -0
- package/dist/esm/socket/index.d.ts.map +1 -0
- package/dist/esm/socket/index.js +103 -0
- package/dist/esm/socket/index.js.map +1 -0
- package/dist/esm/socket/ipcServer.d.ts +40 -0
- package/dist/esm/socket/ipcServer.d.ts.map +1 -0
- package/dist/esm/socket/ipcServer.js +124 -0
- package/dist/esm/socket/ipcServer.js.map +1 -0
- package/dist/esm/socket/socketServer.d.ts +43 -0
- package/dist/esm/socket/socketServer.d.ts.map +1 -0
- package/dist/esm/socket/socketServer.js +116 -0
- package/dist/esm/socket/socketServer.js.map +1 -0
- package/dist/esm/socket/utils.d.ts +13 -0
- package/dist/esm/socket/utils.d.ts.map +1 -0
- package/dist/esm/socket/utils.js +41 -0
- package/dist/esm/socket/utils.js.map +1 -0
- package/dist/esm/storage/index.d.ts +2 -0
- package/dist/esm/storage/index.d.ts.map +1 -0
- package/dist/esm/storage/index.js +6 -0
- package/dist/esm/storage/index.js.map +1 -0
- package/dist/esm/storage/sqliteStorage.d.ts +117 -0
- package/dist/esm/storage/sqliteStorage.d.ts.map +1 -0
- package/dist/esm/storage/sqliteStorage.js +197 -0
- package/dist/esm/storage/sqliteStorage.js.map +1 -0
- package/dist/esm/types/index.d.ts +524 -0
- package/dist/esm/types/index.d.ts.map +1 -0
- package/dist/esm/types/index.js +3 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/utils/extend.d.ts +46 -0
- package/dist/esm/utils/extend.d.ts.map +1 -0
- package/dist/esm/utils/extend.js +105 -0
- package/dist/esm/utils/extend.js.map +1 -0
- package/dist/esm/utils/helper.d.ts +169 -0
- package/dist/esm/utils/helper.d.ts.map +1 -0
- package/dist/esm/utils/helper.js +351 -0
- package/dist/esm/utils/helper.js.map +1 -0
- package/dist/esm/utils/index.d.ts +113 -0
- package/dist/esm/utils/index.d.ts.map +1 -0
- package/dist/esm/utils/index.js +344 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/ip.d.ts +42 -0
- package/dist/esm/utils/ip.d.ts.map +1 -0
- package/dist/esm/utils/ip.js +276 -0
- package/dist/esm/utils/ip.js.map +1 -0
- package/dist/esm/utils/is.d.ts +138 -0
- package/dist/esm/utils/is.d.ts.map +1 -0
- package/dist/esm/utils/is.js +203 -0
- package/dist/esm/utils/is.js.map +1 -0
- package/dist/esm/utils/json.d.ts +64 -0
- package/dist/esm/utils/json.d.ts.map +1 -0
- package/dist/esm/utils/json.js +122 -0
- package/dist/esm/utils/json.js.map +1 -0
- package/dist/esm/utils/pargv.d.ts +67 -0
- package/dist/esm/utils/pargv.d.ts.map +1 -0
- package/dist/esm/utils/pargv.js +406 -0
- package/dist/esm/utils/pargv.js.map +1 -0
- package/dist/esm/utils/port/index.d.ts +48 -0
- package/dist/esm/utils/port/index.d.ts.map +1 -0
- package/dist/esm/utils/port/index.js +235 -0
- package/dist/esm/utils/port/index.js.map +1 -0
- package/dist/esm/utils/type_check.d.ts +88 -0
- package/dist/esm/utils/type_check.d.ts.map +1 -0
- package/dist/esm/utils/type_check.js +121 -0
- package/dist/esm/utils/type_check.js.map +1 -0
- package/dist/esm/utils/wrap.d.ts +31 -0
- package/dist/esm/utils/wrap.d.ts.map +1 -0
- package/dist/esm/utils/wrap.js +88 -0
- package/dist/esm/utils/wrap.js.map +1 -0
- package/package.json +424 -27
- package/LICENSE +0 -21
- package/README.md +0 -66
- package/app/application.d.ts +0 -5
- package/app/application.js +0 -31
- package/app/boot.d.ts +0 -5
- package/app/boot.js +0 -81
- package/app/dir.d.ts +0 -1
- package/app/dir.js +0 -27
- package/app/events.d.ts +0 -14
- package/app/events.js +0 -56
- package/app/index.d.ts +0 -2
- package/app/index.js +0 -7
- package/config/config_loader.d.ts +0 -13
- package/config/config_loader.js +0 -66
- package/config/default_config.d.ts +0 -95
- package/config/default_config.js +0 -111
- package/config/index.d.ts +0 -28
- package/config/index.js +0 -25
- package/const/channel.d.ts +0 -16
- package/const/channel.js +0 -28
- package/controller/controller_loader.d.ts +0 -9
- package/controller/controller_loader.js +0 -78
- package/controller/index.d.ts +0 -2
- package/controller/index.js +0 -24
- package/core/index.d.ts +0 -2
- package/core/index.js +0 -12
- package/core/loader/file_loader.d.ts +0 -66
- package/core/loader/file_loader.js +0 -212
- package/core/utils/index.d.ts +0 -12
- package/core/utils/index.js +0 -83
- package/core/utils/timing.d.ts +0 -22
- package/core/utils/timing.js +0 -78
- package/cross/cross.d.ts +0 -19
- package/cross/cross.js +0 -153
- package/cross/crossProcess.d.ts +0 -29
- package/cross/crossProcess.js +0 -173
- package/cross/index.d.ts +0 -2
- package/cross/index.js +0 -8
- package/electron/app/index.d.ts +0 -5
- package/electron/app/index.js +0 -48
- package/electron/index.d.ts +0 -3
- package/electron/index.js +0 -16
- package/electron/window/index.d.ts +0 -6
- package/electron/window/index.js +0 -269
- package/exception/index.d.ts +0 -9
- package/exception/index.js +0 -101
- package/html/boot.html +0 -98
- package/html/cross-failure.html +0 -28
- package/html/failure.html +0 -28
- package/html/index.d.ts +0 -1
- package/html/index.js +0 -11
- package/index.d.ts +0 -2
- package/index.js +0 -7
- package/jobs/child/app.d.ts +0 -1
- package/jobs/child/app.js +0 -70
- package/jobs/child/index.d.ts +0 -13
- package/jobs/child/index.js +0 -85
- package/jobs/child/jobProcess.d.ts +0 -16
- package/jobs/child/jobProcess.js +0 -134
- package/jobs/child-pool/index.d.ts +0 -26
- package/jobs/child-pool/index.js +0 -190
- package/jobs/index.d.ts +0 -3
- package/jobs/index.js +0 -7
- package/jobs/load-balancer/algorithm/index.d.ts +0 -4
- package/jobs/load-balancer/algorithm/index.js +0 -12
- package/jobs/load-balancer/algorithm/minimumConnection.d.ts +0 -2
- package/jobs/load-balancer/algorithm/minimumConnection.js +0 -19
- package/jobs/load-balancer/algorithm/polling.d.ts +0 -2
- package/jobs/load-balancer/algorithm/polling.js +0 -12
- package/jobs/load-balancer/algorithm/random.d.ts +0 -2
- package/jobs/load-balancer/algorithm/random.js +0 -10
- package/jobs/load-balancer/algorithm/specify.d.ts +0 -2
- package/jobs/load-balancer/algorithm/specify.js +0 -15
- package/jobs/load-balancer/algorithm/weights.d.ts +0 -2
- package/jobs/load-balancer/algorithm/weights.js +0 -22
- package/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +0 -2
- package/jobs/load-balancer/algorithm/weightsMinimumConnection.js +0 -30
- package/jobs/load-balancer/algorithm/weightsPolling.d.ts +0 -2
- package/jobs/load-balancer/algorithm/weightsPolling.js +0 -23
- package/jobs/load-balancer/algorithm/weightsRandom.d.ts +0 -2
- package/jobs/load-balancer/algorithm/weightsRandom.js +0 -17
- package/jobs/load-balancer/consts.d.ts +0 -8
- package/jobs/load-balancer/consts.js +0 -10
- package/jobs/load-balancer/index.d.ts +0 -96
- package/jobs/load-balancer/index.js +0 -202
- package/jobs/load-balancer/scheduler.d.ts +0 -16
- package/jobs/load-balancer/scheduler.js +0 -32
- package/loader/index.d.ts +0 -9
- package/loader/index.js +0 -99
- package/log/index.d.ts +0 -5
- package/log/index.js +0 -86
- package/log/logger.d.ts +0 -2
- package/log/logger.js +0 -95
- package/message/childMessage.d.ts +0 -10
- package/message/childMessage.js +0 -43
- package/message/index.d.ts +0 -3
- package/message/index.js +0 -10
- package/ps/index.d.ts +0 -39
- package/ps/index.js +0 -295
- package/socket/httpServer.d.ts +0 -8
- package/socket/httpServer.js +0 -199
- package/socket/index.d.ts +0 -10
- package/socket/index.js +0 -65
- package/socket/ipcServer.d.ts +0 -9
- package/socket/ipcServer.js +0 -106
- package/socket/socketServer.d.ts +0 -10
- package/socket/socketServer.js +0 -82
- package/storage/index.d.ts +0 -5
- package/storage/index.js +0 -7
- package/storage/sqliteStorage.d.ts +0 -16
- package/storage/sqliteStorage.js +0 -124
- package/tsconfig.json +0 -14
- package/utils/extend.d.ts +0 -2
- package/utils/extend.js +0 -78
- package/utils/helper.d.ts +0 -14
- package/utils/helper.js +0 -207
- package/utils/index.d.ts +0 -11
- package/utils/index.js +0 -198
- package/utils/ip.d.ts +0 -2
- package/utils/ip.js +0 -221
- package/utils/is.d.ts +0 -14
- package/utils/is.js +0 -112
- package/utils/json.d.ts +0 -5
- package/utils/json.js +0 -80
- package/utils/pargv.d.ts +0 -3
- package/utils/pargv.js +0 -267
- package/utils/port/index.d.ts +0 -1
- package/utils/port/index.js +0 -126
- package/utils/wrap.d.ts +0 -4
- package/utils/wrap.js +0 -41
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import Koa from 'koa';
|
|
2
|
+
import type { HttpServerConfig } from '../types/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* HttpServer - HTTP server
|
|
5
|
+
*
|
|
6
|
+
* Created using factory pattern (static create()), because initialization requires async port acquisition.
|
|
7
|
+
* When enable=false in config, the service will not start after creation.
|
|
8
|
+
*/
|
|
9
|
+
export declare class HttpServer {
|
|
10
|
+
/** HTTP server configuration */
|
|
11
|
+
config: HttpServerConfig;
|
|
12
|
+
/** Koa application instance */
|
|
13
|
+
httpApp: Koa | undefined;
|
|
14
|
+
/** Channel separator */
|
|
15
|
+
channelSeparator: string;
|
|
16
|
+
private constructor();
|
|
17
|
+
/**
|
|
18
|
+
* Factory method: create and initialize HttpServer
|
|
19
|
+
*
|
|
20
|
+
* @returns Fully initialized HttpServer instance
|
|
21
|
+
*/
|
|
22
|
+
static create(): Promise<HttpServer>;
|
|
23
|
+
/**
|
|
24
|
+
* Initialize HTTP server
|
|
25
|
+
*
|
|
26
|
+
* Acquires an available port then creates a Koa application and starts listening.
|
|
27
|
+
* The port number is written to process.env.EE_HTTP_PORT for other modules to access.
|
|
28
|
+
*/
|
|
29
|
+
init(): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Create Koa application and start HTTP/HTTPS service
|
|
32
|
+
*
|
|
33
|
+
* Loads middleware in order, handles HTTPS configuration, and starts listening.
|
|
34
|
+
*/
|
|
35
|
+
_create(): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Core routing dispatch middleware
|
|
38
|
+
*
|
|
39
|
+
* Maps HTTP request paths to controller methods:
|
|
40
|
+
* 1. Remove leading '/' from path
|
|
41
|
+
* 2. Check if path is in filter list (e.g., favicon.ico)
|
|
42
|
+
* 3. Ensure path starts with 'controller'
|
|
43
|
+
* 4. Find and call controller method via resolveControllerFn
|
|
44
|
+
* 5. GET requests pass query params, POST requests pass body params
|
|
45
|
+
*
|
|
46
|
+
* Error handling: When controller method throws an exception, returns 500 + { error: 'Internal Server Error' }
|
|
47
|
+
*/
|
|
48
|
+
_dispatch(ctx: Koa.Context, next: Koa.Next): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Get Koa application instance
|
|
51
|
+
*
|
|
52
|
+
* @returns Koa instance, or undefined if HTTP service is not enabled
|
|
53
|
+
*/
|
|
54
|
+
getHttpApp(): Koa | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Set up Koa error handler
|
|
57
|
+
*
|
|
58
|
+
* @param app - Koa application instance
|
|
59
|
+
* @param errorHandler - Error handler function that receives an Error parameter
|
|
60
|
+
*/
|
|
61
|
+
_setupErrorHandler(app: Koa, errorHandler: ((err: Error) => void) | null): void;
|
|
62
|
+
/**
|
|
63
|
+
* Load pre/post middleware
|
|
64
|
+
*
|
|
65
|
+
* Middleware can be factory functions (called to return Koa middleware) or direct middleware functions.
|
|
66
|
+
* Invalid middleware will be skipped with a warning.
|
|
67
|
+
*
|
|
68
|
+
* @param app - Koa application instance
|
|
69
|
+
* @param middlewares - Middleware array
|
|
70
|
+
* @param type - Type identifier (pre/post), used for warning messages
|
|
71
|
+
*/
|
|
72
|
+
_loadMiddlewares(app: Koa, middlewares?: unknown[], type?: string): void;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=httpServer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpServer.d.ts","sourceRoot":"","sources":["../../../src/socket/httpServer.ts"],"names":[],"mappings":"AAsBA,OAAO,GAAG,MAAM,KAAK,CAAC;AAWtB,OAAO,KAAK,EAAE,gBAAgB,EAAa,MAAM,mBAAmB,CAAC;AAKrE;;;;;GAKG;AACH,qBAAa,UAAU;IACrB,gCAAgC;IAChC,MAAM,EAAE,gBAAgB,CAAC;IACzB,+BAA+B;IAC/B,OAAO,EAAE,GAAG,GAAG,SAAS,CAAC;IACzB,wBAAwB;IACxB,gBAAgB,EAAE,MAAM,CAAC;IAEzB,OAAO;IAOP;;;;OAIG;WACU,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC;IAM1C;;;;;OAKG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAc3B;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA4D9B;;;;;;;;;;;OAWG;IACG,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA+ChE;;;;OAIG;IACH,UAAU,IAAI,GAAG,GAAG,SAAS;IAI7B;;;;;OAKG;IACH,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IAM/E;;;;;;;;;OASG;IACH,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,GAAE,OAAO,EAAO,EAAE,IAAI,SAAQ,GAAG,IAAI;CAY5E"}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.HttpServer = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* @module socket/httpServer
|
|
9
|
+
* @description HTTP/HTTPS server. Provides RESTful API services based on the Koa framework,
|
|
10
|
+
* routing HTTP requests to corresponding controller methods.
|
|
11
|
+
*
|
|
12
|
+
* Request routing rules:
|
|
13
|
+
* - URL path maps to controller path, e.g., /controller/user/add → controller.user.add
|
|
14
|
+
* - GET request parameters from query, POST request parameters from body
|
|
15
|
+
* - Paths starting with 'controller' are used directly, otherwise 'controller' prefix is added automatically
|
|
16
|
+
* - URIs in filterRequest return specified data directly without going through controllers
|
|
17
|
+
*
|
|
18
|
+
* Middleware loading order:
|
|
19
|
+
* 1. Error handler (errorHandler)
|
|
20
|
+
* 2. Pre-middleware (preMiddleware)
|
|
21
|
+
* 3. CORS cross-origin middleware
|
|
22
|
+
* 4. koa-body request body parsing middleware
|
|
23
|
+
* 5. Core routing dispatch middleware (_dispatch)
|
|
24
|
+
* 6. Post-middleware (postMiddleware)
|
|
25
|
+
*/
|
|
26
|
+
const debug_1 = __importDefault(require("debug"));
|
|
27
|
+
const assert_1 = __importDefault(require("assert"));
|
|
28
|
+
const type_check_js_1 = require("../utils/type_check.js");
|
|
29
|
+
const koa_1 = __importDefault(require("koa"));
|
|
30
|
+
const koa2_cors_1 = __importDefault(require("koa2-cors"));
|
|
31
|
+
const koa_body_1 = __importDefault(require("koa-body"));
|
|
32
|
+
const https_1 = __importDefault(require("https"));
|
|
33
|
+
const fs_1 = __importDefault(require("fs"));
|
|
34
|
+
const path_1 = __importDefault(require("path"));
|
|
35
|
+
const index_js_1 = require("../log/index.js");
|
|
36
|
+
const index_js_2 = require("../ps/index.js");
|
|
37
|
+
const index_js_3 = require("../controller/index.js");
|
|
38
|
+
const index_js_4 = require("../config/index.js");
|
|
39
|
+
const index_js_5 = require("../utils/port/index.js");
|
|
40
|
+
const utils_js_1 = require("./utils.js");
|
|
41
|
+
const debugLog = (0, debug_1.default)('ee-core:socket:httpServer');
|
|
42
|
+
/**
|
|
43
|
+
* HttpServer - HTTP server
|
|
44
|
+
*
|
|
45
|
+
* Created using factory pattern (static create()), because initialization requires async port acquisition.
|
|
46
|
+
* When enable=false in config, the service will not start after creation.
|
|
47
|
+
*/
|
|
48
|
+
class HttpServer {
|
|
49
|
+
constructor() {
|
|
50
|
+
const config = (0, index_js_4.getConfig)();
|
|
51
|
+
this.config = config.httpServer;
|
|
52
|
+
this.channelSeparator = config.mainServer.channelSeparator || '/';
|
|
53
|
+
this.httpApp = undefined;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Factory method: create and initialize HttpServer
|
|
57
|
+
*
|
|
58
|
+
* @returns Fully initialized HttpServer instance
|
|
59
|
+
*/
|
|
60
|
+
static async create() {
|
|
61
|
+
const instance = new HttpServer();
|
|
62
|
+
await instance.init();
|
|
63
|
+
return instance;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Initialize HTTP server
|
|
67
|
+
*
|
|
68
|
+
* Acquires an available port then creates a Koa application and starts listening.
|
|
69
|
+
* The port number is written to process.env.EE_HTTP_PORT for other modules to access.
|
|
70
|
+
*/
|
|
71
|
+
async init() {
|
|
72
|
+
if (this.config.enable === false) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const port = await (0, index_js_5.getPort)({ port: this.config.port });
|
|
76
|
+
if (!port) {
|
|
77
|
+
throw new Error('[ee-core] [socket/HttpServer] http port required, and must be a number !');
|
|
78
|
+
}
|
|
79
|
+
process.env.EE_HTTP_PORT = String(port);
|
|
80
|
+
this.config.port = port;
|
|
81
|
+
this._create();
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Create Koa application and start HTTP/HTTPS service
|
|
85
|
+
*
|
|
86
|
+
* Loads middleware in order, handles HTTPS configuration, and starts listening.
|
|
87
|
+
*/
|
|
88
|
+
async _create() {
|
|
89
|
+
const config = this.config;
|
|
90
|
+
const koaConfig = config.koaConfig || {};
|
|
91
|
+
const preMiddleware = koaConfig.preMiddleware || [];
|
|
92
|
+
const postMiddleware = koaConfig.postMiddleware || [];
|
|
93
|
+
const errorHandler = koaConfig.errorHandler || null;
|
|
94
|
+
const isHttps = config.https.enable === true;
|
|
95
|
+
const sslOptions = {};
|
|
96
|
+
if (isHttps) {
|
|
97
|
+
config.protocol = 'https://';
|
|
98
|
+
const httpsConfig = config.https;
|
|
99
|
+
const keyFile = path_1.default.join((0, index_js_2.getBaseDir)(), httpsConfig.key);
|
|
100
|
+
const certFile = path_1.default.join((0, index_js_2.getBaseDir)(), httpsConfig.cert);
|
|
101
|
+
(0, assert_1.default)(fs_1.default.existsSync(keyFile), 'ssl key file is required');
|
|
102
|
+
(0, assert_1.default)(fs_1.default.existsSync(certFile), 'ssl cert file is required');
|
|
103
|
+
sslOptions.key = fs_1.default.readFileSync(keyFile);
|
|
104
|
+
sslOptions.cert = fs_1.default.readFileSync(certFile);
|
|
105
|
+
}
|
|
106
|
+
const url = config.protocol + config.host + ':' + config.port;
|
|
107
|
+
const corsOptions = config.cors;
|
|
108
|
+
const koaApp = new koa_1.default();
|
|
109
|
+
// Set up error handler for unified error code handling
|
|
110
|
+
this._setupErrorHandler(koaApp, errorHandler);
|
|
111
|
+
// Load pre-middleware
|
|
112
|
+
this._loadMiddlewares(koaApp, preMiddleware, 'pre');
|
|
113
|
+
// Core middleware
|
|
114
|
+
koaApp.use((0, koa2_cors_1.default)(corsOptions));
|
|
115
|
+
koaApp.use((0, koa_body_1.default)(config.body));
|
|
116
|
+
koaApp.use(this._dispatch.bind(this));
|
|
117
|
+
// Load post-middleware
|
|
118
|
+
this._loadMiddlewares(koaApp, postMiddleware, 'post');
|
|
119
|
+
let msg = '[socket/http] server is: ' + url;
|
|
120
|
+
const listenOpt = { host: config.host, port: config.port };
|
|
121
|
+
if (isHttps) {
|
|
122
|
+
const server = https_1.default.createServer(sslOptions, koaApp.callback());
|
|
123
|
+
server.on('error', (err) => {
|
|
124
|
+
index_js_1.coreLogger.error(`[socket/http] https server error: ${err.message}`);
|
|
125
|
+
});
|
|
126
|
+
server.listen(listenOpt, () => {
|
|
127
|
+
index_js_1.coreLogger.info(msg);
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
const server = koaApp.listen(listenOpt, () => {
|
|
132
|
+
index_js_1.coreLogger.info(msg);
|
|
133
|
+
});
|
|
134
|
+
server.on('error', (err) => {
|
|
135
|
+
index_js_1.coreLogger.error(`[socket/http] http server error: ${err.message}`);
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
this.httpApp = koaApp;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Core routing dispatch middleware
|
|
142
|
+
*
|
|
143
|
+
* Maps HTTP request paths to controller methods:
|
|
144
|
+
* 1. Remove leading '/' from path
|
|
145
|
+
* 2. Check if path is in filter list (e.g., favicon.ico)
|
|
146
|
+
* 3. Ensure path starts with 'controller'
|
|
147
|
+
* 4. Find and call controller method via resolveControllerFn
|
|
148
|
+
* 5. GET requests pass query params, POST requests pass body params
|
|
149
|
+
*
|
|
150
|
+
* Error handling: When controller method throws an exception, returns 500 + { error: 'Internal Server Error' }
|
|
151
|
+
*/
|
|
152
|
+
async _dispatch(ctx, next) {
|
|
153
|
+
const controller = (0, index_js_3.getController)();
|
|
154
|
+
const { filterRequest } = (0, index_js_4.getConfig)().httpServer;
|
|
155
|
+
let uriPath = ctx.request.path;
|
|
156
|
+
const method = ctx.request.method;
|
|
157
|
+
let params = ctx.request.query;
|
|
158
|
+
// Deep copy query object to avoid Express/Koa proxy object issues
|
|
159
|
+
params = (0, type_check_js_1.isObject)(params) ? JSON.parse(JSON.stringify(params)) : {};
|
|
160
|
+
const body = ctx.request.body;
|
|
161
|
+
ctx.response.status = 200;
|
|
162
|
+
try {
|
|
163
|
+
// Remove leading '/'
|
|
164
|
+
if (uriPath.indexOf('/') === 0) {
|
|
165
|
+
uriPath = uriPath.substring(1);
|
|
166
|
+
}
|
|
167
|
+
// Filter requests that don't need routing
|
|
168
|
+
if (filterRequest.uris.includes(uriPath)) {
|
|
169
|
+
ctx.response.body = filterRequest.returnData;
|
|
170
|
+
await next();
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
// Automatically add 'controller' prefix
|
|
174
|
+
if (uriPath.slice(0, 10) !== 'controller') {
|
|
175
|
+
uriPath = 'controller/' + uriPath;
|
|
176
|
+
}
|
|
177
|
+
const cmd = uriPath.split('/').join(this.channelSeparator);
|
|
178
|
+
debugLog('[request] uri %s', cmd);
|
|
179
|
+
// GET uses query, POST uses body
|
|
180
|
+
const args = method === 'POST' ? body : params;
|
|
181
|
+
const fn = (0, utils_js_1.resolveControllerFn)(controller, cmd, this.channelSeparator);
|
|
182
|
+
if (!fn)
|
|
183
|
+
throw new Error('function not exists');
|
|
184
|
+
const result = await fn.call(controller, args, ctx);
|
|
185
|
+
ctx.response.body = result;
|
|
186
|
+
}
|
|
187
|
+
catch (err) {
|
|
188
|
+
index_js_1.coreLogger.error('[httpServer] throw error:', err);
|
|
189
|
+
ctx.response.status = 500;
|
|
190
|
+
ctx.response.body = { error: 'Internal Server Error' };
|
|
191
|
+
// Attach original error to ctx for downstream error-reporting middleware
|
|
192
|
+
ctx.__ee_error = err;
|
|
193
|
+
}
|
|
194
|
+
await next();
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Get Koa application instance
|
|
198
|
+
*
|
|
199
|
+
* @returns Koa instance, or undefined if HTTP service is not enabled
|
|
200
|
+
*/
|
|
201
|
+
getHttpApp() {
|
|
202
|
+
return this.httpApp;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Set up Koa error handler
|
|
206
|
+
*
|
|
207
|
+
* @param app - Koa application instance
|
|
208
|
+
* @param errorHandler - Error handler function that receives an Error parameter
|
|
209
|
+
*/
|
|
210
|
+
_setupErrorHandler(app, errorHandler) {
|
|
211
|
+
if ((0, type_check_js_1.isFunction)(errorHandler)) {
|
|
212
|
+
app.on('error', errorHandler);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Load pre/post middleware
|
|
217
|
+
*
|
|
218
|
+
* Middleware can be factory functions (called to return Koa middleware) or direct middleware functions.
|
|
219
|
+
* Invalid middleware will be skipped with a warning.
|
|
220
|
+
*
|
|
221
|
+
* @param app - Koa application instance
|
|
222
|
+
* @param middlewares - Middleware array
|
|
223
|
+
* @param type - Type identifier (pre/post), used for warning messages
|
|
224
|
+
*/
|
|
225
|
+
_loadMiddlewares(app, middlewares = [], type = 'pre') {
|
|
226
|
+
if ((0, type_check_js_1.isArray)(middlewares)) {
|
|
227
|
+
middlewares.forEach((middleware) => {
|
|
228
|
+
if ((0, type_check_js_1.isFunction)(middleware)) {
|
|
229
|
+
// middleware is a factory function, called to return (ctx, next) => {} style middleware
|
|
230
|
+
app.use(middleware());
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
index_js_1.coreLogger.warn(`[ee-core/httpServer] Invalid ${type} middleware detected, skipping.`);
|
|
234
|
+
}
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
exports.HttpServer = HttpServer;
|
|
240
|
+
//# sourceMappingURL=httpServer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpServer.js","sourceRoot":"","sources":["../../../src/socket/httpServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module socket
|
|
3
|
+
* @description Communication service module entry point. Provides creation and management of three communication modes:
|
|
4
|
+
*
|
|
5
|
+
* - SocketServer: SocketIO server for third-party software communication via WebSocket
|
|
6
|
+
* - HttpServer: HTTP/HTTPS server for RESTful API calls
|
|
7
|
+
* - IpcServer: Electron IPC server for renderer process communication via ipcRenderer
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* - loadSocket(): Called during framework startup to create and initialize all communication services
|
|
11
|
+
* - getSocketServer() / getHttpServer() / getIpcServer(): Get service instances
|
|
12
|
+
*/
|
|
13
|
+
export { SocketServer } from './socketServer.js';
|
|
14
|
+
export { HttpServer } from './httpServer.js';
|
|
15
|
+
export { IpcServer } from './ipcServer.js';
|
|
16
|
+
import { Server as IoServer } from 'socket.io';
|
|
17
|
+
import IoClient from 'socket.io-client';
|
|
18
|
+
import Koa from 'koa';
|
|
19
|
+
import { SocketServer } from './socketServer.js';
|
|
20
|
+
import { HttpServer } from './httpServer.js';
|
|
21
|
+
import { IpcServer } from './ipcServer.js';
|
|
22
|
+
export { Koa, IoServer, IoClient };
|
|
23
|
+
/**
|
|
24
|
+
* Create SocketIO server
|
|
25
|
+
*
|
|
26
|
+
* @returns SocketServer instance
|
|
27
|
+
*/
|
|
28
|
+
export declare function createSocketServer(): Promise<SocketServer>;
|
|
29
|
+
/**
|
|
30
|
+
* Get SocketIO server instance
|
|
31
|
+
*/
|
|
32
|
+
export declare function getSocketServer(): SocketServer | null;
|
|
33
|
+
/**
|
|
34
|
+
* Create HTTP server
|
|
35
|
+
*
|
|
36
|
+
* @returns HttpServer instance
|
|
37
|
+
*/
|
|
38
|
+
export declare function createHttpServer(): Promise<HttpServer>;
|
|
39
|
+
/**
|
|
40
|
+
* Get HTTP server instance
|
|
41
|
+
*/
|
|
42
|
+
export declare function getHttpServer(): HttpServer | null;
|
|
43
|
+
/**
|
|
44
|
+
* Create IPC server
|
|
45
|
+
*
|
|
46
|
+
* @returns IpcServer instance
|
|
47
|
+
*/
|
|
48
|
+
export declare function createIpcServer(): IpcServer;
|
|
49
|
+
/**
|
|
50
|
+
* Get IPC server instance
|
|
51
|
+
*/
|
|
52
|
+
export declare function getIpcServer(): IpcServer | null;
|
|
53
|
+
/**
|
|
54
|
+
* Load and initialize all communication services
|
|
55
|
+
*
|
|
56
|
+
* Created in order: SocketIO → HTTP → IPC
|
|
57
|
+
* Called by Application.run() during the framework startup flow.
|
|
58
|
+
*/
|
|
59
|
+
export declare function loadSocket(): Promise<void>;
|
|
60
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/socket/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAanC;;;;GAIG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,YAAY,CAAC,CAGhE;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAErD;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC,CAG5D;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,UAAU,GAAG,IAAI,CAEjD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,SAAS,CAG3C;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,SAAS,GAAG,IAAI,CAE/C;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAIhD"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.IoClient = exports.IoServer = exports.Koa = exports.IpcServer = exports.HttpServer = exports.SocketServer = void 0;
|
|
7
|
+
exports.createSocketServer = createSocketServer;
|
|
8
|
+
exports.getSocketServer = getSocketServer;
|
|
9
|
+
exports.createHttpServer = createHttpServer;
|
|
10
|
+
exports.getHttpServer = getHttpServer;
|
|
11
|
+
exports.createIpcServer = createIpcServer;
|
|
12
|
+
exports.getIpcServer = getIpcServer;
|
|
13
|
+
exports.loadSocket = loadSocket;
|
|
14
|
+
/**
|
|
15
|
+
* @module socket
|
|
16
|
+
* @description Communication service module entry point. Provides creation and management of three communication modes:
|
|
17
|
+
*
|
|
18
|
+
* - SocketServer: SocketIO server for third-party software communication via WebSocket
|
|
19
|
+
* - HttpServer: HTTP/HTTPS server for RESTful API calls
|
|
20
|
+
* - IpcServer: Electron IPC server for renderer process communication via ipcRenderer
|
|
21
|
+
*
|
|
22
|
+
* Usage:
|
|
23
|
+
* - loadSocket(): Called during framework startup to create and initialize all communication services
|
|
24
|
+
* - getSocketServer() / getHttpServer() / getIpcServer(): Get service instances
|
|
25
|
+
*/
|
|
26
|
+
var socketServer_js_1 = require("./socketServer.js");
|
|
27
|
+
Object.defineProperty(exports, "SocketServer", { enumerable: true, get: function () { return socketServer_js_1.SocketServer; } });
|
|
28
|
+
var httpServer_js_1 = require("./httpServer.js");
|
|
29
|
+
Object.defineProperty(exports, "HttpServer", { enumerable: true, get: function () { return httpServer_js_1.HttpServer; } });
|
|
30
|
+
var ipcServer_js_1 = require("./ipcServer.js");
|
|
31
|
+
Object.defineProperty(exports, "IpcServer", { enumerable: true, get: function () { return ipcServer_js_1.IpcServer; } });
|
|
32
|
+
const socket_io_1 = require("socket.io");
|
|
33
|
+
Object.defineProperty(exports, "IoServer", { enumerable: true, get: function () { return socket_io_1.Server; } });
|
|
34
|
+
const socket_io_client_1 = __importDefault(require("socket.io-client"));
|
|
35
|
+
exports.IoClient = socket_io_client_1.default;
|
|
36
|
+
const koa_1 = __importDefault(require("koa"));
|
|
37
|
+
exports.Koa = koa_1.default;
|
|
38
|
+
const socketServer_js_2 = require("./socketServer.js");
|
|
39
|
+
const httpServer_js_2 = require("./httpServer.js");
|
|
40
|
+
const ipcServer_js_2 = require("./ipcServer.js");
|
|
41
|
+
/** Service instance storage */
|
|
42
|
+
const Instance = {
|
|
43
|
+
socketServer: null,
|
|
44
|
+
httpServer: null,
|
|
45
|
+
ipcServer: null,
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Create SocketIO server
|
|
49
|
+
*
|
|
50
|
+
* @returns SocketServer instance
|
|
51
|
+
*/
|
|
52
|
+
async function createSocketServer() {
|
|
53
|
+
Instance.socketServer = await socketServer_js_2.SocketServer.create();
|
|
54
|
+
return Instance.socketServer;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Get SocketIO server instance
|
|
58
|
+
*/
|
|
59
|
+
function getSocketServer() {
|
|
60
|
+
return Instance.socketServer;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Create HTTP server
|
|
64
|
+
*
|
|
65
|
+
* @returns HttpServer instance
|
|
66
|
+
*/
|
|
67
|
+
async function createHttpServer() {
|
|
68
|
+
Instance.httpServer = await httpServer_js_2.HttpServer.create();
|
|
69
|
+
return Instance.httpServer;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Get HTTP server instance
|
|
73
|
+
*/
|
|
74
|
+
function getHttpServer() {
|
|
75
|
+
return Instance.httpServer;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Create IPC server
|
|
79
|
+
*
|
|
80
|
+
* @returns IpcServer instance
|
|
81
|
+
*/
|
|
82
|
+
function createIpcServer() {
|
|
83
|
+
Instance.ipcServer = new ipcServer_js_2.IpcServer();
|
|
84
|
+
return Instance.ipcServer;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Get IPC server instance
|
|
88
|
+
*/
|
|
89
|
+
function getIpcServer() {
|
|
90
|
+
return Instance.ipcServer;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Load and initialize all communication services
|
|
94
|
+
*
|
|
95
|
+
* Created in order: SocketIO → HTTP → IPC
|
|
96
|
+
* Called by Application.run() during the framework startup flow.
|
|
97
|
+
*/
|
|
98
|
+
async function loadSocket() {
|
|
99
|
+
await createSocketServer();
|
|
100
|
+
await createHttpServer();
|
|
101
|
+
createIpcServer();
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/socket/index.ts"],"names":[],"mappings":";;;;;;AAyCA,gDAGC;AAKD,0CAEC;AAOD,4CAGC;AAKD,sCAEC;AAOD,0CAGC;AAKD,oCAEC;AAQD,gCAIC;AAjGD;;;;;;;;;;;GAWG;AACH,qDAAiD;AAAxC,+GAAA,YAAY,OAAA;AACrB,iDAA6C;AAApC,2GAAA,UAAU,OAAA;AACnB,+CAA2C;AAAlC,yGAAA,SAAS,OAAA;AAElB,yCAA+C;AAOjC,yFAPK,kBAAQ,OAOL;AANtB,wEAAwC;AAMhB,mBANjB,0BAAQ,CAMiB;AALhC,8CAAsB;AAKb,cALF,aAAG,CAKE;AAJZ,uDAAiD;AACjD,mDAA6C;AAC7C,iDAA2C;AAI3C,+BAA+B;AAC/B,MAAM,QAAQ,GAIV;IACF,YAAY,EAAE,IAAI;IAClB,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF;;;;GAIG;AACI,KAAK,UAAU,kBAAkB;IACtC,QAAQ,CAAC,YAAY,GAAG,MAAM,8BAAY,CAAC,MAAM,EAAE,CAAC;IACpD,OAAO,QAAQ,CAAC,YAAY,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe;IAC7B,OAAO,QAAQ,CAAC,YAAY,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,gBAAgB;IACpC,QAAQ,CAAC,UAAU,GAAG,MAAM,0BAAU,CAAC,MAAM,EAAE,CAAC;IAChD,OAAO,QAAQ,CAAC,UAAU,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa;IAC3B,OAAO,QAAQ,CAAC,UAAU,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,SAAgB,eAAe;IAC7B,QAAQ,CAAC,SAAS,GAAG,IAAI,wBAAS,EAAE,CAAC;IACrC,OAAO,QAAQ,CAAC,SAAS,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY;IAC1B,OAAO,QAAQ,CAAC,SAAS,CAAC;AAC5B,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,UAAU;IAC9B,MAAM,kBAAkB,EAAE,CAAC;IAC3B,MAAM,gBAAgB,EAAE,CAAC;IACzB,eAAe,EAAE,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IpcServer - IPC server
|
|
3
|
+
*
|
|
4
|
+
* Traverses the controller object tree and registers ipcMain channel handlers for each exported method.
|
|
5
|
+
* Uses recursive loop() to traverse nested controller directory structures.
|
|
6
|
+
*/
|
|
7
|
+
export declare class IpcServer {
|
|
8
|
+
/** Channel separator, default '/' */
|
|
9
|
+
channelSeparator: string;
|
|
10
|
+
/** Controller directory name (used to generate property path prefix) */
|
|
11
|
+
directory: string;
|
|
12
|
+
constructor();
|
|
13
|
+
/**
|
|
14
|
+
* Initialize: traverse controller tree and register all IPC channels
|
|
15
|
+
*/
|
|
16
|
+
init(): void;
|
|
17
|
+
/**
|
|
18
|
+
* Recursively traverse the controller object tree
|
|
19
|
+
*
|
|
20
|
+
* Distinguished by EXPORTS symbol marker:
|
|
21
|
+
* - Objects with EXPORTS marker → leaf nodes (controller method collections), call register()
|
|
22
|
+
* - Objects without marker → intermediate nodes (directory/namespace), continue recursion
|
|
23
|
+
*
|
|
24
|
+
* @param obj - Current object being traversed
|
|
25
|
+
* @param pathname - Current property path
|
|
26
|
+
*/
|
|
27
|
+
loop(obj: Record<string, unknown>, pathname: string): void;
|
|
28
|
+
/**
|
|
29
|
+
* Register controller methods as IPC channel handlers
|
|
30
|
+
*
|
|
31
|
+
* Registers two handlers for each method:
|
|
32
|
+
* 1. ipcMain.on (synchronous model): Sets event.returnValue, supports async methods
|
|
33
|
+
* 2. ipcMain.handle (asynchronous model): Returns Promise, recommended
|
|
34
|
+
*
|
|
35
|
+
* @param exportObj - Controller method collection object
|
|
36
|
+
* @param propertyChain - Property path (e.g., 'controller.user')
|
|
37
|
+
*/
|
|
38
|
+
register(exportObj: Record<string, unknown>, propertyChain: string): void;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=ipcServer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ipcServer.d.ts","sourceRoot":"","sources":["../../../src/socket/ipcServer.ts"],"names":[],"mappings":"AA4BA;;;;;GAKG;AACH,qBAAa,SAAS;IACpB,qCAAqC;IACrC,gBAAgB,EAAE,MAAM,CAAC;IACzB,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;;IAQlB;;OAEG;IACH,IAAI,IAAI,IAAI;IAKZ;;;;;;;;;OASG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAgB1D;;;;;;;;;OASG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;CAiC1E"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.IpcServer = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* @module socket/ipcServer
|
|
9
|
+
* @description Electron IPC server. Registers controller methods as IPC channel handlers,
|
|
10
|
+
* enabling renderer processes to call main process controller methods via ipcRenderer.
|
|
11
|
+
*
|
|
12
|
+
* Supports two communication models:
|
|
13
|
+
* - send/on model (synchronous): Renderer uses ipcRenderer.sendSync(),
|
|
14
|
+
* main process returns results via event.returnValue.
|
|
15
|
+
* Supports both sync and async controller methods (Electron's sendSync enters a nested
|
|
16
|
+
* message loop that processes microtasks, so event.returnValue set after await is received).
|
|
17
|
+
*
|
|
18
|
+
* - invoke/handle model (asynchronous): Renderer uses ipcRenderer.invoke(),
|
|
19
|
+
* main process returns a Promise via ipcMain.handle().
|
|
20
|
+
* ✅ Recommended model, supports both synchronous and asynchronous controller methods.
|
|
21
|
+
*
|
|
22
|
+
* Channel naming rule: Replace '.' in controller path with channelSeparator (default '/')
|
|
23
|
+
* Example: controller.user.add → controller/user/add
|
|
24
|
+
*/
|
|
25
|
+
const debug_1 = __importDefault(require("debug"));
|
|
26
|
+
const electron_1 = require("electron");
|
|
27
|
+
const index_js_1 = require("../log/index.js");
|
|
28
|
+
const index_js_2 = require("../controller/index.js");
|
|
29
|
+
const file_loader_js_1 = require("../core/loader/file_loader.js");
|
|
30
|
+
const index_js_3 = require("../config/index.js");
|
|
31
|
+
const utils_js_1 = require("./utils.js");
|
|
32
|
+
const debugLog = (0, debug_1.default)('ee-core:socket:ipcServer');
|
|
33
|
+
/**
|
|
34
|
+
* IpcServer - IPC server
|
|
35
|
+
*
|
|
36
|
+
* Traverses the controller object tree and registers ipcMain channel handlers for each exported method.
|
|
37
|
+
* Uses recursive loop() to traverse nested controller directory structures.
|
|
38
|
+
*/
|
|
39
|
+
class IpcServer {
|
|
40
|
+
constructor() {
|
|
41
|
+
this.channelSeparator = (0, index_js_3.getConfig)().mainServer.channelSeparator || '/';
|
|
42
|
+
this.directory = 'controller';
|
|
43
|
+
this.init();
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Initialize: traverse controller tree and register all IPC channels
|
|
47
|
+
*/
|
|
48
|
+
init() {
|
|
49
|
+
const controller = (0, index_js_2.getController)();
|
|
50
|
+
this.loop(controller, this.directory);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Recursively traverse the controller object tree
|
|
54
|
+
*
|
|
55
|
+
* Distinguished by EXPORTS symbol marker:
|
|
56
|
+
* - Objects with EXPORTS marker → leaf nodes (controller method collections), call register()
|
|
57
|
+
* - Objects without marker → intermediate nodes (directory/namespace), continue recursion
|
|
58
|
+
*
|
|
59
|
+
* @param obj - Current object being traversed
|
|
60
|
+
* @param pathname - Current property path
|
|
61
|
+
*/
|
|
62
|
+
loop(obj, pathname) {
|
|
63
|
+
const keys = Object.keys(obj);
|
|
64
|
+
for (const key of keys) {
|
|
65
|
+
if (key === 'constructor')
|
|
66
|
+
continue;
|
|
67
|
+
const subObj = obj[key];
|
|
68
|
+
const propertyChain = pathname + '.' + key;
|
|
69
|
+
// EXPORTS symbol marker indicates this is a controller method collection (leaf node)
|
|
70
|
+
if (subObj && subObj[file_loader_js_1.EXPORTS] === true) {
|
|
71
|
+
this.register(subObj, propertyChain);
|
|
72
|
+
}
|
|
73
|
+
else if (typeof subObj === 'object') {
|
|
74
|
+
this.loop(subObj, propertyChain);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Register controller methods as IPC channel handlers
|
|
80
|
+
*
|
|
81
|
+
* Registers two handlers for each method:
|
|
82
|
+
* 1. ipcMain.on (synchronous model): Sets event.returnValue, supports async methods
|
|
83
|
+
* 2. ipcMain.handle (asynchronous model): Returns Promise, recommended
|
|
84
|
+
*
|
|
85
|
+
* @param exportObj - Controller method collection object
|
|
86
|
+
* @param propertyChain - Property path (e.g., 'controller.user')
|
|
87
|
+
*/
|
|
88
|
+
register(exportObj, propertyChain) {
|
|
89
|
+
const controller = (0, index_js_2.getController)();
|
|
90
|
+
const keys = Object.keys(exportObj);
|
|
91
|
+
for (const key of keys) {
|
|
92
|
+
const tmpChannel = `${propertyChain}.${key}`;
|
|
93
|
+
const channel = tmpChannel.split('.').join(this.channelSeparator);
|
|
94
|
+
debugLog('[register] channel %s', channel);
|
|
95
|
+
// send/on model (synchronous)
|
|
96
|
+
// Electron's sendSync enters a nested message loop that processes microtasks,
|
|
97
|
+
// so event.returnValue set after await IS received by sendSync.
|
|
98
|
+
electron_1.ipcMain.on(channel, async (event, params) => {
|
|
99
|
+
try {
|
|
100
|
+
const fn = (0, utils_js_1.resolveControllerFn)(controller, channel, this.channelSeparator);
|
|
101
|
+
if (!fn)
|
|
102
|
+
return;
|
|
103
|
+
const result = await fn.call(controller, params, event);
|
|
104
|
+
event.returnValue = result;
|
|
105
|
+
}
|
|
106
|
+
catch (e) {
|
|
107
|
+
index_js_1.coreLogger.error('[socket/IpcServer] send/on throw error:', e);
|
|
108
|
+
// Send error info back so renderer can distinguish errors from legitimate undefined
|
|
109
|
+
event.returnValue = { __EE_ERROR__: true, message: e instanceof Error ? e.message : String(e) };
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
// invoke/handle model (asynchronous, recommended)
|
|
113
|
+
// Throw error so renderer's ipcRenderer.invoke() rejects, allowing try/catch on renderer side
|
|
114
|
+
electron_1.ipcMain.handle(channel, async (event, params) => {
|
|
115
|
+
const fn = (0, utils_js_1.resolveControllerFn)(controller, channel, this.channelSeparator);
|
|
116
|
+
if (!fn)
|
|
117
|
+
return undefined;
|
|
118
|
+
return await fn.call(controller, params, event);
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
exports.IpcServer = IpcServer;
|
|
124
|
+
//# sourceMappingURL=ipcServer.js.map
|