ee-core 5.0.0-beta.2 → 5.0.0-beta.6
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/README.md +178 -0
- 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 +77 -27
- package/dist/cjs/core/loader/file_loader.d.ts.map +1 -1
- package/dist/cjs/core/loader/file_loader.js +239 -75
- 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 +77 -27
- package/dist/esm/core/loader/file_loader.d.ts.map +1 -1
- package/dist/esm/core/loader/file_loader.js +239 -75
- 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 +12 -13
package/dist/cjs/cross/cross.js
CHANGED
|
@@ -4,6 +4,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.cross = exports.Cross = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* @module cross/cross
|
|
9
|
+
* @description Cross-process communication manager. Responsible for creating, managing, and terminating
|
|
10
|
+
* external child processes (e.g., Go/Python backends), and dynamically allocating ports for them.
|
|
11
|
+
*
|
|
12
|
+
* Core concepts:
|
|
13
|
+
* - children: Process mapping keyed by pid, storing CrossProcess instances
|
|
14
|
+
* - childrenMap: Mapping keyed by name, for quick process lookup by name
|
|
15
|
+
* - Event listening: Automatically cleans up from mappings when child processes exit/error
|
|
16
|
+
*
|
|
17
|
+
* Usage:
|
|
18
|
+
* ```ts
|
|
19
|
+
* const proc = await cross.run('goServer');
|
|
20
|
+
* const url = cross.getUrl('goServer');
|
|
21
|
+
* cross.killByName('goServer');
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
7
24
|
const events_1 = __importDefault(require("events"));
|
|
8
25
|
const index_js_1 = require("../config/index.js");
|
|
9
26
|
const helper_js_1 = require("../utils/helper.js");
|
|
@@ -11,6 +28,12 @@ const crossProcess_js_1 = require("./crossProcess.js");
|
|
|
11
28
|
const channel_js_1 = require("../const/channel.js");
|
|
12
29
|
const extend_js_1 = require("../utils/extend.js");
|
|
13
30
|
const index_js_2 = require("../utils/port/index.js");
|
|
31
|
+
/**
|
|
32
|
+
* Cross - cross-process communication manager
|
|
33
|
+
*
|
|
34
|
+
* Implements the CrossHost interface, providing event notification capability for child processes.
|
|
35
|
+
* Manages processes via children and childrenMap dual indexes, supporting operations by pid or name.
|
|
36
|
+
*/
|
|
14
37
|
class Cross {
|
|
15
38
|
constructor() {
|
|
16
39
|
this.emitter = undefined;
|
|
@@ -18,18 +41,34 @@ class Cross {
|
|
|
18
41
|
this.childrenMap = {};
|
|
19
42
|
this._initEventEmitter();
|
|
20
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Create and start all cross-process services with enable=true in config
|
|
46
|
+
*
|
|
47
|
+
* Iterates over config.cross configuration, calling run() for each service with enable=true.
|
|
48
|
+
*/
|
|
21
49
|
async create() {
|
|
22
|
-
// boot services
|
|
23
50
|
const crossCfg = (0, index_js_1.getConfig)().cross;
|
|
24
|
-
//await sleep(5 * 1000);
|
|
25
51
|
for (const key of Object.keys(crossCfg)) {
|
|
26
52
|
const val = crossCfg[key];
|
|
27
53
|
if (val && val.enable === true) {
|
|
28
|
-
this.run(key);
|
|
54
|
+
await this.run(key);
|
|
29
55
|
}
|
|
30
56
|
}
|
|
31
57
|
}
|
|
32
|
-
|
|
58
|
+
/**
|
|
59
|
+
* Run the specified cross-process service
|
|
60
|
+
*
|
|
61
|
+
* Flow:
|
|
62
|
+
* 1. Get service configuration from config, merge with runtime options
|
|
63
|
+
* 2. Parse port parameter, dynamically acquire available port if specified
|
|
64
|
+
* 3. Create CrossProcess child process
|
|
65
|
+
* 4. Register in children and childrenMap indexes
|
|
66
|
+
*
|
|
67
|
+
* @param service - Service name (corresponding to key name in config.cross)
|
|
68
|
+
* @param opt - Runtime options, can override configuration parameters
|
|
69
|
+
* @returns CrossProcess instance
|
|
70
|
+
* @throws Throws error when service configuration does not exist
|
|
71
|
+
*/
|
|
33
72
|
async run(service, opt = {}) {
|
|
34
73
|
const crossConf = (0, index_js_1.getConfig)().cross;
|
|
35
74
|
const defaultOpt = crossConf[service] || {};
|
|
@@ -37,22 +76,23 @@ class Cross {
|
|
|
37
76
|
if (Object.keys(targetConf).length === 0) {
|
|
38
77
|
throw new Error(`[ee-core] [cross] The service [${service}] config does not exit`);
|
|
39
78
|
}
|
|
40
|
-
//
|
|
79
|
+
// Parse and allocate port
|
|
41
80
|
const tmpArgs = targetConf.args || [];
|
|
42
81
|
let confPort = parseInt(String((0, helper_js_1.getValueFromArgv)(tmpArgs, 'port') || '0'), 10);
|
|
43
|
-
//
|
|
82
|
+
// Some programs error when passed non-existent arguments, in which case use the port field from config
|
|
44
83
|
if (isNaN(confPort) && (targetConf.port || 0) > 0) {
|
|
45
84
|
confPort = targetConf.port || 0;
|
|
46
85
|
}
|
|
47
86
|
if (confPort > 0) {
|
|
48
|
-
//
|
|
87
|
+
// Dynamically acquire available port
|
|
49
88
|
confPort = await (0, index_js_2.getPort)({ port: confPort });
|
|
50
|
-
//
|
|
89
|
+
// Replace port number in arguments
|
|
51
90
|
targetConf.args = (0, helper_js_1.replaceArgsValue)(tmpArgs, 'port', String(confPort));
|
|
52
91
|
}
|
|
53
|
-
//
|
|
92
|
+
// Create child process
|
|
54
93
|
const subProcess = new crossProcess_js_1.CrossProcess(this, { targetConf, port: confPort });
|
|
55
94
|
let uniqueName = targetConf.name;
|
|
95
|
+
// Append pid suffix for duplicate service names to avoid conflicts
|
|
56
96
|
if (Object.prototype.hasOwnProperty.call(this.childrenMap, uniqueName)) {
|
|
57
97
|
uniqueName = uniqueName + '-' + String(subProcess.pid);
|
|
58
98
|
}
|
|
@@ -64,31 +104,49 @@ class Cross {
|
|
|
64
104
|
};
|
|
65
105
|
return subProcess;
|
|
66
106
|
}
|
|
107
|
+
/** Terminate all child processes */
|
|
67
108
|
killAll() {
|
|
68
109
|
Object.keys(this.children).forEach((pid) => {
|
|
69
110
|
this.kill(pid);
|
|
70
111
|
});
|
|
71
112
|
}
|
|
113
|
+
/** Terminate child process by pid */
|
|
72
114
|
kill(pid) {
|
|
73
115
|
const entity = this.getProc(pid);
|
|
74
116
|
if (entity) {
|
|
75
117
|
entity.kill();
|
|
76
118
|
}
|
|
77
119
|
}
|
|
120
|
+
/** Terminate child process by name */
|
|
78
121
|
killByName(name) {
|
|
79
122
|
const entity = this.getProcByName(name);
|
|
80
123
|
if (entity) {
|
|
81
124
|
entity.kill();
|
|
82
125
|
}
|
|
83
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* Get the URL of the specified service
|
|
129
|
+
*
|
|
130
|
+
* @param name - Service name
|
|
131
|
+
* @returns Service URL, or undefined if process does not exist
|
|
132
|
+
*/
|
|
84
133
|
getUrl(name) {
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
|
|
134
|
+
const pid = this.childrenMap[name];
|
|
135
|
+
if (!pid)
|
|
136
|
+
return undefined;
|
|
137
|
+
const child = this.children[String(pid)];
|
|
138
|
+
if (!child)
|
|
139
|
+
return undefined;
|
|
140
|
+
return child.entity.getUrl();
|
|
88
141
|
}
|
|
89
|
-
|
|
142
|
+
/**
|
|
143
|
+
* Get process instance by name
|
|
144
|
+
*
|
|
145
|
+
* @param name - Service name
|
|
146
|
+
* @returns CrossProcess instance
|
|
147
|
+
* @throws Throws error when process does not exist
|
|
148
|
+
*/
|
|
90
149
|
getProcByName(name) {
|
|
91
|
-
// [todo] 如果有名字一样的服务,需要加 pid
|
|
92
150
|
const pid = this.childrenMap[name];
|
|
93
151
|
if (!pid) {
|
|
94
152
|
throw new Error(`[ee-core] [cross] The process named [${name}] does not exit`);
|
|
@@ -96,7 +154,13 @@ class Cross {
|
|
|
96
154
|
const entity = this.getProc(pid);
|
|
97
155
|
return entity;
|
|
98
156
|
}
|
|
99
|
-
|
|
157
|
+
/**
|
|
158
|
+
* Get process instance by pid
|
|
159
|
+
*
|
|
160
|
+
* @param pid - Process ID
|
|
161
|
+
* @returns CrossProcess instance
|
|
162
|
+
* @throws Throws error when process does not exist
|
|
163
|
+
*/
|
|
100
164
|
getProc(pid) {
|
|
101
165
|
const child = this.children[String(pid)];
|
|
102
166
|
if (!child) {
|
|
@@ -104,11 +168,16 @@ class Cross {
|
|
|
104
168
|
}
|
|
105
169
|
return child.entity;
|
|
106
170
|
}
|
|
107
|
-
|
|
171
|
+
/** Get list of all child process pids */
|
|
108
172
|
getPids() {
|
|
109
173
|
const pids = Object.keys(this.children);
|
|
110
174
|
return pids;
|
|
111
175
|
}
|
|
176
|
+
/**
|
|
177
|
+
* Initialize event listeners
|
|
178
|
+
*
|
|
179
|
+
* Listens for child process exit and error events, automatically cleaning up terminated processes from indexes.
|
|
180
|
+
*/
|
|
112
181
|
_initEventEmitter() {
|
|
113
182
|
this.emitter = new events_1.default();
|
|
114
183
|
this.emitter.on(channel_js_1.Events.childProcessExit, (data) => {
|
|
@@ -128,5 +197,6 @@ class Cross {
|
|
|
128
197
|
}
|
|
129
198
|
}
|
|
130
199
|
exports.Cross = Cross;
|
|
200
|
+
/** Cross manager singleton */
|
|
131
201
|
exports.cross = new Cross();
|
|
132
202
|
//# sourceMappingURL=cross.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cross.js","sourceRoot":"","sources":["../../../src/cross/cross.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAkC;AAClC,iDAA+C;AAC/C,kDAAwE;AACxE,
|
|
1
|
+
{"version":3,"file":"cross.js","sourceRoot":"","sources":["../../../src/cross/cross.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,oDAAkC;AAClC,iDAA+C;AAC/C,kDAAwE;AACxE,uDAAiD;AAGjD,oDAA6C;AAC7C,kDAA4C;AAC5C,qDAAiD;AAYjD;;;;;GAKG;AACH,MAAa,KAAK;IAUhB;QACE,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM;QACV,MAAM,QAAQ,GAAG,IAAA,oBAAS,GAAE,CAAC,KAAK,CAAC;QAEnC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBAC/B,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,GAAG,CAAC,OAAe,EAAE,MAAuB,EAAE;QAClD,MAAM,SAAS,GAAG,IAAA,oBAAS,GAAE,CAAC,KAAK,CAAC;QACpC,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,IAAA,kBAAM,EAAC,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,CAAiC,CAAC;QACrF,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,kCAAkC,OAAO,wBAAwB,CAAC,CAAC;QACrF,CAAC;QAED,0BAA0B;QAC1B,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;QACtC,IAAI,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAA,4BAAgB,EAAC,OAAO,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9E,uGAAuG;QACvG,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAClD,QAAQ,GAAG,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,qCAAqC;YACrC,QAAQ,GAAG,MAAM,IAAA,kBAAO,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC7C,mCAAmC;YACnC,UAAU,CAAC,IAAI,GAAG,IAAA,4BAAgB,EAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,uBAAuB;QACvB,MAAM,UAAU,GAAG,IAAI,8BAAY,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1E,IAAI,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC;QACjC,mEAAmE;QACnE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC;YACvE,UAAU,GAAG,UAAU,GAAG,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC;QAC9C,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG;YAC9B,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,UAAU;SACnB,CAAC;QAEF,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,oCAAoC;IACpC,OAAO;QACL,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACzC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qCAAqC;IACrC,IAAI,CAAC,GAAoB;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,UAAU,CAAC,IAAY;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,IAAY;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG;YAAE,OAAO,SAAS,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED;;;;;;OAMG;IACH,aAAa,CAAC,IAAY;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,iBAAiB,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEjC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,GAAoB;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,iBAAiB,CAAC,CAAC;QAC9E,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;IAED,yCAAyC;IACzC,OAAO;QACL,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,iBAAiB;QACf,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAY,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,mBAAM,CAAC,gBAAgB,EAAE,CAAC,IAA0B,EAAE,EAAE;YACtE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9C,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACzC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,mBAAM,CAAC,iBAAiB,EAAE,CAAC,IAA0B,EAAE,EAAE;YACvE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9C,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACzC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAxLD,sBAwLC;AAED,8BAA8B;AACjB,QAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC"}
|
|
@@ -1,46 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module cross/crossProcess
|
|
3
|
+
* @description Cross-process child process management. Encapsulates the logic of using cross-spawn
|
|
4
|
+
* to create external processes, handling process path resolution, platform differences,
|
|
5
|
+
* lifecycle monitoring, and graceful exit.
|
|
6
|
+
*
|
|
7
|
+
* Supported external program types:
|
|
8
|
+
* - Go compiled binaries
|
|
9
|
+
* - Python scripts
|
|
10
|
+
* - Other executable programs
|
|
11
|
+
*
|
|
12
|
+
* Process path resolution rules:
|
|
13
|
+
* - Config has cmd → use cmd as executable file path
|
|
14
|
+
* - Config has no cmd → use extraResourcesDir/{name} as path
|
|
15
|
+
* - Windows platform automatically adds .exe extension
|
|
16
|
+
* - Dev environment relative to project root, production relative to extraResources directory
|
|
17
|
+
*/
|
|
1
18
|
import EventEmitter from 'events';
|
|
2
19
|
import crossSpawn from 'cross-spawn';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
cmd?: string;
|
|
7
|
-
directory?: string;
|
|
8
|
-
windowsExtname?: boolean;
|
|
9
|
-
stdio?: ('pipe' | 'ignore' | 'inherit' | 'ipc')[];
|
|
10
|
-
appExit?: boolean;
|
|
11
|
-
port?: number;
|
|
12
|
-
enable?: boolean;
|
|
13
|
-
}
|
|
20
|
+
import type { CrossTargetConfig } from '../types/index.js';
|
|
21
|
+
export type { CrossTargetConfig };
|
|
22
|
+
/** Options when creating a CrossProcess */
|
|
14
23
|
export interface CrossProcessOptions {
|
|
24
|
+
/** Target service configuration */
|
|
15
25
|
targetConf: CrossTargetConfig;
|
|
26
|
+
/** Allocated port number */
|
|
16
27
|
port: number;
|
|
17
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* CrossProcess - child process instance
|
|
31
|
+
*
|
|
32
|
+
* Encapsulates the complete lifecycle of an external process:
|
|
33
|
+
* Create → Run → Listen for events → Terminate
|
|
34
|
+
*
|
|
35
|
+
* Notifies the Cross manager of child process events (exit/error) via the host's emitter.
|
|
36
|
+
*/
|
|
18
37
|
export declare class CrossProcess {
|
|
38
|
+
/** Event emitter */
|
|
19
39
|
emitter: EventEmitter;
|
|
40
|
+
/** Host (Cross manager), used to notify process events */
|
|
20
41
|
host: CrossHost;
|
|
42
|
+
/** Child process object returned by cross-spawn */
|
|
21
43
|
child: ReturnType<typeof crossSpawn> | undefined;
|
|
44
|
+
/** Child process PID */
|
|
22
45
|
pid: number;
|
|
46
|
+
/** Allocated port number */
|
|
23
47
|
port: number;
|
|
48
|
+
/** Unique service name (may be rewritten by Cross manager to avoid conflicts) */
|
|
24
49
|
name: string;
|
|
50
|
+
/** Service configuration */
|
|
25
51
|
config: CrossTargetConfig;
|
|
26
52
|
constructor(host: CrossHost, opt?: CrossProcessOptions);
|
|
27
53
|
/**
|
|
28
|
-
*
|
|
54
|
+
* Initialize child process
|
|
55
|
+
*
|
|
56
|
+
* Execution flow:
|
|
57
|
+
* 1. Save configuration and port
|
|
58
|
+
* 2. Resolve executable file path (handle cmd/directory configuration and platform differences)
|
|
59
|
+
* 3. Set standard output mode (inherit in dev environment, ignore in production)
|
|
60
|
+
* 4. Start child process using cross-spawn
|
|
61
|
+
* 5. Listen for exit and error events
|
|
29
62
|
*/
|
|
30
63
|
_init(options?: CrossProcessOptions): void;
|
|
31
64
|
/**
|
|
32
|
-
*
|
|
65
|
+
* Terminate child process
|
|
66
|
+
*
|
|
67
|
+
* First sends SIGINT signal for graceful exit, then sends SIGKILL for forced termination if it fails.
|
|
68
|
+
* If the process still hasn't exited after timeout, triggers _exitElectron as a safety net.
|
|
69
|
+
*
|
|
70
|
+
* @param timeout - Timeout for waiting exit (milliseconds)
|
|
33
71
|
*/
|
|
34
72
|
kill(timeout?: number): void;
|
|
73
|
+
/**
|
|
74
|
+
* Get the service URL of the child process
|
|
75
|
+
*
|
|
76
|
+
* Parses hostname and ssl flag from startup arguments, constructs HTTP/HTTPS URL.
|
|
77
|
+
* Outputs warning when port is 0 (service may not have bound port correctly).
|
|
78
|
+
*
|
|
79
|
+
* @returns Service URL, e.g., http://127.0.0.1:7070
|
|
80
|
+
*/
|
|
35
81
|
getUrl(): string;
|
|
82
|
+
/**
|
|
83
|
+
* Get key-value object of startup arguments
|
|
84
|
+
*
|
|
85
|
+
* @returns Parsed arguments object
|
|
86
|
+
*/
|
|
36
87
|
getArgsObj(): Record<string, unknown>;
|
|
88
|
+
/**
|
|
89
|
+
* Set port number
|
|
90
|
+
*
|
|
91
|
+
* @param port - Port number (strings will be converted to numbers)
|
|
92
|
+
*/
|
|
37
93
|
setPort(port: string | number): void;
|
|
94
|
+
/**
|
|
95
|
+
* Generate unique ID
|
|
96
|
+
*
|
|
97
|
+
* @returns Unique identifier in the format 'node:{pid}:{randomString}'
|
|
98
|
+
*/
|
|
38
99
|
_generateId(): string;
|
|
39
100
|
/**
|
|
40
|
-
* exit
|
|
101
|
+
* Trigger Electron main process exit when child process exits
|
|
102
|
+
*
|
|
103
|
+
* Only effective when appExit=true is configured, ensuring the main process also exits when the child process crashes.
|
|
104
|
+
*
|
|
105
|
+
* @param timeout - Delayed exit time (milliseconds), waiting for resource release
|
|
41
106
|
*/
|
|
42
107
|
_exitElectron(timeout?: number): void;
|
|
43
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* CrossHost interface
|
|
111
|
+
*
|
|
112
|
+
* CrossProcess communicates with the host (Cross manager) through this interface,
|
|
113
|
+
* sending child process exit and error events.
|
|
114
|
+
*/
|
|
44
115
|
export interface CrossHost {
|
|
45
116
|
emitter: EventEmitter | undefined;
|
|
46
117
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crossProcess.d.ts","sourceRoot":"","sources":["../../../src/cross/crossProcess.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAElC,OAAO,UAAU,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"crossProcess.d.ts","sourceRoot":"","sources":["../../../src/cross/crossProcess.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,YAAY,MAAM,QAAQ,CAAC;AAElC,OAAO,UAAU,MAAM,aAAa,CAAC;AASrC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAElC,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,qBAAa,YAAY;IACvB,oBAAoB;IACpB,OAAO,EAAE,YAAY,CAAC;IACtB,0DAA0D;IAC1D,IAAI,EAAE,SAAS,CAAC;IAChB,mDAAmD;IACnD,KAAK,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,SAAS,CAAC;IACjD,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,MAAM,EAAE,iBAAiB,CAAC;gBAEd,IAAI,EAAE,SAAS,EAAE,GAAG,GAAE,mBAA2D;IAW7F;;;;;;;;;OASG;IACH,KAAK,CAAC,OAAO,GAAE,mBAA2D,GAAG,IAAI;IAuFjF;;;;;;;OAOG;IACH,IAAI,CAAC,OAAO,SAAO,GAAG,IAAI;IAkB1B;;;;;;;OAOG;IACH,MAAM,IAAI,MAAM;IAgBhB;;;;OAIG;IACH,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAKrC;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIpC;;;;OAIG;IACH,WAAW,IAAI,MAAM;IAKrB;;;;;;OAMG;IACH,aAAa,CAAC,OAAO,SAAO,GAAG,IAAI;CAOpC;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,YAAY,GAAG,SAAS,CAAC;CACnC"}
|
|
@@ -37,6 +37,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.CrossProcess = void 0;
|
|
40
|
+
/**
|
|
41
|
+
* @module cross/crossProcess
|
|
42
|
+
* @description Cross-process child process management. Encapsulates the logic of using cross-spawn
|
|
43
|
+
* to create external processes, handling process path resolution, platform differences,
|
|
44
|
+
* lifecycle monitoring, and graceful exit.
|
|
45
|
+
*
|
|
46
|
+
* Supported external program types:
|
|
47
|
+
* - Go compiled binaries
|
|
48
|
+
* - Python scripts
|
|
49
|
+
* - Other executable programs
|
|
50
|
+
*
|
|
51
|
+
* Process path resolution rules:
|
|
52
|
+
* - Config has cmd → use cmd as executable file path
|
|
53
|
+
* - Config has no cmd → use extraResourcesDir/{name} as path
|
|
54
|
+
* - Windows platform automatically adds .exe extension
|
|
55
|
+
* - Dev environment relative to project root, production relative to extraResources directory
|
|
56
|
+
*/
|
|
40
57
|
const events_1 = __importDefault(require("events"));
|
|
41
58
|
const path_1 = __importDefault(require("path"));
|
|
42
59
|
const cross_spawn_1 = __importDefault(require("cross-spawn"));
|
|
@@ -48,6 +65,14 @@ const helper_js_1 = require("../utils/helper.js");
|
|
|
48
65
|
const pargv_js_1 = require("../utils/pargv.js");
|
|
49
66
|
const is = __importStar(require("../utils/is.js"));
|
|
50
67
|
const index_js_3 = require("../electron/app/index.js");
|
|
68
|
+
/**
|
|
69
|
+
* CrossProcess - child process instance
|
|
70
|
+
*
|
|
71
|
+
* Encapsulates the complete lifecycle of an external process:
|
|
72
|
+
* Create → Run → Listen for events → Terminate
|
|
73
|
+
*
|
|
74
|
+
* Notifies the Cross manager of child process events (exit/error) via the host's emitter.
|
|
75
|
+
*/
|
|
51
76
|
class CrossProcess {
|
|
52
77
|
constructor(host, opt = { targetConf: { name: '' }, port: 0 }) {
|
|
53
78
|
this.emitter = new events_1.default();
|
|
@@ -60,18 +85,26 @@ class CrossProcess {
|
|
|
60
85
|
this._init(opt);
|
|
61
86
|
}
|
|
62
87
|
/**
|
|
63
|
-
*
|
|
88
|
+
* Initialize child process
|
|
89
|
+
*
|
|
90
|
+
* Execution flow:
|
|
91
|
+
* 1. Save configuration and port
|
|
92
|
+
* 2. Resolve executable file path (handle cmd/directory configuration and platform differences)
|
|
93
|
+
* 3. Set standard output mode (inherit in dev environment, ignore in production)
|
|
94
|
+
* 4. Start child process using cross-spawn
|
|
95
|
+
* 5. Listen for exit and error events
|
|
64
96
|
*/
|
|
65
97
|
_init(options = { targetConf: { name: '' }, port: 0 }) {
|
|
66
98
|
const { targetConf, port } = options;
|
|
67
99
|
this.config = targetConf;
|
|
68
100
|
this.port = port;
|
|
69
|
-
//
|
|
101
|
+
// This name may be rewritten by the Cross manager if duplicated in childrenMap
|
|
70
102
|
this.name = targetConf.name;
|
|
71
|
-
//
|
|
103
|
+
// Resolve executable file path
|
|
72
104
|
let cmdPath = '';
|
|
73
105
|
const cmdArgs = targetConf.args || [];
|
|
74
106
|
let execDir = (0, index_js_2.getExtraResourcesDir)();
|
|
107
|
+
// Standard output configuration: inherit terminal output in dev, ignore in production
|
|
75
108
|
let standardOutput = ['inherit', 'inherit', 'inherit', 'ipc'];
|
|
76
109
|
if ((0, index_js_2.isPackaged)()) {
|
|
77
110
|
standardOutput = ['ignore', 'ignore', 'ignore', 'ipc'];
|
|
@@ -80,28 +113,28 @@ class CrossProcess {
|
|
|
80
113
|
standardOutput = targetConf.stdio;
|
|
81
114
|
}
|
|
82
115
|
const { cmd, directory } = targetConf;
|
|
83
|
-
//
|
|
116
|
+
// Prefer cmd configuration
|
|
84
117
|
if (cmd) {
|
|
85
118
|
if (!directory) {
|
|
86
119
|
throw new Error(`[ee-core] [cross] The config [directory] attribute does not exist`);
|
|
87
120
|
}
|
|
88
121
|
cmdPath = cmd;
|
|
122
|
+
// In non-dev environments, relative paths are resolved based on extraResources
|
|
89
123
|
if (!path_1.default.isAbsolute(cmd) && !(0, index_js_2.isDev)()) {
|
|
90
124
|
cmdPath = path_1.default.join((0, index_js_2.getExtraResourcesDir)(), cmd);
|
|
91
125
|
}
|
|
92
126
|
}
|
|
93
127
|
else {
|
|
128
|
+
// Without cmd, use extraResourcesDir/{name} as the executable file path
|
|
94
129
|
cmdPath = path_1.default.join((0, index_js_2.getExtraResourcesDir)(), targetConf.name);
|
|
95
130
|
}
|
|
96
|
-
//
|
|
131
|
+
// Windows platform automatically adds .exe extension
|
|
97
132
|
if (is.windows() && path_1.default.extname(cmdPath) !== '.exe') {
|
|
98
|
-
// Complete the executable program extension
|
|
99
|
-
// notice: python.exe may bring up the App Store
|
|
100
133
|
if (targetConf.windowsExtname === true || !(0, index_js_2.isDev)()) {
|
|
101
134
|
cmdPath += '.exe';
|
|
102
135
|
}
|
|
103
136
|
}
|
|
104
|
-
//
|
|
137
|
+
// Resolve working directory
|
|
105
138
|
if (directory && path_1.default.isAbsolute(directory)) {
|
|
106
139
|
execDir = directory;
|
|
107
140
|
}
|
|
@@ -124,13 +157,14 @@ class CrossProcess {
|
|
|
124
157
|
});
|
|
125
158
|
this.child = coreProcess;
|
|
126
159
|
this.pid = coreProcess.pid || 0;
|
|
160
|
+
// Listen for child process exit: caused by external termination or internal error
|
|
127
161
|
coreProcess.on('exit', (code, signal) => {
|
|
128
162
|
const data = { pid: this.pid };
|
|
129
163
|
this.host.emitter?.emit(channel_js_1.Events.childProcessExit, data);
|
|
130
|
-
// Child process closed: The child process was killed externally or an internal error caused the application to stop, resulting in the application exiting
|
|
131
164
|
index_js_1.coreLogger.info(`[cross/process] received a exit from child-process, code:${code}, signal:${signal}, pid:${this.pid}, cmd:${cmdPath}, args: ${cmdArgs}`);
|
|
132
165
|
this._exitElectron();
|
|
133
166
|
});
|
|
167
|
+
// Listen for child process errors
|
|
134
168
|
coreProcess.on('error', (err) => {
|
|
135
169
|
const data = { pid: this.pid };
|
|
136
170
|
this.host.emitter?.emit(channel_js_1.Events.childProcessError, data);
|
|
@@ -139,20 +173,40 @@ class CrossProcess {
|
|
|
139
173
|
});
|
|
140
174
|
}
|
|
141
175
|
/**
|
|
142
|
-
*
|
|
176
|
+
* Terminate child process
|
|
177
|
+
*
|
|
178
|
+
* First sends SIGINT signal for graceful exit, then sends SIGKILL for forced termination if it fails.
|
|
179
|
+
* If the process still hasn't exited after timeout, triggers _exitElectron as a safety net.
|
|
180
|
+
*
|
|
181
|
+
* @param timeout - Timeout for waiting exit (milliseconds)
|
|
143
182
|
*/
|
|
144
183
|
kill(timeout = 1000) {
|
|
145
184
|
(0, tree_kill_1.default)(this.pid, 'SIGINT', (err) => {
|
|
146
185
|
if (err) {
|
|
147
186
|
index_js_1.coreLogger.error(`[cross/process] kill cross-process, error: ${err}, pid:${this.pid}`);
|
|
187
|
+
// SIGINT failed, use SIGKILL for forced termination
|
|
148
188
|
(0, tree_kill_1.default)(this.pid, 'SIGKILL');
|
|
149
189
|
}
|
|
190
|
+
// Timeout safety net: if exit event is not triggered within timeout, manually call _exitElectron
|
|
150
191
|
setTimeout(() => {
|
|
151
|
-
this.
|
|
192
|
+
if (this.child && !this.child.killed) {
|
|
193
|
+
this._exitElectron();
|
|
194
|
+
}
|
|
152
195
|
}, timeout);
|
|
153
196
|
});
|
|
154
197
|
}
|
|
198
|
+
/**
|
|
199
|
+
* Get the service URL of the child process
|
|
200
|
+
*
|
|
201
|
+
* Parses hostname and ssl flag from startup arguments, constructs HTTP/HTTPS URL.
|
|
202
|
+
* Outputs warning when port is 0 (service may not have bound port correctly).
|
|
203
|
+
*
|
|
204
|
+
* @returns Service URL, e.g., http://127.0.0.1:7070
|
|
205
|
+
*/
|
|
155
206
|
getUrl() {
|
|
207
|
+
if (!this.port) {
|
|
208
|
+
index_js_1.coreLogger.warn(`[cross/process] getUrl called with port 0, pid:${this.pid}`);
|
|
209
|
+
}
|
|
156
210
|
const ssl = (0, helper_js_1.getValueFromArgv)(this.config.args || [], 'ssl');
|
|
157
211
|
let hostname = (0, helper_js_1.getValueFromArgv)(this.config.args || [], 'hostname');
|
|
158
212
|
let protocol = 'http://';
|
|
@@ -163,24 +217,42 @@ class CrossProcess {
|
|
|
163
217
|
const url = protocol + hostname + ':' + this.port;
|
|
164
218
|
return url;
|
|
165
219
|
}
|
|
220
|
+
/**
|
|
221
|
+
* Get key-value object of startup arguments
|
|
222
|
+
*
|
|
223
|
+
* @returns Parsed arguments object
|
|
224
|
+
*/
|
|
166
225
|
getArgsObj() {
|
|
167
226
|
const obj = (0, pargv_js_1.parseArgv)(this.config.args || []);
|
|
168
227
|
return obj;
|
|
169
228
|
}
|
|
229
|
+
/**
|
|
230
|
+
* Set port number
|
|
231
|
+
*
|
|
232
|
+
* @param port - Port number (strings will be converted to numbers)
|
|
233
|
+
*/
|
|
170
234
|
setPort(port) {
|
|
171
235
|
this.port = typeof port === 'string' ? parseInt(port, 10) : port;
|
|
172
236
|
}
|
|
237
|
+
/**
|
|
238
|
+
* Generate unique ID
|
|
239
|
+
*
|
|
240
|
+
* @returns Unique identifier in the format 'node:{pid}:{randomString}'
|
|
241
|
+
*/
|
|
173
242
|
_generateId() {
|
|
174
243
|
const rid = (0, helper_js_1.getRandomString)();
|
|
175
244
|
return `node:${this.pid}:${rid}`;
|
|
176
245
|
}
|
|
177
246
|
/**
|
|
178
|
-
* exit
|
|
247
|
+
* Trigger Electron main process exit when child process exits
|
|
248
|
+
*
|
|
249
|
+
* Only effective when appExit=true is configured, ensuring the main process also exits when the child process crashes.
|
|
250
|
+
*
|
|
251
|
+
* @param timeout - Delayed exit time (milliseconds), waiting for resource release
|
|
179
252
|
*/
|
|
180
253
|
_exitElectron(timeout = 1000) {
|
|
181
254
|
if (this.config.appExit) {
|
|
182
255
|
setTimeout(() => {
|
|
183
|
-
// 主进程退出
|
|
184
256
|
index_js_3.electronApp.quit();
|
|
185
257
|
}, timeout);
|
|
186
258
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crossProcess.js","sourceRoot":"","sources":["../../../src/cross/crossProcess.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,gDAAwB;AACxB,8DAAqC;AACrC,0DAA8B;AAC9B,8CAA6C;AAC7C,6CAAqF;AACrF,oDAA6C;AAC7C,kDAAuE;AACvE,gDAA8C;AAC9C,mDAAqC;AACrC,uDAAuD;
|
|
1
|
+
{"version":3,"file":"crossProcess.js","sourceRoot":"","sources":["../../../src/cross/crossProcess.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module electron/app
|
|
3
|
+
* @description Electron application lifecycle management. Responsible for creating application instances,
|
|
4
|
+
* registering system events, managing single instance locks, and handling cleanup on window close and app exit.
|
|
5
|
+
*
|
|
6
|
+
* Lifecycle:
|
|
7
|
+
* 1. createElectron() — Check single instance lock → app.whenReady() → Create main window → Load page
|
|
8
|
+
* 2. window-all-closed — Quit app on non-macOS platforms
|
|
9
|
+
* 3. before-quit — Clean up cross-process services and child tasks
|
|
10
|
+
*/
|
|
1
11
|
import { app as electronApp } from 'electron';
|
|
2
12
|
export { electronApp };
|
|
3
13
|
/**
|
|
4
|
-
*
|
|
14
|
+
* Create and start Electron application
|
|
15
|
+
*
|
|
16
|
+
* Execution flow:
|
|
17
|
+
* 1. Check single instance lock (when singleLock=true is configured, prevents running multiple instances simultaneously)
|
|
18
|
+
* 2. Wait for app.whenReady() to complete
|
|
19
|
+
* 3. Create main window, emit Preload event, load service page, emit ElectronAppReady event
|
|
20
|
+
* 4. Register system event listeners: window-all-closed, before-quit
|
|
5
21
|
*/
|
|
6
22
|
export declare function createElectron(): void;
|
|
7
23
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/electron/app/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/electron/app/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,UAAU,CAAC;AAS9C,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB;;;;;;;;GAQG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAmCrC"}
|