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
|
@@ -1,28 +1,68 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/**
|
|
4
|
+
* @module jobs/child/app
|
|
5
|
+
* @description Child process entry application. Runs in child processes created by child_process.fork(),
|
|
6
|
+
* responsible for receiving messages from the main process and executing corresponding task files.
|
|
7
|
+
*
|
|
8
|
+
* Child process lifecycle:
|
|
9
|
+
* 1. Main process forks a child process and loads this module
|
|
10
|
+
* 2. Child process receives config from main process via processArgs, avoiding filesystem config loading
|
|
11
|
+
* 3. Child process listens for message events, waiting for main process instructions
|
|
12
|
+
* 4. Upon receiving a run command, loads and executes the task file
|
|
13
|
+
* 5. Class-type task files: instantiated and cached on first execution, reused thereafter
|
|
14
|
+
* 6. Function-type task files: called directly on each execution
|
|
15
|
+
*
|
|
16
|
+
* Note: Child processes are independent from the main process and must load exception handling separately (loadException)
|
|
17
|
+
*/
|
|
3
18
|
const type_check_js_1 = require("../../utils/type_check.js");
|
|
4
19
|
const index_js_1 = require("../../exception/index.js");
|
|
5
|
-
const index_js_2 = require("../../
|
|
6
|
-
const index_js_3 = require("../../
|
|
7
|
-
const index_js_4 = require("../../
|
|
20
|
+
const index_js_2 = require("../../config/index.js");
|
|
21
|
+
const index_js_3 = require("../../loader/index.js");
|
|
22
|
+
const index_js_4 = require("../../log/index.js");
|
|
23
|
+
const index_js_5 = require("../../core/utils/index.js");
|
|
24
|
+
const channel_js_1 = require("../../const/channel.js");
|
|
25
|
+
// Receive config from main process via processArgs, so child process
|
|
26
|
+
// doesn't need to load config from filesystem (which may fail in bundled mode)
|
|
27
|
+
try {
|
|
28
|
+
const args = JSON.parse(process.argv[2] || '{}');
|
|
29
|
+
if (args.eeConfig) {
|
|
30
|
+
(0, index_js_2.setConfig)(args.eeConfig);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
// If config can't be parsed, child process will use default config
|
|
35
|
+
}
|
|
36
|
+
// Child process must independently load exception handling
|
|
8
37
|
(0, index_js_1.loadException)();
|
|
38
|
+
/** Supported command list */
|
|
9
39
|
const commands = ['run'];
|
|
40
|
+
/**
|
|
41
|
+
* ChildApp - Child process application
|
|
42
|
+
*
|
|
43
|
+
* Runs in the child process, receives run commands from the main process to execute task files.
|
|
44
|
+
* Class-type task instances are cached in jobMap for reuse.
|
|
45
|
+
*/
|
|
10
46
|
class ChildApp {
|
|
11
47
|
constructor() {
|
|
12
48
|
this._initEvents();
|
|
13
49
|
this.jobMap = new Map();
|
|
14
50
|
}
|
|
15
51
|
/**
|
|
16
|
-
*
|
|
52
|
+
* Initialize event listeners
|
|
53
|
+
*
|
|
54
|
+
* Listen for main process messages and child process exit events.
|
|
17
55
|
*/
|
|
18
56
|
_initEvents() {
|
|
19
57
|
process.on('message', this._handleMessage.bind(this));
|
|
20
58
|
process.once('exit', (code) => {
|
|
21
|
-
|
|
59
|
+
index_js_4.coreLogger.info(`[jobs/child] received a exit from main-process, code:${code}, pid:${process.pid}`);
|
|
22
60
|
});
|
|
23
61
|
}
|
|
24
62
|
/**
|
|
25
|
-
*
|
|
63
|
+
* Handle main process messages
|
|
64
|
+
*
|
|
65
|
+
* Only processes commands in the commands list, ignoring unknown commands.
|
|
26
66
|
*/
|
|
27
67
|
_handleMessage(m) {
|
|
28
68
|
if (commands.indexOf(m.cmd) === -1) {
|
|
@@ -35,37 +75,58 @@ class ChildApp {
|
|
|
35
75
|
default:
|
|
36
76
|
break;
|
|
37
77
|
}
|
|
38
|
-
|
|
78
|
+
index_js_4.coreLogger.info(`[jobs/child] received a message from main-process, message: ${JSON.stringify(m)}`);
|
|
39
79
|
}
|
|
40
80
|
/**
|
|
41
|
-
*
|
|
81
|
+
* Run a task
|
|
82
|
+
*
|
|
83
|
+
* Executes different logic based on the task file's export type:
|
|
84
|
+
* - Class/bytecode class: instantiated and cached on first run (jobMap), reused thereafter
|
|
85
|
+
* - If jobFunc is specified: call the specified method on the instance
|
|
86
|
+
* - Otherwise call the instance's handle() method (default entry)
|
|
87
|
+
* - Plain function: called directly with jobParams
|
|
88
|
+
*
|
|
89
|
+
* @param msg - Task message containing file path, parameters, and function name
|
|
42
90
|
*/
|
|
43
91
|
run(msg = { mid: '', cmd: '' }) {
|
|
44
92
|
const { jobPath, jobParams, jobFunc, jobFuncParams } = msg;
|
|
45
93
|
if (!jobPath)
|
|
46
94
|
return;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
95
|
+
try {
|
|
96
|
+
const mod = (0, index_js_3.requireFile)(jobPath);
|
|
97
|
+
if ((0, type_check_js_1.isClass)(mod) || (0, index_js_5.isBytecodeClass)(mod)) {
|
|
98
|
+
let instance;
|
|
99
|
+
if (!this.jobMap.has(jobPath)) {
|
|
100
|
+
// First execution: instantiate and cache
|
|
101
|
+
instance = new mod(...(jobParams || []));
|
|
102
|
+
this.jobMap.set(jobPath, instance);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
// Subsequent execution: reuse cached instance
|
|
106
|
+
instance = this.jobMap.get(jobPath);
|
|
107
|
+
}
|
|
108
|
+
// Call the specified method or default handle method
|
|
109
|
+
// Note: Use typeof check instead of hasOwnProperty to support instance and prototype methods
|
|
110
|
+
if (jobFunc && typeof instance[jobFunc] === 'function') {
|
|
111
|
+
instance[jobFunc](...(jobFuncParams || []));
|
|
112
|
+
}
|
|
113
|
+
else if (typeof instance.handle === 'function') {
|
|
114
|
+
instance.handle(...(jobParams || []));
|
|
115
|
+
}
|
|
53
116
|
}
|
|
54
|
-
else {
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
// 如果指定了函数名,则调用指定的函数
|
|
58
|
-
if (jobFunc && typeof instance[jobFunc] === 'function') {
|
|
59
|
-
instance[jobFunc](...(jobFuncParams || []));
|
|
60
|
-
}
|
|
61
|
-
else if (typeof instance.handle === 'function') {
|
|
62
|
-
instance.handle(...(jobParams || []));
|
|
117
|
+
else if ((0, type_check_js_1.isFunction)(mod)) {
|
|
118
|
+
mod(jobParams);
|
|
63
119
|
}
|
|
64
120
|
}
|
|
65
|
-
|
|
66
|
-
|
|
121
|
+
catch (e) {
|
|
122
|
+
index_js_4.coreLogger.error('[jobs/child] run error:', e);
|
|
123
|
+
// Propagate error back to main process so it's not silently lost
|
|
124
|
+
if (process.send) {
|
|
125
|
+
process.send({ channel: channel_js_1.Processes.showException, data: String(e) });
|
|
126
|
+
}
|
|
67
127
|
}
|
|
68
128
|
}
|
|
69
129
|
}
|
|
130
|
+
// Create ChildApp instance when child process starts
|
|
70
131
|
new ChildApp();
|
|
71
132
|
//# sourceMappingURL=app.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../src/jobs/child/app.ts"],"names":[],"mappings":";;AAAA,6DAAgE;AAChE,uDAAyD;AACzD,oDAAoD;AACpD,iDAAgD;AAChD,wDAA4D;
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../src/jobs/child/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,23 +6,23 @@ export declare class ChildJob extends EventEmitter {
|
|
|
6
6
|
config: JobsConfig;
|
|
7
7
|
constructor();
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* Initialize event listeners
|
|
10
10
|
*/
|
|
11
11
|
_initEvents(): void;
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
13
|
+
* Execute a job file
|
|
14
14
|
*/
|
|
15
15
|
exec(filepath: string, params?: Record<string, unknown>, opt?: JobProcessOptions): JobProcess;
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
17
|
+
* Create a child process
|
|
18
18
|
*/
|
|
19
19
|
createProcess(opt?: JobProcessOptions): JobProcess;
|
|
20
20
|
/**
|
|
21
|
-
*
|
|
21
|
+
* Get current PIDs
|
|
22
22
|
*/
|
|
23
23
|
getPids(): string[];
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
25
|
+
* Asynchronously execute a job file
|
|
26
26
|
*/
|
|
27
27
|
execPromise(filepath: string, params?: Record<string, unknown>, opt?: JobProcessOptions): Promise<JobProcess>;
|
|
28
28
|
}
|
|
@@ -18,7 +18,7 @@ class ChildJob extends events_1.EventEmitter {
|
|
|
18
18
|
this._initEvents();
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
|
-
*
|
|
21
|
+
* Initialize event listeners
|
|
22
22
|
*/
|
|
23
23
|
_initEvents() {
|
|
24
24
|
this.on(channel_js_1.Events.childProcessExit, (data) => {
|
|
@@ -33,7 +33,7 @@ class ChildJob extends events_1.EventEmitter {
|
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
|
-
*
|
|
36
|
+
* Execute a job file
|
|
37
37
|
*/
|
|
38
38
|
exec(filepath, params = {}, opt = {}) {
|
|
39
39
|
const jobPath = (0, index_js_1.getFullpath)(filepath);
|
|
@@ -43,7 +43,7 @@ class ChildJob extends events_1.EventEmitter {
|
|
|
43
43
|
return proc;
|
|
44
44
|
}
|
|
45
45
|
/**
|
|
46
|
-
*
|
|
46
|
+
* Create a child process
|
|
47
47
|
*/
|
|
48
48
|
createProcess(opt = {}) {
|
|
49
49
|
const options = {
|
|
@@ -62,13 +62,13 @@ class ChildJob extends events_1.EventEmitter {
|
|
|
62
62
|
return proc;
|
|
63
63
|
}
|
|
64
64
|
/**
|
|
65
|
-
*
|
|
65
|
+
* Get current PIDs
|
|
66
66
|
*/
|
|
67
67
|
getPids() {
|
|
68
68
|
return Object.keys(this.jobs);
|
|
69
69
|
}
|
|
70
70
|
/**
|
|
71
|
-
*
|
|
71
|
+
* Asynchronously execute a job file
|
|
72
72
|
*/
|
|
73
73
|
async execPromise(filepath, params = {}, opt = {}) {
|
|
74
74
|
return this.exec(filepath, params, opt);
|
|
@@ -1,34 +1,102 @@
|
|
|
1
1
|
import { EventEmitter } from 'events';
|
|
2
2
|
import { type ChildProcess, type ForkOptions } from 'child_process';
|
|
3
3
|
import type { JobsConfig, MessageData } from '../../types/index.js';
|
|
4
|
+
/** Options when creating a JobProcess */
|
|
4
5
|
export interface JobProcessOptions {
|
|
6
|
+
/** Arguments object passed to the child process */
|
|
5
7
|
processArgs?: Record<string, unknown>;
|
|
8
|
+
/** Fork options (cwd, env, stdio, etc.) */
|
|
6
9
|
processOptions?: ForkOptions;
|
|
10
|
+
[key: string]: unknown;
|
|
7
11
|
}
|
|
12
|
+
/** Message format: Main process -> Child process */
|
|
8
13
|
export interface JobMessage {
|
|
14
|
+
/** Message ID */
|
|
9
15
|
mid: string;
|
|
16
|
+
/** Command (e.g. 'run') */
|
|
10
17
|
cmd: string;
|
|
18
|
+
/** Task file path */
|
|
11
19
|
jobPath?: string;
|
|
20
|
+
/** Task constructor arguments */
|
|
12
21
|
jobParams?: unknown[];
|
|
22
|
+
/** Instance method name to call */
|
|
13
23
|
jobFunc?: string;
|
|
24
|
+
/** Instance method arguments */
|
|
14
25
|
jobFuncParams?: unknown[];
|
|
15
26
|
}
|
|
27
|
+
/** Message format: Child process -> Main process */
|
|
16
28
|
export interface ProcessMessage extends MessageData {
|
|
29
|
+
/** Message receiver type */
|
|
17
30
|
eventReceiver: string;
|
|
18
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* JobProcess - Child process manager
|
|
34
|
+
*
|
|
35
|
+
* Encapsulates the complete logic of forking a child process:
|
|
36
|
+
* 1. Determine app.js entry path (child process entry within node_modules/ee-core)
|
|
37
|
+
* 2. Configure working directory and environment variables
|
|
38
|
+
* 3. Fork the child process and register event listeners
|
|
39
|
+
* 4. Provide dispatch() and callFunc() for sending messages
|
|
40
|
+
* 5. Provide kill() for terminating the process
|
|
41
|
+
*/
|
|
19
42
|
export declare class JobProcess {
|
|
43
|
+
/** In-process event emitter (forkProcess-level messages) */
|
|
20
44
|
emitter: EventEmitter;
|
|
45
|
+
/** Host event emitter (ChildJob/ChildPoolJob, childJob-level messages) */
|
|
21
46
|
host: EventEmitter;
|
|
47
|
+
/** Arguments array passed to the child process */
|
|
22
48
|
args: string[];
|
|
49
|
+
/** Whether the child process is in a sleeping state */
|
|
23
50
|
sleeping: boolean;
|
|
51
|
+
/** Child process object returned by child_process.fork() */
|
|
24
52
|
child: ChildProcess;
|
|
53
|
+
/** Child process PID */
|
|
25
54
|
pid: number | undefined;
|
|
55
|
+
/** Task configuration */
|
|
26
56
|
config: JobsConfig;
|
|
27
57
|
constructor(host: EventEmitter, opt?: JobProcessOptions, config?: JobsConfig);
|
|
58
|
+
/**
|
|
59
|
+
* Initialize child process event listeners
|
|
60
|
+
*
|
|
61
|
+
* Listens for three types of events:
|
|
62
|
+
* - message: Process messages from the child process (exception display, business message forwarding)
|
|
63
|
+
* - exit: Child process exited, notify host to clean up
|
|
64
|
+
* - error: Child process error, notify host to clean up
|
|
65
|
+
*/
|
|
28
66
|
_init(): void;
|
|
67
|
+
/**
|
|
68
|
+
* Dispatch messages to different event emitters based on eventReceiver
|
|
69
|
+
*
|
|
70
|
+
* - forkProcess: send only to in-process emitter
|
|
71
|
+
* - childJob: send only to host emitter
|
|
72
|
+
* - all / others: send to both
|
|
73
|
+
*/
|
|
29
74
|
_eventEmit(m: ProcessMessage): void;
|
|
75
|
+
/**
|
|
76
|
+
* Send a dispatch message to the child process
|
|
77
|
+
*
|
|
78
|
+
* @param cmd - Command (e.g. 'run')
|
|
79
|
+
* @param jobPath - Task file path
|
|
80
|
+
* @param params - Task parameters
|
|
81
|
+
*/
|
|
30
82
|
dispatch(cmd: string, jobPath?: string, ...params: unknown[]): void;
|
|
83
|
+
/**
|
|
84
|
+
* Call a specified method on the task instance in the child process
|
|
85
|
+
*
|
|
86
|
+
* Resolves the task file path, then sends a run command with the specified function name.
|
|
87
|
+
*
|
|
88
|
+
* @param jobPath - Task file path (relative paths are resolved to absolute paths)
|
|
89
|
+
* @param funcName - Method name to call
|
|
90
|
+
* @param params - Method arguments
|
|
91
|
+
*/
|
|
31
92
|
callFunc(jobPath?: string, funcName?: string, ...params: unknown[]): void;
|
|
93
|
+
/**
|
|
94
|
+
* Terminate the child process
|
|
95
|
+
*
|
|
96
|
+
* First sends SIGINT for graceful exit, then sends SIGKILL to force termination after timeout.
|
|
97
|
+
*
|
|
98
|
+
* @param timeout - Timeout in milliseconds to wait for graceful exit
|
|
99
|
+
*/
|
|
32
100
|
kill(timeout?: number): void;
|
|
33
101
|
}
|
|
34
102
|
//# sourceMappingURL=jobProcess.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobProcess.d.ts","sourceRoot":"","sources":["../../../../src/jobs/child/jobProcess.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"jobProcess.d.ts","sourceRoot":"","sources":["../../../../src/jobs/child/jobProcess.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAQ,KAAK,YAAY,EAAqB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAS7F,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAwB,MAAM,sBAAsB,CAAC;AAE1F,yCAAyC;AACzC,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,2CAA2C;IAC3C,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,oDAAoD;AACpD,MAAM,WAAW,UAAU;IACzB,iBAAiB;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;IACtB,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;CAC3B;AAED,oDAAoD;AACpD,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,4BAA4B;IAC5B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,qBAAa,UAAU;IACrB,4DAA4D;IAC5D,OAAO,EAAE,YAAY,CAAC;IACtB,0EAA0E;IAC1E,IAAI,EAAE,YAAY,CAAC;IACnB,kDAAkD;IAClD,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,uDAAuD;IACvD,QAAQ,EAAE,OAAO,CAAC;IAClB,4DAA4D;IAC5D,KAAK,EAAE,YAAY,CAAC;IACpB,wBAAwB;IACxB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,yBAAyB;IACzB,MAAM,EAAE,UAAU,CAAC;gBAEP,IAAI,EAAE,YAAY,EAAE,GAAG,GAAE,iBAAsB,EAAE,MAAM,GAAE,UAAkC;IA2CvG;;;;;;;OAOG;IACH,KAAK,IAAI,IAAI;IA6Cb;;;;;;OAMG;IACH,UAAU,CAAC,CAAC,EAAE,cAAc,GAAG,IAAI;IAenC;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,SAAK,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI;IAY/D;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,SAAK,EAAE,QAAQ,SAAK,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI;IAcjE;;;;;;OAMG;IACH,IAAI,CAAC,OAAO,SAAO,GAAG,IAAI;CAO3B"}
|
|
@@ -4,31 +4,58 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.JobProcess = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* @module jobs/child/jobProcess
|
|
9
|
+
* @description Child process manager. Encapsulates child_process.fork() creation and communication logic,
|
|
10
|
+
* providing the main process with the ability to create child processes, send messages, and terminate processes.
|
|
11
|
+
*
|
|
12
|
+
* Communication mechanism:
|
|
13
|
+
* - Main process sends JobMessage to child process via child.send()
|
|
14
|
+
* - Child process sends ProcessMessage to main process via process.send()
|
|
15
|
+
* - Messages are categorized by channel: showException (exception), sendToMain (business message)
|
|
16
|
+
* - Messages are dispatched by eventReceiver: childJob (global), forkProcess (per-process), all (both)
|
|
17
|
+
*/
|
|
7
18
|
const path_1 = __importDefault(require("path"));
|
|
8
19
|
const events_1 = require("events");
|
|
9
20
|
const child_process_1 = require("child_process");
|
|
10
21
|
const serialize_javascript_1 = __importDefault(require("serialize-javascript"));
|
|
11
22
|
const index_js_1 = require("../../log/index.js");
|
|
12
23
|
const index_js_2 = require("../../ps/index.js");
|
|
24
|
+
const index_js_3 = require("../../config/index.js");
|
|
13
25
|
const channel_js_1 = require("../../const/channel.js");
|
|
14
26
|
const helper_js_1 = require("../../utils/helper.js");
|
|
15
|
-
const
|
|
27
|
+
const index_js_4 = require("../../loader/index.js");
|
|
16
28
|
const extend_js_1 = require("../../utils/extend.js");
|
|
29
|
+
/**
|
|
30
|
+
* JobProcess - Child process manager
|
|
31
|
+
*
|
|
32
|
+
* Encapsulates the complete logic of forking a child process:
|
|
33
|
+
* 1. Determine app.js entry path (child process entry within node_modules/ee-core)
|
|
34
|
+
* 2. Configure working directory and environment variables
|
|
35
|
+
* 3. Fork the child process and register event listeners
|
|
36
|
+
* 4. Provide dispatch() and callFunc() for sending messages
|
|
37
|
+
* 5. Provide kill() for terminating the process
|
|
38
|
+
*/
|
|
17
39
|
class JobProcess {
|
|
18
40
|
constructor(host, opt = {}, config = { messageLog: false }) {
|
|
19
41
|
let cwd = (0, index_js_2.getBaseDir)();
|
|
42
|
+
// Locate app.js entry: child process startup file within the ee-core package
|
|
20
43
|
const currentFilePath = typeof __filename !== 'undefined' ? __filename : '';
|
|
21
44
|
const appPath = path_1.default.join(path_1.default.dirname(currentFilePath), 'app.js');
|
|
22
|
-
//
|
|
45
|
+
// After packaging, cwd must be outside app.asar (child processes need access to node_modules)
|
|
23
46
|
if ((0, index_js_2.isPackaged)()) {
|
|
24
47
|
cwd = path_1.default.join((0, index_js_2.getBaseDir)(), '..');
|
|
25
48
|
}
|
|
26
49
|
const defaultOptions = {
|
|
27
|
-
processArgs: {
|
|
50
|
+
processArgs: {
|
|
51
|
+
type: 'childJob',
|
|
52
|
+
// Pass main process config to child process so it doesn't need to load from filesystem
|
|
53
|
+
eeConfig: (0, index_js_3.getConfig)(),
|
|
54
|
+
},
|
|
28
55
|
processOptions: {
|
|
29
56
|
cwd,
|
|
30
57
|
env: (0, index_js_2.allEnv)(),
|
|
31
|
-
stdio: 'ignore',
|
|
58
|
+
stdio: ['ignore', 'pipe', 'pipe', 'ipc'],
|
|
32
59
|
},
|
|
33
60
|
};
|
|
34
61
|
const options = (0, extend_js_1.extend)(true, defaultOptions, opt);
|
|
@@ -37,26 +64,48 @@ class JobProcess {
|
|
|
37
64
|
this.args = [];
|
|
38
65
|
this.sleeping = false;
|
|
39
66
|
this.config = config;
|
|
40
|
-
//
|
|
67
|
+
// Serialize arguments and pass them to the child process
|
|
41
68
|
this.args.push(JSON.stringify(options.processArgs));
|
|
42
69
|
this.child = (0, child_process_1.fork)(appPath, this.args, options.processOptions ?? {});
|
|
43
70
|
this.pid = this.child.pid;
|
|
44
71
|
this._init();
|
|
45
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Initialize child process event listeners
|
|
75
|
+
*
|
|
76
|
+
* Listens for three types of events:
|
|
77
|
+
* - message: Process messages from the child process (exception display, business message forwarding)
|
|
78
|
+
* - exit: Child process exited, notify host to clean up
|
|
79
|
+
* - error: Child process error, notify host to clean up
|
|
80
|
+
*/
|
|
46
81
|
_init() {
|
|
47
82
|
const { messageLog } = this.config;
|
|
48
83
|
this.child.on('message', (m) => {
|
|
49
84
|
if (messageLog) {
|
|
50
85
|
index_js_1.coreLogger.info(`[jobs/child] received a message from child-process, message: ${(0, serialize_javascript_1.default)(m)}`);
|
|
51
86
|
}
|
|
87
|
+
// Exception message: log it
|
|
52
88
|
if (m.channel === channel_js_1.Processes.showException) {
|
|
53
89
|
index_js_1.coreLogger.error(`${m.data}`);
|
|
54
90
|
}
|
|
55
|
-
//
|
|
91
|
+
// Business message: dispatch based on eventReceiver
|
|
56
92
|
if (m.channel === channel_js_1.Processes.sendToMain) {
|
|
57
93
|
this._eventEmit(m);
|
|
58
94
|
}
|
|
59
95
|
});
|
|
96
|
+
// Capture child process stdout/stderr for debugging
|
|
97
|
+
const stdout = this.child.stdout;
|
|
98
|
+
const stderr = this.child.stderr;
|
|
99
|
+
if (stdout) {
|
|
100
|
+
stdout.on('data', (data) => {
|
|
101
|
+
index_js_1.coreLogger.info(`[jobs/child] stdout: ${data.toString().trim()}`);
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
if (stderr) {
|
|
105
|
+
stderr.on('data', (data) => {
|
|
106
|
+
index_js_1.coreLogger.error(`[jobs/child] stderr: ${data.toString().trim()}`);
|
|
107
|
+
});
|
|
108
|
+
}
|
|
60
109
|
this.child.on('exit', (code, signal) => {
|
|
61
110
|
const data = { pid: this.pid };
|
|
62
111
|
this.host.emit(channel_js_1.Events.childProcessExit, data);
|
|
@@ -68,6 +117,13 @@ class JobProcess {
|
|
|
68
117
|
index_js_1.coreLogger.error(`[jobs/child] received a error from child-process, error: ${err}, pid:${this.pid}`);
|
|
69
118
|
});
|
|
70
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Dispatch messages to different event emitters based on eventReceiver
|
|
122
|
+
*
|
|
123
|
+
* - forkProcess: send only to in-process emitter
|
|
124
|
+
* - childJob: send only to host emitter
|
|
125
|
+
* - all / others: send to both
|
|
126
|
+
*/
|
|
71
127
|
_eventEmit(m) {
|
|
72
128
|
switch (m.eventReceiver) {
|
|
73
129
|
case channel_js_1.Receiver.forkProcess:
|
|
@@ -82,8 +138,14 @@ class JobProcess {
|
|
|
82
138
|
break;
|
|
83
139
|
}
|
|
84
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* Send a dispatch message to the child process
|
|
143
|
+
*
|
|
144
|
+
* @param cmd - Command (e.g. 'run')
|
|
145
|
+
* @param jobPath - Task file path
|
|
146
|
+
* @param params - Task parameters
|
|
147
|
+
*/
|
|
85
148
|
dispatch(cmd, jobPath = '', ...params) {
|
|
86
|
-
// 消息对象
|
|
87
149
|
const mid = (0, helper_js_1.getRandomString)();
|
|
88
150
|
const msg = {
|
|
89
151
|
mid,
|
|
@@ -91,13 +153,19 @@ class JobProcess {
|
|
|
91
153
|
jobPath,
|
|
92
154
|
jobParams: params,
|
|
93
155
|
};
|
|
94
|
-
// todo 是否会发生监听未完成时,接收不到消息?
|
|
95
|
-
// 发消息到子进程
|
|
96
156
|
this.child.send(msg);
|
|
97
157
|
}
|
|
158
|
+
/**
|
|
159
|
+
* Call a specified method on the task instance in the child process
|
|
160
|
+
*
|
|
161
|
+
* Resolves the task file path, then sends a run command with the specified function name.
|
|
162
|
+
*
|
|
163
|
+
* @param jobPath - Task file path (relative paths are resolved to absolute paths)
|
|
164
|
+
* @param funcName - Method name to call
|
|
165
|
+
* @param params - Method arguments
|
|
166
|
+
*/
|
|
98
167
|
callFunc(jobPath = '', funcName = '', ...params) {
|
|
99
|
-
const fullPath = (0,
|
|
100
|
-
// 消息对象
|
|
168
|
+
const fullPath = (0, index_js_4.getFullpath)(jobPath);
|
|
101
169
|
const mid = (0, helper_js_1.getRandomString)();
|
|
102
170
|
const msg = {
|
|
103
171
|
mid,
|
|
@@ -108,6 +176,13 @@ class JobProcess {
|
|
|
108
176
|
};
|
|
109
177
|
this.child.send(msg);
|
|
110
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* Terminate the child process
|
|
181
|
+
*
|
|
182
|
+
* First sends SIGINT for graceful exit, then sends SIGKILL to force termination after timeout.
|
|
183
|
+
*
|
|
184
|
+
* @param timeout - Timeout in milliseconds to wait for graceful exit
|
|
185
|
+
*/
|
|
111
186
|
kill(timeout = 1000) {
|
|
112
187
|
this.child.kill('SIGINT');
|
|
113
188
|
setTimeout(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobProcess.js","sourceRoot":"","sources":["../../../../src/jobs/child/jobProcess.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,mCAAsC;AACtC,iDAA6F;AAC7F,gFAA6C;AAC7C,iDAAgD;AAChD,gDAAmE;AACnE,uDAAqE;AACrE,qDAAwD;AACxD,oDAAoD;AACpD,qDAA+C;
|
|
1
|
+
{"version":3,"file":"jobProcess.js","sourceRoot":"","sources":["../../../../src/jobs/child/jobProcess.ts"],"names":[],"mappings":"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"}
|