ee-core 5.0.0-beta.2 → 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 +36 -1
- package/dist/cjs/app/application.d.ts.map +1 -1
- package/dist/cjs/app/application.js +49 -2
- package/dist/cjs/app/application.js.map +1 -1
- package/dist/cjs/app/boot.d.ts +56 -1
- package/dist/cjs/app/boot.d.ts.map +1 -1
- package/dist/cjs/app/boot.js +74 -11
- package/dist/cjs/app/boot.js.map +1 -1
- package/dist/cjs/app/dir.d.ts +10 -0
- package/dist/cjs/app/dir.d.ts.map +1 -1
- package/dist/cjs/app/dir.js +71 -10
- package/dist/cjs/app/dir.js.map +1 -1
- package/dist/cjs/app/events.d.ts +58 -2
- package/dist/cjs/app/events.d.ts.map +1 -1
- package/dist/cjs/app/events.js +92 -12
- package/dist/cjs/app/events.js.map +1 -1
- package/dist/cjs/config/config_loader.d.ts +44 -0
- package/dist/cjs/config/config_loader.d.ts.map +1 -1
- package/dist/cjs/config/config_loader.js +82 -1
- package/dist/cjs/config/config_loader.js.map +1 -1
- package/dist/cjs/config/default_config.d.ts +5 -0
- package/dist/cjs/config/default_config.d.ts.map +1 -1
- package/dist/cjs/config/default_config.js +98 -11
- package/dist/cjs/config/default_config.js.map +1 -1
- package/dist/cjs/config/index.d.ts +31 -1
- package/dist/cjs/config/index.d.ts.map +1 -1
- package/dist/cjs/config/index.js +52 -0
- package/dist/cjs/config/index.js.map +1 -1
- package/dist/cjs/const/channel.d.ts +17 -0
- package/dist/cjs/const/channel.d.ts.map +1 -1
- package/dist/cjs/const/channel.js +17 -0
- package/dist/cjs/const/channel.js.map +1 -1
- package/dist/cjs/controller/controller_loader.d.ts +20 -1
- package/dist/cjs/controller/controller_loader.d.ts.map +1 -1
- package/dist/cjs/controller/controller_loader.js +89 -9
- package/dist/cjs/controller/controller_loader.js.map +1 -1
- package/dist/cjs/controller/index.d.ts +32 -0
- package/dist/cjs/controller/index.d.ts.map +1 -1
- package/dist/cjs/controller/index.js +66 -0
- package/dist/cjs/controller/index.js.map +1 -1
- package/dist/cjs/core/loader/file_loader.d.ts +78 -27
- package/dist/cjs/core/loader/file_loader.d.ts.map +1 -1
- package/dist/cjs/core/loader/file_loader.js +194 -68
- package/dist/cjs/core/loader/file_loader.js.map +1 -1
- package/dist/cjs/core/utils/index.d.ts +57 -2
- package/dist/cjs/core/utils/index.d.ts.map +1 -1
- package/dist/cjs/core/utils/index.js +120 -12
- package/dist/cjs/core/utils/index.js.map +1 -1
- package/dist/cjs/core/utils/timing.d.ts +47 -0
- package/dist/cjs/core/utils/timing.d.ts.map +1 -1
- package/dist/cjs/core/utils/timing.js +42 -2
- package/dist/cjs/core/utils/timing.js.map +1 -1
- package/dist/cjs/cross/cross.d.ts +81 -2
- package/dist/cjs/cross/cross.d.ts.map +1 -1
- package/dist/cjs/cross/cross.js +86 -16
- package/dist/cjs/cross/cross.js.map +1 -1
- package/dist/cjs/cross/crossProcess.d.ts +85 -14
- package/dist/cjs/cross/crossProcess.d.ts.map +1 -1
- package/dist/cjs/cross/crossProcess.js +85 -13
- package/dist/cjs/cross/crossProcess.js.map +1 -1
- package/dist/cjs/electron/app/index.d.ts +17 -1
- package/dist/cjs/electron/app/index.d.ts.map +1 -1
- package/dist/cjs/electron/app/index.js +27 -3
- package/dist/cjs/electron/app/index.js.map +1 -1
- package/dist/cjs/electron/index.d.ts +6 -0
- package/dist/cjs/electron/index.d.ts.map +1 -1
- package/dist/cjs/electron/index.js +16 -1
- package/dist/cjs/electron/index.js.map +1 -1
- package/dist/cjs/electron/window/index.d.ts +37 -0
- package/dist/cjs/electron/window/index.d.ts.map +1 -1
- package/dist/cjs/electron/window/index.js +144 -88
- package/dist/cjs/electron/window/index.js.map +1 -1
- package/dist/cjs/exception/index.d.ts +12 -0
- package/dist/cjs/exception/index.d.ts.map +1 -1
- package/dist/cjs/exception/index.js +67 -9
- package/dist/cjs/exception/index.js.map +1 -1
- package/dist/cjs/html/index.d.ts +19 -0
- package/dist/cjs/html/index.d.ts.map +1 -1
- package/dist/cjs/html/index.js +42 -0
- package/dist/cjs/html/index.js.map +1 -1
- package/dist/cjs/index.d.ts +35 -7
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +127 -80
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/jobs/child/app.js +86 -25
- package/dist/cjs/jobs/child/app.js.map +1 -1
- package/dist/cjs/jobs/child/index.d.ts +5 -5
- package/dist/cjs/jobs/child/index.js +5 -5
- package/dist/cjs/jobs/child/jobProcess.d.ts +68 -0
- package/dist/cjs/jobs/child/jobProcess.d.ts.map +1 -1
- package/dist/cjs/jobs/child/jobProcess.js +86 -11
- package/dist/cjs/jobs/child/jobProcess.js.map +1 -1
- package/dist/cjs/jobs/child-pool/index.d.ts +96 -0
- package/dist/cjs/jobs/child-pool/index.d.ts.map +1 -1
- package/dist/cjs/jobs/child-pool/index.js +91 -4
- package/dist/cjs/jobs/child-pool/index.js.map +1 -1
- package/dist/cjs/jobs/index.d.ts +10 -0
- package/dist/cjs/jobs/index.d.ts.map +1 -1
- package/dist/cjs/jobs/index.js +10 -0
- package/dist/cjs/jobs/index.js.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts +2 -0
- package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/index.js +6 -0
- package/dist/cjs/jobs/load-balancer/algorithm/index.js.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.js +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/polling.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/polling.js +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/random.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/random.js +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/specify.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/specify.js +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weights.js +4 -8
- package/dist/cjs/jobs/load-balancer/algorithm/weights.js.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js +6 -11
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.js +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.js +1 -1
- package/dist/cjs/jobs/load-balancer/consts.d.ts +22 -0
- package/dist/cjs/jobs/load-balancer/consts.d.ts.map +1 -1
- package/dist/cjs/jobs/load-balancer/consts.js +22 -0
- package/dist/cjs/jobs/load-balancer/consts.js.map +1 -1
- package/dist/cjs/jobs/load-balancer/index.d.ts +18 -18
- package/dist/cjs/jobs/load-balancer/index.js +18 -18
- package/dist/cjs/jobs/load-balancer/scheduler.d.ts +3 -3
- package/dist/cjs/jobs/load-balancer/scheduler.js +3 -3
- package/dist/cjs/jobs/load-balancer/types.d.ts +21 -0
- package/dist/cjs/jobs/load-balancer/types.d.ts.map +1 -1
- package/dist/cjs/jobs/load-balancer/types.js +4 -0
- package/dist/cjs/jobs/load-balancer/types.js.map +1 -1
- 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 +52 -0
- package/dist/cjs/loader/index.d.ts.map +1 -1
- package/dist/cjs/loader/index.js +79 -10
- package/dist/cjs/loader/index.js.map +1 -1
- package/dist/cjs/log/index.d.ts +41 -0
- package/dist/cjs/log/index.d.ts.map +1 -1
- package/dist/cjs/log/index.js +59 -20
- package/dist/cjs/log/index.js.map +1 -1
- package/dist/cjs/log/logger.d.ts +26 -0
- package/dist/cjs/log/logger.d.ts.map +1 -1
- package/dist/cjs/log/logger.js +122 -2
- package/dist/cjs/log/logger.js.map +1 -1
- package/dist/cjs/message/childMessage.d.ts +50 -0
- package/dist/cjs/message/childMessage.d.ts.map +1 -1
- package/dist/cjs/message/childMessage.js +83 -2
- package/dist/cjs/message/childMessage.js.map +1 -1
- package/dist/cjs/ps/index.d.ts +112 -0
- package/dist/cjs/ps/index.d.ts.map +1 -1
- package/dist/cjs/ps/index.js +175 -41
- package/dist/cjs/ps/index.js.map +1 -1
- package/dist/cjs/socket/httpServer.d.ts +58 -5
- package/dist/cjs/socket/httpServer.d.ts.map +1 -1
- package/dist/cjs/socket/httpServer.js +94 -28
- package/dist/cjs/socket/httpServer.js.map +1 -1
- package/dist/cjs/socket/index.d.ts +45 -3
- package/dist/cjs/socket/index.d.ts.map +1 -1
- package/dist/cjs/socket/index.js +50 -14
- package/dist/cjs/socket/index.js.map +1 -1
- package/dist/cjs/socket/ipcServer.d.ts +31 -1
- package/dist/cjs/socket/ipcServer.d.ts.map +1 -1
- package/dist/cjs/socket/ipcServer.js +60 -43
- package/dist/cjs/socket/ipcServer.js.map +1 -1
- package/dist/cjs/socket/socketServer.d.ts +32 -1
- package/dist/cjs/socket/socketServer.d.ts.map +1 -1
- package/dist/cjs/socket/socketServer.js +53 -14
- package/dist/cjs/socket/socketServer.js.map +1 -1
- 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/sqliteStorage.d.ts +93 -4
- package/dist/cjs/storage/sqliteStorage.d.ts.map +1 -1
- package/dist/cjs/storage/sqliteStorage.js +121 -9
- package/dist/cjs/storage/sqliteStorage.js.map +1 -1
- package/dist/cjs/types/index.d.ts +373 -5
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/cjs/utils/extend.d.ts +44 -1
- package/dist/cjs/utils/extend.d.ts.map +1 -1
- package/dist/cjs/utils/extend.js +67 -19
- package/dist/cjs/utils/extend.js.map +1 -1
- package/dist/cjs/utils/helper.d.ts +154 -1
- package/dist/cjs/utils/helper.d.ts.map +1 -1
- package/dist/cjs/utils/helper.js +205 -28
- package/dist/cjs/utils/helper.js.map +1 -1
- package/dist/cjs/utils/index.d.ts +93 -0
- package/dist/cjs/utils/index.d.ts.map +1 -1
- package/dist/cjs/utils/index.js +136 -12
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/ip.d.ts +29 -0
- package/dist/cjs/utils/ip.d.ts.map +1 -1
- package/dist/cjs/utils/ip.js +95 -4
- package/dist/cjs/utils/ip.js.map +1 -1
- package/dist/cjs/utils/is.d.ts +123 -0
- package/dist/cjs/utils/is.d.ts.map +1 -1
- package/dist/cjs/utils/is.js +126 -14
- package/dist/cjs/utils/is.js.map +1 -1
- package/dist/cjs/utils/json.d.ts +54 -0
- package/dist/cjs/utils/json.d.ts.map +1 -1
- package/dist/cjs/utils/json.js +62 -0
- package/dist/cjs/utils/json.js.map +1 -1
- package/dist/cjs/utils/pargv.d.ts +51 -0
- package/dist/cjs/utils/pargv.d.ts.map +1 -1
- package/dist/cjs/utils/pargv.js +141 -3
- package/dist/cjs/utils/pargv.js.map +1 -1
- package/dist/cjs/utils/port/index.d.ts +42 -0
- package/dist/cjs/utils/port/index.d.ts.map +1 -1
- package/dist/cjs/utils/port/index.js +130 -7
- package/dist/cjs/utils/port/index.js.map +1 -1
- package/dist/cjs/utils/type_check.d.ts +79 -0
- package/dist/cjs/utils/type_check.d.ts.map +1 -1
- package/dist/cjs/utils/type_check.js +87 -1
- package/dist/cjs/utils/type_check.js.map +1 -1
- package/dist/cjs/utils/wrap.d.ts +26 -0
- package/dist/cjs/utils/wrap.d.ts.map +1 -1
- package/dist/cjs/utils/wrap.js +47 -10
- package/dist/cjs/utils/wrap.js.map +1 -1
- package/dist/esm/app/application.d.ts +36 -1
- package/dist/esm/app/application.d.ts.map +1 -1
- package/dist/esm/app/application.js +49 -2
- package/dist/esm/app/application.js.map +1 -1
- package/dist/esm/app/boot.d.ts +56 -1
- package/dist/esm/app/boot.d.ts.map +1 -1
- package/dist/esm/app/boot.js +74 -11
- package/dist/esm/app/boot.js.map +1 -1
- package/dist/esm/app/dir.d.ts +10 -0
- package/dist/esm/app/dir.d.ts.map +1 -1
- package/dist/esm/app/dir.js +71 -10
- package/dist/esm/app/dir.js.map +1 -1
- package/dist/esm/app/events.d.ts +58 -2
- package/dist/esm/app/events.d.ts.map +1 -1
- package/dist/esm/app/events.js +92 -12
- package/dist/esm/app/events.js.map +1 -1
- package/dist/esm/config/config_loader.d.ts +44 -0
- package/dist/esm/config/config_loader.d.ts.map +1 -1
- package/dist/esm/config/config_loader.js +82 -1
- package/dist/esm/config/config_loader.js.map +1 -1
- package/dist/esm/config/default_config.d.ts +5 -0
- package/dist/esm/config/default_config.d.ts.map +1 -1
- package/dist/esm/config/default_config.js +98 -11
- package/dist/esm/config/default_config.js.map +1 -1
- package/dist/esm/config/index.d.ts +31 -1
- package/dist/esm/config/index.d.ts.map +1 -1
- package/dist/esm/config/index.js +52 -0
- package/dist/esm/config/index.js.map +1 -1
- package/dist/esm/const/channel.d.ts +17 -0
- package/dist/esm/const/channel.d.ts.map +1 -1
- package/dist/esm/const/channel.js +17 -0
- package/dist/esm/const/channel.js.map +1 -1
- package/dist/esm/controller/controller_loader.d.ts +20 -1
- package/dist/esm/controller/controller_loader.d.ts.map +1 -1
- package/dist/esm/controller/controller_loader.js +89 -9
- package/dist/esm/controller/controller_loader.js.map +1 -1
- package/dist/esm/controller/index.d.ts +32 -0
- package/dist/esm/controller/index.d.ts.map +1 -1
- package/dist/esm/controller/index.js +66 -0
- package/dist/esm/controller/index.js.map +1 -1
- package/dist/esm/core/loader/file_loader.d.ts +78 -27
- package/dist/esm/core/loader/file_loader.d.ts.map +1 -1
- package/dist/esm/core/loader/file_loader.js +194 -68
- package/dist/esm/core/loader/file_loader.js.map +1 -1
- package/dist/esm/core/utils/index.d.ts +57 -2
- package/dist/esm/core/utils/index.d.ts.map +1 -1
- package/dist/esm/core/utils/index.js +87 -12
- package/dist/esm/core/utils/index.js.map +1 -1
- package/dist/esm/core/utils/timing.d.ts +47 -0
- package/dist/esm/core/utils/timing.d.ts.map +1 -1
- package/dist/esm/core/utils/timing.js +42 -2
- package/dist/esm/core/utils/timing.js.map +1 -1
- package/dist/esm/cross/cross.d.ts +81 -2
- package/dist/esm/cross/cross.d.ts.map +1 -1
- package/dist/esm/cross/cross.js +86 -16
- package/dist/esm/cross/cross.js.map +1 -1
- package/dist/esm/cross/crossProcess.d.ts +85 -14
- package/dist/esm/cross/crossProcess.d.ts.map +1 -1
- package/dist/esm/cross/crossProcess.js +85 -13
- package/dist/esm/cross/crossProcess.js.map +1 -1
- package/dist/esm/electron/app/index.d.ts +17 -1
- package/dist/esm/electron/app/index.d.ts.map +1 -1
- package/dist/esm/electron/app/index.js +27 -3
- package/dist/esm/electron/app/index.js.map +1 -1
- package/dist/esm/electron/index.d.ts +6 -0
- package/dist/esm/electron/index.d.ts.map +1 -1
- package/dist/esm/electron/index.js +16 -1
- package/dist/esm/electron/index.js.map +1 -1
- package/dist/esm/electron/window/index.d.ts +37 -0
- package/dist/esm/electron/window/index.d.ts.map +1 -1
- package/dist/esm/electron/window/index.js +144 -88
- package/dist/esm/electron/window/index.js.map +1 -1
- package/dist/esm/exception/index.d.ts +12 -0
- package/dist/esm/exception/index.d.ts.map +1 -1
- package/dist/esm/exception/index.js +67 -9
- package/dist/esm/exception/index.js.map +1 -1
- package/dist/esm/html/index.d.ts +19 -0
- package/dist/esm/html/index.d.ts.map +1 -1
- package/dist/esm/html/index.js +42 -0
- package/dist/esm/html/index.js.map +1 -1
- package/dist/esm/index.d.ts +35 -7
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +127 -80
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/jobs/child/app.js +86 -25
- package/dist/esm/jobs/child/app.js.map +1 -1
- package/dist/esm/jobs/child/index.d.ts +5 -5
- package/dist/esm/jobs/child/index.js +5 -5
- package/dist/esm/jobs/child/jobProcess.d.ts +68 -0
- package/dist/esm/jobs/child/jobProcess.d.ts.map +1 -1
- package/dist/esm/jobs/child/jobProcess.js +86 -11
- package/dist/esm/jobs/child/jobProcess.js.map +1 -1
- package/dist/esm/jobs/child-pool/index.d.ts +96 -0
- package/dist/esm/jobs/child-pool/index.d.ts.map +1 -1
- package/dist/esm/jobs/child-pool/index.js +91 -4
- package/dist/esm/jobs/child-pool/index.js.map +1 -1
- package/dist/esm/jobs/index.d.ts +10 -0
- package/dist/esm/jobs/index.d.ts.map +1 -1
- package/dist/esm/jobs/index.js +10 -0
- package/dist/esm/jobs/index.js.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/index.d.ts +2 -0
- package/dist/esm/jobs/load-balancer/algorithm/index.d.ts.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/index.js +6 -0
- package/dist/esm/jobs/load-balancer/algorithm/index.js.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.js +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/polling.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/polling.js +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/random.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/random.js +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/specify.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/specify.js +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weights.js +4 -8
- package/dist/esm/jobs/load-balancer/algorithm/weights.js.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js +6 -11
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.js +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.js +1 -1
- package/dist/esm/jobs/load-balancer/consts.d.ts +22 -0
- package/dist/esm/jobs/load-balancer/consts.d.ts.map +1 -1
- package/dist/esm/jobs/load-balancer/consts.js +22 -0
- package/dist/esm/jobs/load-balancer/consts.js.map +1 -1
- package/dist/esm/jobs/load-balancer/index.d.ts +18 -18
- package/dist/esm/jobs/load-balancer/index.js +18 -18
- package/dist/esm/jobs/load-balancer/scheduler.d.ts +3 -3
- package/dist/esm/jobs/load-balancer/scheduler.js +3 -3
- package/dist/esm/jobs/load-balancer/types.d.ts +21 -0
- package/dist/esm/jobs/load-balancer/types.d.ts.map +1 -1
- package/dist/esm/jobs/load-balancer/types.js +4 -0
- package/dist/esm/jobs/load-balancer/types.js.map +1 -1
- 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 +52 -0
- package/dist/esm/loader/index.d.ts.map +1 -1
- package/dist/esm/loader/index.js +79 -10
- package/dist/esm/loader/index.js.map +1 -1
- package/dist/esm/log/index.d.ts +41 -0
- package/dist/esm/log/index.d.ts.map +1 -1
- package/dist/esm/log/index.js +59 -20
- package/dist/esm/log/index.js.map +1 -1
- package/dist/esm/log/logger.d.ts +26 -0
- package/dist/esm/log/logger.d.ts.map +1 -1
- package/dist/esm/log/logger.js +122 -2
- package/dist/esm/log/logger.js.map +1 -1
- package/dist/esm/message/childMessage.d.ts +50 -0
- package/dist/esm/message/childMessage.d.ts.map +1 -1
- package/dist/esm/message/childMessage.js +83 -2
- package/dist/esm/message/childMessage.js.map +1 -1
- package/dist/esm/ps/index.d.ts +112 -0
- package/dist/esm/ps/index.d.ts.map +1 -1
- package/dist/esm/ps/index.js +175 -41
- package/dist/esm/ps/index.js.map +1 -1
- package/dist/esm/socket/httpServer.d.ts +58 -5
- package/dist/esm/socket/httpServer.d.ts.map +1 -1
- package/dist/esm/socket/httpServer.js +94 -28
- package/dist/esm/socket/httpServer.js.map +1 -1
- package/dist/esm/socket/index.d.ts +45 -3
- package/dist/esm/socket/index.d.ts.map +1 -1
- package/dist/esm/socket/index.js +50 -14
- package/dist/esm/socket/index.js.map +1 -1
- package/dist/esm/socket/ipcServer.d.ts +31 -1
- package/dist/esm/socket/ipcServer.d.ts.map +1 -1
- package/dist/esm/socket/ipcServer.js +60 -43
- package/dist/esm/socket/ipcServer.js.map +1 -1
- package/dist/esm/socket/socketServer.d.ts +32 -1
- package/dist/esm/socket/socketServer.d.ts.map +1 -1
- package/dist/esm/socket/socketServer.js +53 -14
- package/dist/esm/socket/socketServer.js.map +1 -1
- 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/sqliteStorage.d.ts +93 -4
- package/dist/esm/storage/sqliteStorage.d.ts.map +1 -1
- package/dist/esm/storage/sqliteStorage.js +121 -9
- package/dist/esm/storage/sqliteStorage.js.map +1 -1
- package/dist/esm/types/index.d.ts +373 -5
- package/dist/esm/types/index.d.ts.map +1 -1
- package/dist/esm/utils/extend.d.ts +44 -1
- package/dist/esm/utils/extend.d.ts.map +1 -1
- package/dist/esm/utils/extend.js +67 -19
- package/dist/esm/utils/extend.js.map +1 -1
- package/dist/esm/utils/helper.d.ts +154 -1
- package/dist/esm/utils/helper.d.ts.map +1 -1
- package/dist/esm/utils/helper.js +205 -28
- package/dist/esm/utils/helper.js.map +1 -1
- package/dist/esm/utils/index.d.ts +93 -0
- package/dist/esm/utils/index.d.ts.map +1 -1
- package/dist/esm/utils/index.js +136 -12
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/ip.d.ts +29 -0
- package/dist/esm/utils/ip.d.ts.map +1 -1
- package/dist/esm/utils/ip.js +95 -4
- package/dist/esm/utils/ip.js.map +1 -1
- package/dist/esm/utils/is.d.ts +123 -0
- package/dist/esm/utils/is.d.ts.map +1 -1
- package/dist/esm/utils/is.js +126 -14
- package/dist/esm/utils/is.js.map +1 -1
- package/dist/esm/utils/json.d.ts +54 -0
- package/dist/esm/utils/json.d.ts.map +1 -1
- package/dist/esm/utils/json.js +62 -0
- package/dist/esm/utils/json.js.map +1 -1
- package/dist/esm/utils/pargv.d.ts +51 -0
- package/dist/esm/utils/pargv.d.ts.map +1 -1
- package/dist/esm/utils/pargv.js +141 -3
- package/dist/esm/utils/pargv.js.map +1 -1
- package/dist/esm/utils/port/index.d.ts +42 -0
- package/dist/esm/utils/port/index.d.ts.map +1 -1
- package/dist/esm/utils/port/index.js +130 -7
- package/dist/esm/utils/port/index.js.map +1 -1
- package/dist/esm/utils/type_check.d.ts +79 -0
- package/dist/esm/utils/type_check.d.ts.map +1 -1
- package/dist/esm/utils/type_check.js +87 -1
- package/dist/esm/utils/type_check.js.map +1 -1
- package/dist/esm/utils/wrap.d.ts +26 -0
- package/dist/esm/utils/wrap.d.ts.map +1 -1
- package/dist/esm/utils/wrap.js +47 -10
- package/dist/esm/utils/wrap.js.map +1 -1
- package/package.json +13 -13
|
@@ -4,6 +4,25 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
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
|
+
*/
|
|
7
26
|
const debug_1 = __importDefault(require("debug"));
|
|
8
27
|
const assert_1 = __importDefault(require("assert"));
|
|
9
28
|
const type_check_js_1 = require("../utils/type_check.js");
|
|
@@ -18,15 +37,37 @@ const index_js_2 = require("../ps/index.js");
|
|
|
18
37
|
const index_js_3 = require("../controller/index.js");
|
|
19
38
|
const index_js_4 = require("../config/index.js");
|
|
20
39
|
const index_js_5 = require("../utils/port/index.js");
|
|
40
|
+
const utils_js_1 = require("./utils.js");
|
|
21
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
|
+
*/
|
|
22
48
|
class HttpServer {
|
|
23
49
|
constructor() {
|
|
24
50
|
const config = (0, index_js_4.getConfig)();
|
|
25
51
|
this.config = config.httpServer;
|
|
26
52
|
this.channelSeparator = config.mainServer.channelSeparator || '/';
|
|
27
53
|
this.httpApp = undefined;
|
|
28
|
-
this.init();
|
|
29
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
|
+
*/
|
|
30
71
|
async init() {
|
|
31
72
|
if (this.config.enable === false) {
|
|
32
73
|
return;
|
|
@@ -39,12 +80,17 @@ class HttpServer {
|
|
|
39
80
|
this.config.port = port;
|
|
40
81
|
this._create();
|
|
41
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Create Koa application and start HTTP/HTTPS service
|
|
85
|
+
*
|
|
86
|
+
* Loads middleware in order, handles HTTPS configuration, and starts listening.
|
|
87
|
+
*/
|
|
42
88
|
async _create() {
|
|
43
89
|
const config = this.config;
|
|
44
90
|
const koaConfig = config.koaConfig || {};
|
|
45
91
|
const preMiddleware = koaConfig.preMiddleware || [];
|
|
46
92
|
const postMiddleware = koaConfig.postMiddleware || [];
|
|
47
|
-
const errorHandler = koaConfig.errorHandler;
|
|
93
|
+
const errorHandler = koaConfig.errorHandler || null;
|
|
48
94
|
const isHttps = config.https.enable === true;
|
|
49
95
|
const sslOptions = {};
|
|
50
96
|
if (isHttps) {
|
|
@@ -60,15 +106,15 @@ class HttpServer {
|
|
|
60
106
|
const url = config.protocol + config.host + ':' + config.port;
|
|
61
107
|
const corsOptions = config.cors;
|
|
62
108
|
const koaApp = new koa_1.default();
|
|
63
|
-
//
|
|
109
|
+
// Set up error handler for unified error code handling
|
|
64
110
|
this._setupErrorHandler(koaApp, errorHandler);
|
|
65
|
-
//
|
|
111
|
+
// Load pre-middleware
|
|
66
112
|
this._loadMiddlewares(koaApp, preMiddleware, 'pre');
|
|
67
|
-
//
|
|
113
|
+
// Core middleware
|
|
68
114
|
koaApp.use((0, koa2_cors_1.default)(corsOptions));
|
|
69
115
|
koaApp.use((0, koa_body_1.default)(config.body));
|
|
70
116
|
koaApp.use(this._dispatch.bind(this));
|
|
71
|
-
//
|
|
117
|
+
// Load post-middleware
|
|
72
118
|
this._loadMiddlewares(koaApp, postMiddleware, 'post');
|
|
73
119
|
let msg = '[socket/http] server is: ' + url;
|
|
74
120
|
const listenOpt = { host: config.host, port: config.port };
|
|
@@ -91,44 +137,48 @@ class HttpServer {
|
|
|
91
137
|
}
|
|
92
138
|
this.httpApp = koaApp;
|
|
93
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
|
+
*/
|
|
94
152
|
async _dispatch(ctx, next) {
|
|
95
153
|
const controller = (0, index_js_3.getController)();
|
|
96
154
|
const { filterRequest } = (0, index_js_4.getConfig)().httpServer;
|
|
97
155
|
let uriPath = ctx.request.path;
|
|
98
156
|
const method = ctx.request.method;
|
|
99
157
|
let params = ctx.request.query;
|
|
158
|
+
// Deep copy query object to avoid Express/Koa proxy object issues
|
|
100
159
|
params = (0, type_check_js_1.isObject)(params) ? JSON.parse(JSON.stringify(params)) : {};
|
|
101
160
|
const body = ctx.request.body;
|
|
102
161
|
ctx.response.status = 200;
|
|
103
162
|
try {
|
|
104
|
-
//
|
|
105
|
-
// 去除开头的 '/'
|
|
163
|
+
// Remove leading '/'
|
|
106
164
|
if (uriPath.indexOf('/') === 0) {
|
|
107
165
|
uriPath = uriPath.substring(1);
|
|
108
166
|
}
|
|
109
|
-
//
|
|
167
|
+
// Filter requests that don't need routing
|
|
110
168
|
if (filterRequest.uris.includes(uriPath)) {
|
|
111
169
|
ctx.response.body = filterRequest.returnData;
|
|
112
170
|
await next();
|
|
113
171
|
return;
|
|
114
172
|
}
|
|
173
|
+
// Automatically add 'controller' prefix
|
|
115
174
|
if (uriPath.slice(0, 10) !== 'controller') {
|
|
116
175
|
uriPath = 'controller/' + uriPath;
|
|
117
176
|
}
|
|
118
177
|
const cmd = uriPath.split('/').join(this.channelSeparator);
|
|
119
178
|
debugLog('[request] uri %s', cmd);
|
|
179
|
+
// GET uses query, POST uses body
|
|
120
180
|
const args = method === 'POST' ? body : params;
|
|
121
|
-
|
|
122
|
-
if ((0, type_check_js_1.isString)(cmd)) {
|
|
123
|
-
const actions = cmd.split(this.channelSeparator);
|
|
124
|
-
let obj = { controller };
|
|
125
|
-
actions.forEach((key) => {
|
|
126
|
-
obj = obj[key];
|
|
127
|
-
if (!obj)
|
|
128
|
-
throw new Error(`class or function '${key}' not exists`);
|
|
129
|
-
});
|
|
130
|
-
fn = obj;
|
|
131
|
-
}
|
|
181
|
+
const fn = (0, utils_js_1.resolveControllerFn)(controller, cmd, this.channelSeparator);
|
|
132
182
|
if (!fn)
|
|
133
183
|
throw new Error('function not exists');
|
|
134
184
|
const result = await fn.call(controller, args, ctx);
|
|
@@ -136,31 +186,47 @@ class HttpServer {
|
|
|
136
186
|
}
|
|
137
187
|
catch (err) {
|
|
138
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;
|
|
139
193
|
}
|
|
140
194
|
await next();
|
|
141
195
|
}
|
|
196
|
+
/**
|
|
197
|
+
* Get Koa application instance
|
|
198
|
+
*
|
|
199
|
+
* @returns Koa instance, or undefined if HTTP service is not enabled
|
|
200
|
+
*/
|
|
142
201
|
getHttpApp() {
|
|
143
202
|
return this.httpApp;
|
|
144
203
|
}
|
|
145
|
-
|
|
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
|
+
*/
|
|
146
210
|
_setupErrorHandler(app, errorHandler) {
|
|
147
211
|
if ((0, type_check_js_1.isFunction)(errorHandler)) {
|
|
148
212
|
app.on('error', errorHandler);
|
|
149
213
|
}
|
|
150
214
|
}
|
|
151
215
|
/**
|
|
152
|
-
*
|
|
153
|
-
*
|
|
154
|
-
*
|
|
155
|
-
*
|
|
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
|
|
156
224
|
*/
|
|
157
225
|
_loadMiddlewares(app, middlewares = [], type = 'pre') {
|
|
158
226
|
if ((0, type_check_js_1.isArray)(middlewares)) {
|
|
159
227
|
middlewares.forEach((middleware) => {
|
|
160
228
|
if ((0, type_check_js_1.isFunction)(middleware)) {
|
|
161
|
-
// middleware
|
|
162
|
-
// 返回值是中间件(ctx, next) => {}的异步函数
|
|
163
|
-
// 便于使用async/await进行同步编程
|
|
229
|
+
// middleware is a factory function, called to return (ctx, next) => {} style middleware
|
|
164
230
|
app.use(middleware());
|
|
165
231
|
}
|
|
166
232
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpServer.js","sourceRoot":"","sources":["../../../src/socket/httpServer.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,oDAA4B;AAC5B,
|
|
1
|
+
{"version":3,"file":"httpServer.js","sourceRoot":"","sources":["../../../src/socket/httpServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,15 @@
|
|
|
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
|
+
*/
|
|
1
13
|
export { SocketServer } from './socketServer.js';
|
|
2
14
|
export { HttpServer } from './httpServer.js';
|
|
3
15
|
export { IpcServer } from './ipcServer.js';
|
|
@@ -8,11 +20,41 @@ import { SocketServer } from './socketServer.js';
|
|
|
8
20
|
import { HttpServer } from './httpServer.js';
|
|
9
21
|
import { IpcServer } from './ipcServer.js';
|
|
10
22
|
export { Koa, IoServer, IoClient };
|
|
11
|
-
|
|
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
|
+
*/
|
|
12
32
|
export declare function getSocketServer(): SocketServer | null;
|
|
13
|
-
|
|
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
|
+
*/
|
|
14
42
|
export declare function getHttpServer(): HttpServer | null;
|
|
43
|
+
/**
|
|
44
|
+
* Create IPC server
|
|
45
|
+
*
|
|
46
|
+
* @returns IpcServer instance
|
|
47
|
+
*/
|
|
15
48
|
export declare function createIpcServer(): IpcServer;
|
|
49
|
+
/**
|
|
50
|
+
* Get IPC server instance
|
|
51
|
+
*/
|
|
16
52
|
export declare function getIpcServer(): IpcServer | null;
|
|
17
|
-
|
|
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>;
|
|
18
60
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/socket/index.ts"],"names":[],"mappings":"AAAA,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,
|
|
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"}
|
package/dist/cjs/socket/index.js
CHANGED
|
@@ -11,6 +11,18 @@ exports.getHttpServer = getHttpServer;
|
|
|
11
11
|
exports.createIpcServer = createIpcServer;
|
|
12
12
|
exports.getIpcServer = getIpcServer;
|
|
13
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
|
+
*/
|
|
14
26
|
var socketServer_js_1 = require("./socketServer.js");
|
|
15
27
|
Object.defineProperty(exports, "SocketServer", { enumerable: true, get: function () { return socketServer_js_1.SocketServer; } });
|
|
16
28
|
var httpServer_js_1 = require("./httpServer.js");
|
|
@@ -26,42 +38,66 @@ exports.Koa = koa_1.default;
|
|
|
26
38
|
const socketServer_js_2 = require("./socketServer.js");
|
|
27
39
|
const httpServer_js_2 = require("./httpServer.js");
|
|
28
40
|
const ipcServer_js_2 = require("./ipcServer.js");
|
|
41
|
+
/** Service instance storage */
|
|
29
42
|
const Instance = {
|
|
30
43
|
socketServer: null,
|
|
31
44
|
httpServer: null,
|
|
32
45
|
ipcServer: null,
|
|
33
46
|
};
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
47
|
+
/**
|
|
48
|
+
* Create SocketIO server
|
|
49
|
+
*
|
|
50
|
+
* @returns SocketServer instance
|
|
51
|
+
*/
|
|
52
|
+
async function createSocketServer() {
|
|
53
|
+
Instance.socketServer = await socketServer_js_2.SocketServer.create();
|
|
37
54
|
return Instance.socketServer;
|
|
38
55
|
}
|
|
39
|
-
|
|
56
|
+
/**
|
|
57
|
+
* Get SocketIO server instance
|
|
58
|
+
*/
|
|
40
59
|
function getSocketServer() {
|
|
41
60
|
return Instance.socketServer;
|
|
42
61
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
62
|
+
/**
|
|
63
|
+
* Create HTTP server
|
|
64
|
+
*
|
|
65
|
+
* @returns HttpServer instance
|
|
66
|
+
*/
|
|
67
|
+
async function createHttpServer() {
|
|
68
|
+
Instance.httpServer = await httpServer_js_2.HttpServer.create();
|
|
46
69
|
return Instance.httpServer;
|
|
47
70
|
}
|
|
48
|
-
|
|
71
|
+
/**
|
|
72
|
+
* Get HTTP server instance
|
|
73
|
+
*/
|
|
49
74
|
function getHttpServer() {
|
|
50
75
|
return Instance.httpServer;
|
|
51
76
|
}
|
|
52
|
-
|
|
77
|
+
/**
|
|
78
|
+
* Create IPC server
|
|
79
|
+
*
|
|
80
|
+
* @returns IpcServer instance
|
|
81
|
+
*/
|
|
53
82
|
function createIpcServer() {
|
|
54
83
|
Instance.ipcServer = new ipcServer_js_2.IpcServer();
|
|
55
84
|
return Instance.ipcServer;
|
|
56
85
|
}
|
|
57
|
-
|
|
86
|
+
/**
|
|
87
|
+
* Get IPC server instance
|
|
88
|
+
*/
|
|
58
89
|
function getIpcServer() {
|
|
59
90
|
return Instance.ipcServer;
|
|
60
91
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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();
|
|
65
101
|
createIpcServer();
|
|
66
102
|
}
|
|
67
103
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/socket/index.ts"],"names":[],"mappings":";;;;;;
|
|
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"}
|
|
@@ -1,10 +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
|
+
*/
|
|
1
7
|
export declare class IpcServer {
|
|
8
|
+
/** Channel separator, default '/' */
|
|
2
9
|
channelSeparator: string;
|
|
10
|
+
/** Controller directory name (used to generate property path prefix) */
|
|
3
11
|
directory: string;
|
|
4
12
|
constructor();
|
|
13
|
+
/**
|
|
14
|
+
* Initialize: traverse controller tree and register all IPC channels
|
|
15
|
+
*/
|
|
5
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
|
+
*/
|
|
6
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
|
+
*/
|
|
7
38
|
register(exportObj: Record<string, unknown>, propertyChain: string): void;
|
|
8
|
-
findFn(controller: Record<string, unknown>, c: string): ((...args: unknown[]) => unknown) | null;
|
|
9
39
|
}
|
|
10
40
|
//# sourceMappingURL=ipcServer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipcServer.d.ts","sourceRoot":"","sources":["../../../src/socket/ipcServer.ts"],"names":[],"mappings":"
|
|
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"}
|
|
@@ -4,104 +4,121 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
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
|
+
*/
|
|
7
25
|
const debug_1 = __importDefault(require("debug"));
|
|
8
|
-
const type_check_js_1 = require("../utils/type_check.js");
|
|
9
26
|
const electron_1 = require("electron");
|
|
10
27
|
const index_js_1 = require("../log/index.js");
|
|
11
28
|
const index_js_2 = require("../controller/index.js");
|
|
12
29
|
const file_loader_js_1 = require("../core/loader/file_loader.js");
|
|
13
30
|
const index_js_3 = require("../config/index.js");
|
|
31
|
+
const utils_js_1 = require("./utils.js");
|
|
14
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
|
+
*/
|
|
15
39
|
class IpcServer {
|
|
16
40
|
constructor() {
|
|
17
41
|
this.channelSeparator = (0, index_js_3.getConfig)().mainServer.channelSeparator || '/';
|
|
18
42
|
this.directory = 'controller';
|
|
19
43
|
this.init();
|
|
20
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Initialize: traverse controller tree and register all IPC channels
|
|
47
|
+
*/
|
|
21
48
|
init() {
|
|
22
49
|
const controller = (0, index_js_2.getController)();
|
|
23
50
|
this.loop(controller, this.directory);
|
|
24
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
|
+
*/
|
|
25
62
|
loop(obj, pathname) {
|
|
26
63
|
const keys = Object.keys(obj);
|
|
27
|
-
// debugLog("[loop] keys: %j", keys);
|
|
28
64
|
for (const key of keys) {
|
|
29
65
|
if (key === 'constructor')
|
|
30
66
|
continue;
|
|
31
67
|
const subObj = obj[key];
|
|
32
68
|
const propertyChain = pathname + '.' + key;
|
|
69
|
+
// EXPORTS symbol marker indicates this is a controller method collection (leaf node)
|
|
33
70
|
if (subObj && subObj[file_loader_js_1.EXPORTS] === true) {
|
|
34
71
|
this.register(subObj, propertyChain);
|
|
35
72
|
}
|
|
36
73
|
else if (typeof subObj === 'object') {
|
|
37
|
-
// 如果子对象依然是对象,则递归调用继续判断
|
|
38
74
|
this.loop(subObj, propertyChain);
|
|
39
75
|
}
|
|
40
76
|
}
|
|
41
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
|
+
*/
|
|
42
88
|
register(exportObj, propertyChain) {
|
|
43
89
|
const controller = (0, index_js_2.getController)();
|
|
44
90
|
const keys = Object.keys(exportObj);
|
|
45
91
|
for (const key of keys) {
|
|
46
|
-
// Supports two types of routing separators
|
|
47
|
-
// channel: controller.file.function | controller/file/function
|
|
48
92
|
const tmpChannel = `${propertyChain}.${key}`;
|
|
49
93
|
const channel = tmpChannel.split('.').join(this.channelSeparator);
|
|
50
94
|
debugLog('[register] channel %s', channel);
|
|
51
|
-
// send/on model
|
|
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.
|
|
52
98
|
electron_1.ipcMain.on(channel, async (event, params) => {
|
|
53
99
|
try {
|
|
54
|
-
const fn =
|
|
100
|
+
const fn = (0, utils_js_1.resolveControllerFn)(controller, channel, this.channelSeparator);
|
|
55
101
|
if (!fn)
|
|
56
102
|
return;
|
|
57
103
|
const result = await fn.call(controller, params, event);
|
|
58
104
|
event.returnValue = result;
|
|
59
|
-
event.reply(channel, result);
|
|
60
105
|
}
|
|
61
106
|
catch (e) {
|
|
62
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) };
|
|
63
110
|
}
|
|
64
111
|
});
|
|
65
|
-
// invoke/handle model
|
|
112
|
+
// invoke/handle model (asynchronous, recommended)
|
|
113
|
+
// Throw error so renderer's ipcRenderer.invoke() rejects, allowing try/catch on renderer side
|
|
66
114
|
electron_1.ipcMain.handle(channel, async (event, params) => {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
if (!fn)
|
|
70
|
-
return undefined;
|
|
71
|
-
return await fn.call(controller, params, event);
|
|
72
|
-
}
|
|
73
|
-
catch (e) {
|
|
74
|
-
index_js_1.coreLogger.error('[socket/IpcServer] invoke/handle throw error:', e);
|
|
115
|
+
const fn = (0, utils_js_1.resolveControllerFn)(controller, channel, this.channelSeparator);
|
|
116
|
+
if (!fn)
|
|
75
117
|
return undefined;
|
|
76
|
-
|
|
118
|
+
return await fn.call(controller, params, event);
|
|
77
119
|
});
|
|
78
120
|
}
|
|
79
121
|
}
|
|
80
|
-
findFn(controller, c) {
|
|
81
|
-
try {
|
|
82
|
-
// 找函数
|
|
83
|
-
const cmd = c;
|
|
84
|
-
let fn = null;
|
|
85
|
-
if ((0, type_check_js_1.isString)(cmd)) {
|
|
86
|
-
const actions = cmd.split(this.channelSeparator);
|
|
87
|
-
debugLog('[findFn] channel %o', actions);
|
|
88
|
-
let obj = { controller };
|
|
89
|
-
for (const key of actions) {
|
|
90
|
-
obj = obj[key];
|
|
91
|
-
if (!obj)
|
|
92
|
-
throw new Error(`class or function '${key}' not exists`);
|
|
93
|
-
}
|
|
94
|
-
fn = obj;
|
|
95
|
-
}
|
|
96
|
-
if (!fn)
|
|
97
|
-
throw new Error('function not exists');
|
|
98
|
-
return fn;
|
|
99
|
-
}
|
|
100
|
-
catch (err) {
|
|
101
|
-
index_js_1.coreLogger.error('[socket/IpcServer] throw error:', err);
|
|
102
|
-
return null;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
122
|
}
|
|
106
123
|
exports.IpcServer = IpcServer;
|
|
107
124
|
//# sourceMappingURL=ipcServer.js.map
|