ee-core 4.1.5 → 5.0.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/app/application.d.ts +41 -0
- package/dist/cjs/app/application.d.ts.map +1 -0
- package/dist/cjs/app/application.js +68 -0
- package/dist/cjs/app/application.js.map +1 -0
- package/dist/cjs/app/boot.d.ts +64 -0
- package/dist/cjs/app/boot.d.ts.map +1 -0
- package/dist/cjs/app/boot.js +138 -0
- package/dist/cjs/app/boot.js.map +1 -0
- package/dist/cjs/app/dir.d.ts +12 -0
- package/dist/cjs/app/dir.d.ts.map +1 -0
- package/dist/cjs/app/dir.js +88 -0
- package/dist/cjs/app/dir.js.map +1 -0
- package/dist/cjs/app/events.d.ts +71 -0
- package/dist/cjs/app/events.d.ts.map +1 -0
- package/dist/cjs/app/events.js +124 -0
- package/dist/cjs/app/events.js.map +1 -0
- package/dist/cjs/config/config_loader.d.ts +54 -0
- package/dist/cjs/config/config_loader.d.ts.map +1 -0
- package/dist/cjs/config/config_loader.js +137 -0
- package/dist/cjs/config/config_loader.js.map +1 -0
- package/dist/cjs/config/default_config.d.ts +8 -0
- package/dist/cjs/config/default_config.d.ts.map +1 -0
- package/dist/cjs/config/default_config.js +196 -0
- package/dist/cjs/config/default_config.js.map +1 -0
- package/dist/cjs/config/index.d.ts +34 -0
- package/dist/cjs/config/index.d.ts.map +1 -0
- package/dist/cjs/config/index.js +69 -0
- package/dist/cjs/config/index.js.map +1 -0
- package/dist/cjs/const/channel.d.ts +34 -0
- package/dist/cjs/const/channel.d.ts.map +1 -0
- package/dist/cjs/const/channel.js +37 -0
- package/dist/cjs/const/channel.js.map +1 -0
- package/dist/cjs/controller/controller_loader.d.ts +29 -0
- package/dist/cjs/controller/controller_loader.d.ts.map +1 -0
- package/dist/cjs/controller/controller_loader.js +158 -0
- package/dist/cjs/controller/controller_loader.js.map +1 -0
- package/dist/cjs/controller/index.d.ts +36 -0
- package/dist/cjs/controller/index.d.ts.map +1 -0
- package/dist/cjs/controller/index.js +88 -0
- package/dist/cjs/controller/index.js.map +1 -0
- package/dist/cjs/core/loader/file_loader.d.ts +112 -0
- package/dist/cjs/core/loader/file_loader.d.ts.map +1 -0
- package/dist/cjs/core/loader/file_loader.js +283 -0
- package/dist/cjs/core/loader/file_loader.js.map +1 -0
- package/dist/cjs/core/utils/index.d.ts +70 -0
- package/dist/cjs/core/utils/index.d.ts.map +1 -0
- package/dist/cjs/core/utils/index.js +181 -0
- package/dist/cjs/core/utils/index.js.map +1 -0
- package/dist/cjs/core/utils/timing.d.ts +65 -0
- package/dist/cjs/core/utils/timing.d.ts.map +1 -0
- package/dist/cjs/core/utils/timing.js +107 -0
- package/dist/cjs/core/utils/timing.js.map +1 -0
- package/dist/cjs/cross/cross.d.ts +104 -0
- package/dist/cjs/cross/cross.d.ts.map +1 -0
- package/dist/cjs/cross/cross.js +202 -0
- package/dist/cjs/cross/cross.js.map +1 -0
- package/dist/cjs/cross/crossProcess.d.ts +118 -0
- package/dist/cjs/cross/crossProcess.d.ts.map +1 -0
- package/dist/cjs/cross/crossProcess.js +262 -0
- package/dist/cjs/cross/crossProcess.js.map +1 -0
- package/dist/cjs/cross/index.d.ts +4 -0
- package/dist/cjs/cross/index.d.ts.map +1 -0
- package/dist/cjs/cross/index.js +9 -0
- package/dist/cjs/cross/index.js.map +1 -0
- package/dist/cjs/electron/app/index.d.ts +23 -0
- package/dist/cjs/electron/app/index.d.ts.map +1 -0
- package/dist/cjs/electron/app/index.js +99 -0
- package/dist/cjs/electron/app/index.js.map +1 -0
- package/dist/cjs/electron/index.d.ts +10 -0
- package/dist/cjs/electron/index.d.ts.map +1 -0
- package/dist/cjs/electron/index.js +35 -0
- package/dist/cjs/electron/index.js.map +1 -0
- package/dist/cjs/electron/window/index.d.ts +45 -0
- package/dist/cjs/electron/window/index.d.ts.map +1 -0
- package/dist/cjs/electron/window/index.js +311 -0
- package/dist/cjs/electron/window/index.js.map +1 -0
- package/dist/cjs/exception/index.d.ts +15 -0
- package/dist/cjs/exception/index.d.ts.map +1 -0
- package/dist/cjs/exception/index.js +145 -0
- package/dist/cjs/exception/index.js.map +1 -0
- package/dist/cjs/html/index.d.ts +21 -0
- package/dist/cjs/html/index.d.ts.map +1 -0
- package/dist/cjs/html/index.js +59 -0
- package/dist/cjs/html/index.js.map +1 -0
- package/dist/cjs/index.d.ts +60 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +245 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/jobs/child/app.d.ts +2 -0
- package/dist/cjs/jobs/child/app.d.ts.map +1 -0
- package/dist/cjs/jobs/child/app.js +132 -0
- package/dist/cjs/jobs/child/app.js.map +1 -0
- package/dist/cjs/jobs/child/index.d.ts +29 -0
- package/dist/cjs/jobs/child/index.d.ts.map +1 -0
- package/dist/cjs/jobs/child/index.js +78 -0
- package/dist/cjs/jobs/child/index.js.map +1 -0
- package/dist/cjs/jobs/child/jobProcess.d.ts +102 -0
- package/dist/cjs/jobs/child/jobProcess.d.ts.map +1 -0
- package/dist/cjs/jobs/child/jobProcess.js +196 -0
- package/dist/cjs/jobs/child/jobProcess.js.map +1 -0
- package/dist/cjs/jobs/child-pool/index.d.ts +126 -0
- package/dist/cjs/jobs/child-pool/index.d.ts.map +1 -0
- package/dist/cjs/jobs/child-pool/index.js +252 -0
- package/dist/cjs/jobs/child-pool/index.js.map +1 -0
- package/dist/cjs/jobs/index.d.ts +18 -0
- package/dist/cjs/jobs/index.d.ts.map +1 -0
- package/dist/cjs/jobs/index.js +22 -0
- package/dist/cjs/jobs/index.js.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts +7 -0
- package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/index.js +32 -0
- package/dist/cjs/jobs/load-balancer/algorithm/index.js.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.d.ts +6 -0
- package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.d.ts.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.js +27 -0
- package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.js.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/polling.d.ts +6 -0
- package/dist/cjs/jobs/load-balancer/algorithm/polling.d.ts.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/polling.js +15 -0
- package/dist/cjs/jobs/load-balancer/algorithm/polling.js.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/random.d.ts +6 -0
- package/dist/cjs/jobs/load-balancer/algorithm/random.d.ts.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/random.js +12 -0
- package/dist/cjs/jobs/load-balancer/algorithm/random.js.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/specify.d.ts +6 -0
- package/dist/cjs/jobs/load-balancer/algorithm/specify.d.ts.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/specify.js +18 -0
- package/dist/cjs/jobs/load-balancer/algorithm/specify.js.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts +6 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weights.js +26 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weights.js.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +6 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js +32 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.d.ts +6 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.d.ts.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.js +26 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.js.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.d.ts +6 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.d.ts.map +1 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.js +22 -0
- package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.js.map +1 -0
- package/dist/cjs/jobs/load-balancer/consts.d.ts +35 -0
- package/dist/cjs/jobs/load-balancer/consts.d.ts.map +1 -0
- package/dist/cjs/jobs/load-balancer/consts.js +36 -0
- package/dist/cjs/jobs/load-balancer/consts.js.map +1 -0
- package/dist/cjs/jobs/load-balancer/index.d.ts +84 -0
- package/dist/cjs/jobs/load-balancer/index.d.ts.map +1 -0
- package/dist/cjs/jobs/load-balancer/index.js +195 -0
- package/dist/cjs/jobs/load-balancer/index.js.map +1 -0
- package/dist/cjs/jobs/load-balancer/scheduler.d.ts +17 -0
- package/dist/cjs/jobs/load-balancer/scheduler.d.ts.map +1 -0
- package/dist/cjs/jobs/load-balancer/scheduler.js +36 -0
- package/dist/cjs/jobs/load-balancer/scheduler.js.map +1 -0
- package/dist/cjs/jobs/load-balancer/types.d.ts +43 -0
- package/dist/cjs/jobs/load-balancer/types.d.ts.map +1 -0
- package/dist/cjs/jobs/load-balancer/types.js +7 -0
- package/dist/cjs/jobs/load-balancer/types.js.map +1 -0
- package/dist/cjs/jobs/registry.d.ts +24 -0
- package/dist/cjs/jobs/registry.d.ts.map +1 -0
- package/dist/cjs/jobs/registry.js +52 -0
- package/dist/cjs/jobs/registry.js.map +1 -0
- package/dist/cjs/loader/index.d.ts +58 -0
- package/dist/cjs/loader/index.d.ts.map +1 -0
- package/dist/cjs/loader/index.js +151 -0
- package/dist/cjs/loader/index.js.map +1 -0
- package/dist/cjs/log/index.d.ts +59 -0
- package/dist/cjs/log/index.d.ts.map +1 -0
- package/dist/cjs/log/index.js +123 -0
- package/dist/cjs/log/index.js.map +1 -0
- package/dist/cjs/log/logger.d.ts +35 -0
- package/dist/cjs/log/logger.d.ts.map +1 -0
- package/dist/cjs/log/logger.js +246 -0
- package/dist/cjs/log/logger.js.map +1 -0
- package/dist/cjs/message/childMessage.d.ts +58 -0
- package/dist/cjs/message/childMessage.d.ts.map +1 -0
- package/dist/cjs/message/childMessage.js +118 -0
- package/dist/cjs/message/childMessage.js.map +1 -0
- package/dist/cjs/message/index.d.ts +2 -0
- package/dist/cjs/message/index.d.ts.map +1 -0
- package/dist/cjs/message/index.js +7 -0
- package/dist/cjs/message/index.js.map +1 -0
- package/dist/cjs/ps/index.d.ts +155 -0
- package/dist/cjs/ps/index.d.ts.map +1 -0
- package/dist/cjs/ps/index.js +369 -0
- package/dist/cjs/ps/index.js.map +1 -0
- package/dist/cjs/socket/httpServer.d.ts +74 -0
- package/dist/cjs/socket/httpServer.d.ts.map +1 -0
- package/dist/cjs/socket/httpServer.js +240 -0
- package/dist/cjs/socket/httpServer.js.map +1 -0
- package/dist/cjs/socket/index.d.ts +60 -0
- package/dist/cjs/socket/index.d.ts.map +1 -0
- package/dist/cjs/socket/index.js +103 -0
- package/dist/cjs/socket/index.js.map +1 -0
- package/dist/cjs/socket/ipcServer.d.ts +40 -0
- package/dist/cjs/socket/ipcServer.d.ts.map +1 -0
- package/dist/cjs/socket/ipcServer.js +124 -0
- package/dist/cjs/socket/ipcServer.js.map +1 -0
- package/dist/cjs/socket/socketServer.d.ts +43 -0
- package/dist/cjs/socket/socketServer.d.ts.map +1 -0
- package/dist/cjs/socket/socketServer.js +116 -0
- package/dist/cjs/socket/socketServer.js.map +1 -0
- package/dist/cjs/socket/utils.d.ts +13 -0
- package/dist/cjs/socket/utils.d.ts.map +1 -0
- package/dist/cjs/socket/utils.js +41 -0
- package/dist/cjs/socket/utils.js.map +1 -0
- package/dist/cjs/storage/index.d.ts +2 -0
- package/dist/cjs/storage/index.d.ts.map +1 -0
- package/dist/cjs/storage/index.js +6 -0
- package/dist/cjs/storage/index.js.map +1 -0
- package/dist/cjs/storage/sqliteStorage.d.ts +117 -0
- package/dist/cjs/storage/sqliteStorage.d.ts.map +1 -0
- package/dist/cjs/storage/sqliteStorage.js +197 -0
- package/dist/cjs/storage/sqliteStorage.js.map +1 -0
- package/dist/cjs/types/index.d.ts +524 -0
- package/dist/cjs/types/index.d.ts.map +1 -0
- package/dist/cjs/types/index.js +3 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/utils/extend.d.ts +46 -0
- package/dist/cjs/utils/extend.d.ts.map +1 -0
- package/dist/cjs/utils/extend.js +105 -0
- package/dist/cjs/utils/extend.js.map +1 -0
- package/dist/cjs/utils/helper.d.ts +169 -0
- package/dist/cjs/utils/helper.d.ts.map +1 -0
- package/dist/cjs/utils/helper.js +351 -0
- package/dist/cjs/utils/helper.js.map +1 -0
- package/dist/cjs/utils/index.d.ts +113 -0
- package/dist/cjs/utils/index.d.ts.map +1 -0
- package/dist/cjs/utils/index.js +344 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/ip.d.ts +42 -0
- package/dist/cjs/utils/ip.d.ts.map +1 -0
- package/dist/cjs/utils/ip.js +276 -0
- package/dist/cjs/utils/ip.js.map +1 -0
- package/dist/cjs/utils/is.d.ts +138 -0
- package/dist/cjs/utils/is.d.ts.map +1 -0
- package/dist/cjs/utils/is.js +203 -0
- package/dist/cjs/utils/is.js.map +1 -0
- package/dist/cjs/utils/json.d.ts +64 -0
- package/dist/cjs/utils/json.d.ts.map +1 -0
- package/dist/cjs/utils/json.js +122 -0
- package/dist/cjs/utils/json.js.map +1 -0
- package/dist/cjs/utils/pargv.d.ts +67 -0
- package/dist/cjs/utils/pargv.d.ts.map +1 -0
- package/dist/cjs/utils/pargv.js +406 -0
- package/dist/cjs/utils/pargv.js.map +1 -0
- package/dist/cjs/utils/port/index.d.ts +48 -0
- package/dist/cjs/utils/port/index.d.ts.map +1 -0
- package/dist/cjs/utils/port/index.js +235 -0
- package/dist/cjs/utils/port/index.js.map +1 -0
- package/dist/cjs/utils/type_check.d.ts +88 -0
- package/dist/cjs/utils/type_check.d.ts.map +1 -0
- package/dist/cjs/utils/type_check.js +121 -0
- package/dist/cjs/utils/type_check.js.map +1 -0
- package/dist/cjs/utils/wrap.d.ts +31 -0
- package/dist/cjs/utils/wrap.d.ts.map +1 -0
- package/dist/cjs/utils/wrap.js +88 -0
- package/dist/cjs/utils/wrap.js.map +1 -0
- package/dist/esm/app/application.d.ts +41 -0
- package/dist/esm/app/application.d.ts.map +1 -0
- package/dist/esm/app/application.js +68 -0
- package/dist/esm/app/application.js.map +1 -0
- package/dist/esm/app/boot.d.ts +64 -0
- package/dist/esm/app/boot.d.ts.map +1 -0
- package/dist/esm/app/boot.js +138 -0
- package/dist/esm/app/boot.js.map +1 -0
- package/dist/esm/app/dir.d.ts +12 -0
- package/dist/esm/app/dir.d.ts.map +1 -0
- package/dist/esm/app/dir.js +88 -0
- package/dist/esm/app/dir.js.map +1 -0
- package/dist/esm/app/events.d.ts +71 -0
- package/dist/esm/app/events.d.ts.map +1 -0
- package/dist/esm/app/events.js +124 -0
- package/dist/esm/app/events.js.map +1 -0
- package/dist/esm/config/config_loader.d.ts +54 -0
- package/dist/esm/config/config_loader.d.ts.map +1 -0
- package/dist/esm/config/config_loader.js +137 -0
- package/dist/esm/config/config_loader.js.map +1 -0
- package/dist/esm/config/default_config.d.ts +8 -0
- package/dist/esm/config/default_config.d.ts.map +1 -0
- package/dist/esm/config/default_config.js +196 -0
- package/dist/esm/config/default_config.js.map +1 -0
- package/dist/esm/config/index.d.ts +34 -0
- package/dist/esm/config/index.d.ts.map +1 -0
- package/dist/esm/config/index.js +69 -0
- package/dist/esm/config/index.js.map +1 -0
- package/dist/esm/const/channel.d.ts +34 -0
- package/dist/esm/const/channel.d.ts.map +1 -0
- package/dist/esm/const/channel.js +37 -0
- package/dist/esm/const/channel.js.map +1 -0
- package/dist/esm/controller/controller_loader.d.ts +29 -0
- package/dist/esm/controller/controller_loader.d.ts.map +1 -0
- package/dist/esm/controller/controller_loader.js +158 -0
- package/dist/esm/controller/controller_loader.js.map +1 -0
- package/dist/esm/controller/index.d.ts +36 -0
- package/dist/esm/controller/index.d.ts.map +1 -0
- package/dist/esm/controller/index.js +88 -0
- package/dist/esm/controller/index.js.map +1 -0
- package/dist/esm/core/loader/file_loader.d.ts +112 -0
- package/dist/esm/core/loader/file_loader.d.ts.map +1 -0
- package/dist/esm/core/loader/file_loader.js +283 -0
- package/dist/esm/core/loader/file_loader.js.map +1 -0
- package/dist/esm/core/utils/index.d.ts +70 -0
- package/dist/esm/core/utils/index.d.ts.map +1 -0
- package/dist/esm/core/utils/index.js +148 -0
- package/dist/esm/core/utils/index.js.map +1 -0
- package/dist/esm/core/utils/timing.d.ts +65 -0
- package/dist/esm/core/utils/timing.d.ts.map +1 -0
- package/dist/esm/core/utils/timing.js +107 -0
- package/dist/esm/core/utils/timing.js.map +1 -0
- package/dist/esm/cross/cross.d.ts +104 -0
- package/dist/esm/cross/cross.d.ts.map +1 -0
- package/dist/esm/cross/cross.js +202 -0
- package/dist/esm/cross/cross.js.map +1 -0
- package/dist/esm/cross/crossProcess.d.ts +118 -0
- package/dist/esm/cross/crossProcess.d.ts.map +1 -0
- package/dist/esm/cross/crossProcess.js +262 -0
- package/dist/esm/cross/crossProcess.js.map +1 -0
- package/dist/esm/cross/index.d.ts +4 -0
- package/dist/esm/cross/index.d.ts.map +1 -0
- package/dist/esm/cross/index.js +9 -0
- package/dist/esm/cross/index.js.map +1 -0
- package/dist/esm/electron/app/index.d.ts +23 -0
- package/dist/esm/electron/app/index.d.ts.map +1 -0
- package/dist/esm/electron/app/index.js +99 -0
- package/dist/esm/electron/app/index.js.map +1 -0
- package/dist/esm/electron/index.d.ts +10 -0
- package/dist/esm/electron/index.d.ts.map +1 -0
- package/dist/esm/electron/index.js +35 -0
- package/dist/esm/electron/index.js.map +1 -0
- package/dist/esm/electron/window/index.d.ts +45 -0
- package/dist/esm/electron/window/index.d.ts.map +1 -0
- package/dist/esm/electron/window/index.js +311 -0
- package/dist/esm/electron/window/index.js.map +1 -0
- package/dist/esm/exception/index.d.ts +15 -0
- package/dist/esm/exception/index.d.ts.map +1 -0
- package/dist/esm/exception/index.js +145 -0
- package/dist/esm/exception/index.js.map +1 -0
- package/dist/esm/html/index.d.ts +21 -0
- package/dist/esm/html/index.d.ts.map +1 -0
- package/dist/esm/html/index.js +59 -0
- package/dist/esm/html/index.js.map +1 -0
- package/dist/esm/index.d.ts +60 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +245 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/jobs/child/app.d.ts +2 -0
- package/dist/esm/jobs/child/app.d.ts.map +1 -0
- package/dist/esm/jobs/child/app.js +132 -0
- package/dist/esm/jobs/child/app.js.map +1 -0
- package/dist/esm/jobs/child/index.d.ts +29 -0
- package/dist/esm/jobs/child/index.d.ts.map +1 -0
- package/dist/esm/jobs/child/index.js +78 -0
- package/dist/esm/jobs/child/index.js.map +1 -0
- package/dist/esm/jobs/child/jobProcess.d.ts +102 -0
- package/dist/esm/jobs/child/jobProcess.d.ts.map +1 -0
- package/dist/esm/jobs/child/jobProcess.js +196 -0
- package/dist/esm/jobs/child/jobProcess.js.map +1 -0
- package/dist/esm/jobs/child-pool/index.d.ts +126 -0
- package/dist/esm/jobs/child-pool/index.d.ts.map +1 -0
- package/dist/esm/jobs/child-pool/index.js +252 -0
- package/dist/esm/jobs/child-pool/index.js.map +1 -0
- package/dist/esm/jobs/index.d.ts +18 -0
- package/dist/esm/jobs/index.d.ts.map +1 -0
- package/dist/esm/jobs/index.js +22 -0
- package/dist/esm/jobs/index.js.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/index.d.ts +7 -0
- package/dist/esm/jobs/load-balancer/algorithm/index.d.ts.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/index.js +32 -0
- package/dist/esm/jobs/load-balancer/algorithm/index.js.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.d.ts +6 -0
- package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.d.ts.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.js +27 -0
- package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.js.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/polling.d.ts +6 -0
- package/dist/esm/jobs/load-balancer/algorithm/polling.d.ts.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/polling.js +15 -0
- package/dist/esm/jobs/load-balancer/algorithm/polling.js.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/random.d.ts +6 -0
- package/dist/esm/jobs/load-balancer/algorithm/random.d.ts.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/random.js +12 -0
- package/dist/esm/jobs/load-balancer/algorithm/random.js.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/specify.d.ts +6 -0
- package/dist/esm/jobs/load-balancer/algorithm/specify.d.ts.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/specify.js +18 -0
- package/dist/esm/jobs/load-balancer/algorithm/specify.js.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts +6 -0
- package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/weights.js +26 -0
- package/dist/esm/jobs/load-balancer/algorithm/weights.js.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +6 -0
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js +32 -0
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.d.ts +6 -0
- package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.d.ts.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.js +26 -0
- package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.js.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.d.ts +6 -0
- package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.d.ts.map +1 -0
- package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.js +22 -0
- package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.js.map +1 -0
- package/dist/esm/jobs/load-balancer/consts.d.ts +35 -0
- package/dist/esm/jobs/load-balancer/consts.d.ts.map +1 -0
- package/dist/esm/jobs/load-balancer/consts.js +36 -0
- package/dist/esm/jobs/load-balancer/consts.js.map +1 -0
- package/dist/esm/jobs/load-balancer/index.d.ts +84 -0
- package/dist/esm/jobs/load-balancer/index.d.ts.map +1 -0
- package/dist/esm/jobs/load-balancer/index.js +195 -0
- package/dist/esm/jobs/load-balancer/index.js.map +1 -0
- package/dist/esm/jobs/load-balancer/scheduler.d.ts +17 -0
- package/dist/esm/jobs/load-balancer/scheduler.d.ts.map +1 -0
- package/dist/esm/jobs/load-balancer/scheduler.js +36 -0
- package/dist/esm/jobs/load-balancer/scheduler.js.map +1 -0
- package/dist/esm/jobs/load-balancer/types.d.ts +43 -0
- package/dist/esm/jobs/load-balancer/types.d.ts.map +1 -0
- package/dist/esm/jobs/load-balancer/types.js +7 -0
- package/dist/esm/jobs/load-balancer/types.js.map +1 -0
- package/dist/esm/jobs/registry.d.ts +24 -0
- package/dist/esm/jobs/registry.d.ts.map +1 -0
- package/dist/esm/jobs/registry.js +52 -0
- package/dist/esm/jobs/registry.js.map +1 -0
- package/dist/esm/loader/index.d.ts +58 -0
- package/dist/esm/loader/index.d.ts.map +1 -0
- package/dist/esm/loader/index.js +151 -0
- package/dist/esm/loader/index.js.map +1 -0
- package/dist/esm/log/index.d.ts +59 -0
- package/dist/esm/log/index.d.ts.map +1 -0
- package/dist/esm/log/index.js +123 -0
- package/dist/esm/log/index.js.map +1 -0
- package/dist/esm/log/logger.d.ts +35 -0
- package/dist/esm/log/logger.d.ts.map +1 -0
- package/dist/esm/log/logger.js +246 -0
- package/dist/esm/log/logger.js.map +1 -0
- package/dist/esm/message/childMessage.d.ts +58 -0
- package/dist/esm/message/childMessage.d.ts.map +1 -0
- package/dist/esm/message/childMessage.js +118 -0
- package/dist/esm/message/childMessage.js.map +1 -0
- package/dist/esm/message/index.d.ts +2 -0
- package/dist/esm/message/index.d.ts.map +1 -0
- package/dist/esm/message/index.js +7 -0
- package/dist/esm/message/index.js.map +1 -0
- package/dist/esm/ps/index.d.ts +155 -0
- package/dist/esm/ps/index.d.ts.map +1 -0
- package/dist/esm/ps/index.js +369 -0
- package/dist/esm/ps/index.js.map +1 -0
- package/dist/esm/socket/httpServer.d.ts +74 -0
- package/dist/esm/socket/httpServer.d.ts.map +1 -0
- package/dist/esm/socket/httpServer.js +240 -0
- package/dist/esm/socket/httpServer.js.map +1 -0
- package/dist/esm/socket/index.d.ts +60 -0
- package/dist/esm/socket/index.d.ts.map +1 -0
- package/dist/esm/socket/index.js +103 -0
- package/dist/esm/socket/index.js.map +1 -0
- package/dist/esm/socket/ipcServer.d.ts +40 -0
- package/dist/esm/socket/ipcServer.d.ts.map +1 -0
- package/dist/esm/socket/ipcServer.js +124 -0
- package/dist/esm/socket/ipcServer.js.map +1 -0
- package/dist/esm/socket/socketServer.d.ts +43 -0
- package/dist/esm/socket/socketServer.d.ts.map +1 -0
- package/dist/esm/socket/socketServer.js +116 -0
- package/dist/esm/socket/socketServer.js.map +1 -0
- package/dist/esm/socket/utils.d.ts +13 -0
- package/dist/esm/socket/utils.d.ts.map +1 -0
- package/dist/esm/socket/utils.js +41 -0
- package/dist/esm/socket/utils.js.map +1 -0
- package/dist/esm/storage/index.d.ts +2 -0
- package/dist/esm/storage/index.d.ts.map +1 -0
- package/dist/esm/storage/index.js +6 -0
- package/dist/esm/storage/index.js.map +1 -0
- package/dist/esm/storage/sqliteStorage.d.ts +117 -0
- package/dist/esm/storage/sqliteStorage.d.ts.map +1 -0
- package/dist/esm/storage/sqliteStorage.js +197 -0
- package/dist/esm/storage/sqliteStorage.js.map +1 -0
- package/dist/esm/types/index.d.ts +524 -0
- package/dist/esm/types/index.d.ts.map +1 -0
- package/dist/esm/types/index.js +3 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/utils/extend.d.ts +46 -0
- package/dist/esm/utils/extend.d.ts.map +1 -0
- package/dist/esm/utils/extend.js +105 -0
- package/dist/esm/utils/extend.js.map +1 -0
- package/dist/esm/utils/helper.d.ts +169 -0
- package/dist/esm/utils/helper.d.ts.map +1 -0
- package/dist/esm/utils/helper.js +351 -0
- package/dist/esm/utils/helper.js.map +1 -0
- package/dist/esm/utils/index.d.ts +113 -0
- package/dist/esm/utils/index.d.ts.map +1 -0
- package/dist/esm/utils/index.js +344 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/ip.d.ts +42 -0
- package/dist/esm/utils/ip.d.ts.map +1 -0
- package/dist/esm/utils/ip.js +276 -0
- package/dist/esm/utils/ip.js.map +1 -0
- package/dist/esm/utils/is.d.ts +138 -0
- package/dist/esm/utils/is.d.ts.map +1 -0
- package/dist/esm/utils/is.js +203 -0
- package/dist/esm/utils/is.js.map +1 -0
- package/dist/esm/utils/json.d.ts +64 -0
- package/dist/esm/utils/json.d.ts.map +1 -0
- package/dist/esm/utils/json.js +122 -0
- package/dist/esm/utils/json.js.map +1 -0
- package/dist/esm/utils/pargv.d.ts +67 -0
- package/dist/esm/utils/pargv.d.ts.map +1 -0
- package/dist/esm/utils/pargv.js +406 -0
- package/dist/esm/utils/pargv.js.map +1 -0
- package/dist/esm/utils/port/index.d.ts +48 -0
- package/dist/esm/utils/port/index.d.ts.map +1 -0
- package/dist/esm/utils/port/index.js +235 -0
- package/dist/esm/utils/port/index.js.map +1 -0
- package/dist/esm/utils/type_check.d.ts +88 -0
- package/dist/esm/utils/type_check.d.ts.map +1 -0
- package/dist/esm/utils/type_check.js +121 -0
- package/dist/esm/utils/type_check.js.map +1 -0
- package/dist/esm/utils/wrap.d.ts +31 -0
- package/dist/esm/utils/wrap.d.ts.map +1 -0
- package/dist/esm/utils/wrap.js +88 -0
- package/dist/esm/utils/wrap.js.map +1 -0
- package/package.json +424 -27
- package/LICENSE +0 -21
- package/README.md +0 -66
- package/app/application.d.ts +0 -5
- package/app/application.js +0 -31
- package/app/boot.d.ts +0 -5
- package/app/boot.js +0 -81
- package/app/dir.d.ts +0 -1
- package/app/dir.js +0 -27
- package/app/events.d.ts +0 -14
- package/app/events.js +0 -56
- package/app/index.d.ts +0 -2
- package/app/index.js +0 -7
- package/config/config_loader.d.ts +0 -13
- package/config/config_loader.js +0 -66
- package/config/default_config.d.ts +0 -95
- package/config/default_config.js +0 -111
- package/config/index.d.ts +0 -28
- package/config/index.js +0 -25
- package/const/channel.d.ts +0 -16
- package/const/channel.js +0 -28
- package/controller/controller_loader.d.ts +0 -9
- package/controller/controller_loader.js +0 -78
- package/controller/index.d.ts +0 -2
- package/controller/index.js +0 -24
- package/core/index.d.ts +0 -2
- package/core/index.js +0 -12
- package/core/loader/file_loader.d.ts +0 -66
- package/core/loader/file_loader.js +0 -212
- package/core/utils/index.d.ts +0 -12
- package/core/utils/index.js +0 -83
- package/core/utils/timing.d.ts +0 -22
- package/core/utils/timing.js +0 -78
- package/cross/cross.d.ts +0 -19
- package/cross/cross.js +0 -153
- package/cross/crossProcess.d.ts +0 -29
- package/cross/crossProcess.js +0 -173
- package/cross/index.d.ts +0 -2
- package/cross/index.js +0 -8
- package/electron/app/index.d.ts +0 -5
- package/electron/app/index.js +0 -48
- package/electron/index.d.ts +0 -3
- package/electron/index.js +0 -16
- package/electron/window/index.d.ts +0 -6
- package/electron/window/index.js +0 -269
- package/exception/index.d.ts +0 -9
- package/exception/index.js +0 -101
- package/html/boot.html +0 -98
- package/html/cross-failure.html +0 -28
- package/html/failure.html +0 -28
- package/html/index.d.ts +0 -1
- package/html/index.js +0 -11
- package/index.d.ts +0 -2
- package/index.js +0 -7
- package/jobs/child/app.d.ts +0 -1
- package/jobs/child/app.js +0 -70
- package/jobs/child/index.d.ts +0 -13
- package/jobs/child/index.js +0 -85
- package/jobs/child/jobProcess.d.ts +0 -16
- package/jobs/child/jobProcess.js +0 -134
- package/jobs/child-pool/index.d.ts +0 -26
- package/jobs/child-pool/index.js +0 -190
- package/jobs/index.d.ts +0 -3
- package/jobs/index.js +0 -7
- package/jobs/load-balancer/algorithm/index.d.ts +0 -4
- package/jobs/load-balancer/algorithm/index.js +0 -12
- package/jobs/load-balancer/algorithm/minimumConnection.d.ts +0 -2
- package/jobs/load-balancer/algorithm/minimumConnection.js +0 -19
- package/jobs/load-balancer/algorithm/polling.d.ts +0 -2
- package/jobs/load-balancer/algorithm/polling.js +0 -12
- package/jobs/load-balancer/algorithm/random.d.ts +0 -2
- package/jobs/load-balancer/algorithm/random.js +0 -10
- package/jobs/load-balancer/algorithm/specify.d.ts +0 -2
- package/jobs/load-balancer/algorithm/specify.js +0 -15
- package/jobs/load-balancer/algorithm/weights.d.ts +0 -2
- package/jobs/load-balancer/algorithm/weights.js +0 -22
- package/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +0 -2
- package/jobs/load-balancer/algorithm/weightsMinimumConnection.js +0 -30
- package/jobs/load-balancer/algorithm/weightsPolling.d.ts +0 -2
- package/jobs/load-balancer/algorithm/weightsPolling.js +0 -23
- package/jobs/load-balancer/algorithm/weightsRandom.d.ts +0 -2
- package/jobs/load-balancer/algorithm/weightsRandom.js +0 -17
- package/jobs/load-balancer/consts.d.ts +0 -8
- package/jobs/load-balancer/consts.js +0 -10
- package/jobs/load-balancer/index.d.ts +0 -96
- package/jobs/load-balancer/index.js +0 -202
- package/jobs/load-balancer/scheduler.d.ts +0 -16
- package/jobs/load-balancer/scheduler.js +0 -32
- package/loader/index.d.ts +0 -9
- package/loader/index.js +0 -99
- package/log/index.d.ts +0 -5
- package/log/index.js +0 -86
- package/log/logger.d.ts +0 -2
- package/log/logger.js +0 -95
- package/message/childMessage.d.ts +0 -10
- package/message/childMessage.js +0 -43
- package/message/index.d.ts +0 -3
- package/message/index.js +0 -10
- package/ps/index.d.ts +0 -39
- package/ps/index.js +0 -295
- package/socket/httpServer.d.ts +0 -8
- package/socket/httpServer.js +0 -199
- package/socket/index.d.ts +0 -10
- package/socket/index.js +0 -65
- package/socket/ipcServer.d.ts +0 -9
- package/socket/ipcServer.js +0 -106
- package/socket/socketServer.d.ts +0 -10
- package/socket/socketServer.js +0 -82
- package/storage/index.d.ts +0 -5
- package/storage/index.js +0 -7
- package/storage/sqliteStorage.d.ts +0 -16
- package/storage/sqliteStorage.js +0 -124
- package/tsconfig.json +0 -14
- package/utils/extend.d.ts +0 -2
- package/utils/extend.js +0 -78
- package/utils/helper.d.ts +0 -14
- package/utils/helper.js +0 -207
- package/utils/index.d.ts +0 -11
- package/utils/index.js +0 -198
- package/utils/ip.d.ts +0 -2
- package/utils/ip.js +0 -221
- package/utils/is.d.ts +0 -14
- package/utils/is.js +0 -112
- package/utils/json.d.ts +0 -5
- package/utils/json.js +0 -80
- package/utils/pargv.d.ts +0 -3
- package/utils/pargv.js +0 -267
- package/utils/port/index.d.ts +0 -1
- package/utils/port/index.js +0 -126
- package/utils/wrap.d.ts +0 -4
- package/utils/wrap.js +0 -41
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LoadBalancer = void 0;
|
|
4
|
+
const consts_js_1 = require("./consts.js");
|
|
5
|
+
const scheduler_js_1 = require("./scheduler.js");
|
|
6
|
+
/**
|
|
7
|
+
* Load Balancer
|
|
8
|
+
* @intro Based on the electron-re project with some modifications
|
|
9
|
+
* @since 1.0.0
|
|
10
|
+
*/
|
|
11
|
+
class LoadBalancer {
|
|
12
|
+
/**
|
|
13
|
+
* @param options - Configuration options
|
|
14
|
+
* @param options.targets - Load balancing target list [{id: 1, weight: 1}, {id: 2, weight: 2}]
|
|
15
|
+
* @param options.algorithm - Algorithm name
|
|
16
|
+
*/
|
|
17
|
+
constructor(options) {
|
|
18
|
+
this.targets = options.targets;
|
|
19
|
+
this.algorithm = options.algorithm || consts_js_1.AlgorithmType.polling;
|
|
20
|
+
this.params = {
|
|
21
|
+
currentIndex: 0,
|
|
22
|
+
weightIndex: 0,
|
|
23
|
+
weightTotal: 0,
|
|
24
|
+
connectionsMap: {},
|
|
25
|
+
cpuOccupancyMap: {},
|
|
26
|
+
memoryOccupancyMap: {},
|
|
27
|
+
};
|
|
28
|
+
this.scheduler = new scheduler_js_1.Scheduler(this.algorithm);
|
|
29
|
+
this.memoParams = this.memorizedParams();
|
|
30
|
+
this.calculateWeightIndex();
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Algorithm parameters
|
|
34
|
+
*/
|
|
35
|
+
memorizedParams() {
|
|
36
|
+
return {
|
|
37
|
+
[consts_js_1.AlgorithmType.random]: () => [],
|
|
38
|
+
[consts_js_1.AlgorithmType.polling]: () => [this.params.currentIndex, this.params],
|
|
39
|
+
[consts_js_1.AlgorithmType.weights]: () => [this.params.weightTotal, this.params],
|
|
40
|
+
[consts_js_1.AlgorithmType.specify]: (id) => [id],
|
|
41
|
+
[consts_js_1.AlgorithmType.weightsRandom]: () => [this.params.weightTotal],
|
|
42
|
+
[consts_js_1.AlgorithmType.weightsPolling]: () => [this.params.weightIndex, this.params.weightTotal, this.params],
|
|
43
|
+
[consts_js_1.AlgorithmType.minimumConnection]: () => [this.params.connectionsMap],
|
|
44
|
+
[consts_js_1.AlgorithmType.weightsMinimumConnection]: () => [this.params.weightTotal, this.params.connectionsMap, this.params],
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Refresh parameters
|
|
49
|
+
*/
|
|
50
|
+
refreshParams(pidMap) {
|
|
51
|
+
const infos = Object.values(pidMap);
|
|
52
|
+
for (const info of infos) {
|
|
53
|
+
this.params.cpuOccupancyMap[info.pid] = info.cpu;
|
|
54
|
+
this.params.memoryOccupancyMap[info.pid] = info.memory;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Elect a single process
|
|
59
|
+
*/
|
|
60
|
+
pickOne(...params) {
|
|
61
|
+
const memoFn = this.memoParams[this.algorithm];
|
|
62
|
+
if (!memoFn) {
|
|
63
|
+
throw new Error(`No memoized params function for algorithm: ${this.algorithm}`);
|
|
64
|
+
}
|
|
65
|
+
return this.scheduler.calculate(this.targets, memoFn(...params));
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Elect multiple processes
|
|
69
|
+
*/
|
|
70
|
+
pickMulti(count = 1, ...params) {
|
|
71
|
+
return new Array(count).fill(null).map(() => this.pickOne(...params));
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Calculate weights
|
|
75
|
+
*/
|
|
76
|
+
calculateWeightIndex() {
|
|
77
|
+
this.params.weightTotal = this.targets.reduce((total, cur) => total + (cur.weight || 0), 0);
|
|
78
|
+
if (this.params.weightIndex > this.params.weightTotal) {
|
|
79
|
+
this.params.weightIndex = this.params.weightTotal;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Calculate index
|
|
84
|
+
*/
|
|
85
|
+
calculateIndex() {
|
|
86
|
+
if (this.params.currentIndex >= this.targets.length) {
|
|
87
|
+
this.params.currentIndex = this.params.currentIndex - 1 >= 0 ? this.params.currentIndex - 1 : 0;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Clean data
|
|
92
|
+
*/
|
|
93
|
+
clean(id) {
|
|
94
|
+
if (id !== undefined) {
|
|
95
|
+
delete this.params.connectionsMap[id];
|
|
96
|
+
delete this.params.cpuOccupancyMap[id];
|
|
97
|
+
delete this.params.memoryOccupancyMap[id];
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
this.params = {
|
|
101
|
+
currentIndex: 0,
|
|
102
|
+
weightIndex: this.params.weightIndex,
|
|
103
|
+
weightTotal: this.params.weightTotal,
|
|
104
|
+
connectionsMap: {},
|
|
105
|
+
cpuOccupancyMap: {},
|
|
106
|
+
memoryOccupancyMap: {},
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Add a process entry
|
|
112
|
+
*/
|
|
113
|
+
add(task) {
|
|
114
|
+
if (this.targets.find(target => target.id === task.id)) {
|
|
115
|
+
console.warn(`Add Operation: the task ${task.id} already exists.`);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
this.targets.push(task);
|
|
119
|
+
this.calculateWeightIndex();
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Delete a process entry
|
|
123
|
+
*/
|
|
124
|
+
del(target) {
|
|
125
|
+
let found = false;
|
|
126
|
+
for (let i = 0; i < this.targets.length; i++) {
|
|
127
|
+
const t = this.targets[i];
|
|
128
|
+
if (t && t.id === target.id) {
|
|
129
|
+
this.targets.splice(i, 1);
|
|
130
|
+
this.clean(target.id);
|
|
131
|
+
this.calculateIndex();
|
|
132
|
+
found = true;
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
if (found) {
|
|
137
|
+
this.calculateWeightIndex();
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
console.warn(`Del Operation: the task ${target.id} is not found.`, this.targets);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Wipe all data
|
|
145
|
+
*/
|
|
146
|
+
wipe() {
|
|
147
|
+
this.targets = [];
|
|
148
|
+
this.calculateWeightIndex();
|
|
149
|
+
this.clean();
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Update calculation parameters
|
|
153
|
+
*/
|
|
154
|
+
updateParams(object) {
|
|
155
|
+
Object.entries(object).forEach(([key, value]) => {
|
|
156
|
+
if (key in this.params) {
|
|
157
|
+
this.params[key] = value;
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Set targets
|
|
163
|
+
*/
|
|
164
|
+
setTargets(targets) {
|
|
165
|
+
const targetsMap = targets.reduce((total, cur) => {
|
|
166
|
+
total[cur.id] = 1;
|
|
167
|
+
return total;
|
|
168
|
+
}, {});
|
|
169
|
+
this.targets.forEach(target => {
|
|
170
|
+
if (!(target.id in targetsMap)) {
|
|
171
|
+
this.clean(target.id);
|
|
172
|
+
this.calculateIndex();
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
this.targets = targets;
|
|
176
|
+
this.calculateWeightIndex();
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Set algorithm
|
|
180
|
+
*/
|
|
181
|
+
setAlgorithm(algorithm) {
|
|
182
|
+
if (algorithm in consts_js_1.AlgorithmType) {
|
|
183
|
+
this.algorithm = algorithm;
|
|
184
|
+
this.params.weightIndex = 0;
|
|
185
|
+
this.scheduler.setAlgorithm(this.algorithm);
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
throw new Error(`Invalid algorithm: ${algorithm}, pick from ${Object.keys(consts_js_1.AlgorithmType).join('|')}`);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
exports.LoadBalancer = LoadBalancer;
|
|
193
|
+
LoadBalancer.Algorithm = consts_js_1.AlgorithmType;
|
|
194
|
+
exports.default = LoadBalancer;
|
|
195
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/jobs/load-balancer/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { LoadBalancerTarget } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Algorithm scheduler
|
|
4
|
+
*/
|
|
5
|
+
export declare class Scheduler {
|
|
6
|
+
private algorithm;
|
|
7
|
+
constructor(algorithm?: string);
|
|
8
|
+
/**
|
|
9
|
+
* Calculate
|
|
10
|
+
*/
|
|
11
|
+
calculate(tasks: LoadBalancerTarget[], params: unknown[]): LoadBalancerTarget | null;
|
|
12
|
+
/**
|
|
13
|
+
* Set algorithm
|
|
14
|
+
*/
|
|
15
|
+
setAlgorithm(algorithm: string): void;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=scheduler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../../../src/jobs/load-balancer/scheduler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,SAAS,CAAS;gBAEd,SAAS,CAAC,EAAE,MAAM;IAI9B;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,kBAAkB,GAAG,IAAI;IAKpF;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;CAOtC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Scheduler = void 0;
|
|
7
|
+
const consts_js_1 = require("./consts.js");
|
|
8
|
+
const index_js_1 = __importDefault(require("./algorithm/index.js"));
|
|
9
|
+
/**
|
|
10
|
+
* Algorithm scheduler
|
|
11
|
+
*/
|
|
12
|
+
class Scheduler {
|
|
13
|
+
constructor(algorithm) {
|
|
14
|
+
this.algorithm = algorithm || consts_js_1.AlgorithmType.polling;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Calculate
|
|
18
|
+
*/
|
|
19
|
+
calculate(tasks, params) {
|
|
20
|
+
const algo = index_js_1.default[this.algorithm];
|
|
21
|
+
return algo(tasks, ...params);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Set algorithm
|
|
25
|
+
*/
|
|
26
|
+
setAlgorithm(algorithm) {
|
|
27
|
+
if (algorithm in consts_js_1.AlgorithmType) {
|
|
28
|
+
this.algorithm = algorithm;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
throw new Error(`Invalid algorithm: ${algorithm}, pick from ${Object.keys(consts_js_1.AlgorithmType).join('|')}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.Scheduler = Scheduler;
|
|
36
|
+
//# sourceMappingURL=scheduler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../../src/jobs/load-balancer/scheduler.ts"],"names":[],"mappings":";;;;;;AAAA,2CAA4C;AAC5C,oEAA8C;AAI9C;;GAEG;AACH,MAAa,SAAS;IAGpB,YAAY,SAAkB;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,yBAAa,CAAC,OAAO,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,KAA2B,EAAE,MAAiB;QACtD,MAAM,IAAI,GAAG,kBAAU,CAAC,IAAI,CAAC,SAAS,CAAgB,CAAC;QACvD,OAAO,IAAI,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,SAAiB;QAC5B,IAAI,SAAS,IAAI,yBAAa,EAAE,CAAC;YAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,eAAe,MAAM,CAAC,IAAI,CAAC,yBAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxG,CAAC;IACH,CAAC;CACF;AAzBD,8BAyBC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module jobs/load-balancer/types
|
|
3
|
+
* @description Load balancer type definitions.
|
|
4
|
+
*/
|
|
5
|
+
/** Load balancer target (child process) */
|
|
6
|
+
export interface LoadBalancerTarget {
|
|
7
|
+
/** Target identifier (usually child process PID) */
|
|
8
|
+
id: string | number;
|
|
9
|
+
/** Weight value (used by weighted algorithms) */
|
|
10
|
+
weight?: number;
|
|
11
|
+
}
|
|
12
|
+
/** Load balancer runtime parameters */
|
|
13
|
+
export interface LoadBalancerParams {
|
|
14
|
+
/** Current polling index */
|
|
15
|
+
currentIndex: number;
|
|
16
|
+
/** Current weight index (for weighted round-robin) */
|
|
17
|
+
weightIndex: number;
|
|
18
|
+
/** Sum of all weights */
|
|
19
|
+
weightTotal: number;
|
|
20
|
+
/** Connections map: pid -> current connection count */
|
|
21
|
+
connectionsMap: Record<string | number, number>;
|
|
22
|
+
/** CPU occupancy map: pid -> CPU usage */
|
|
23
|
+
cpuOccupancyMap: Record<string | number, number>;
|
|
24
|
+
/** Memory occupancy map: pid -> memory usage */
|
|
25
|
+
memoryOccupancyMap: Record<string | number, number>;
|
|
26
|
+
}
|
|
27
|
+
/** Load balancer configuration options */
|
|
28
|
+
export interface LoadBalancerOptions {
|
|
29
|
+
/** Target list */
|
|
30
|
+
targets: LoadBalancerTarget[];
|
|
31
|
+
/** Algorithm name (default: polling) */
|
|
32
|
+
algorithm?: string;
|
|
33
|
+
}
|
|
34
|
+
/** Process info (CPU/memory) */
|
|
35
|
+
export interface PidInfo {
|
|
36
|
+
/** Process ID */
|
|
37
|
+
pid: string | number;
|
|
38
|
+
/** CPU usage */
|
|
39
|
+
cpu: number;
|
|
40
|
+
/** Memory usage */
|
|
41
|
+
memory: number;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/jobs/load-balancer/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,2CAA2C;AAC3C,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IACjC,4BAA4B;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,0CAA0C;IAC1C,eAAe,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,gDAAgD;IAChD,kBAAkB,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC;CACrD;AAED,0CAA0C;AAC1C,MAAM,WAAW,mBAAmB;IAClC,kBAAkB;IAClB,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,gCAAgC;AAChC,MAAM,WAAW,OAAO;IACtB,iBAAiB;IACjB,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,gBAAgB;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/jobs/load-balancer/types.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** Killable job manager interface */
|
|
2
|
+
type Killable = {
|
|
3
|
+
killAll: () => void;
|
|
4
|
+
} | {
|
|
5
|
+
getPids: () => string[];
|
|
6
|
+
kill: (pid: string | number) => void;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Register a job manager
|
|
10
|
+
*
|
|
11
|
+
* Called after creating a ChildJob or ChildPoolJob to ensure cleanup on application exit.
|
|
12
|
+
*
|
|
13
|
+
* @param job - Job manager instance (ChildJob or ChildPoolJob)
|
|
14
|
+
*/
|
|
15
|
+
export declare function registerJobManager(job: Killable): void;
|
|
16
|
+
/**
|
|
17
|
+
* Kill all registered job managers
|
|
18
|
+
*
|
|
19
|
+
* Called in the Electron before-quit event to ensure all child processes are properly terminated.
|
|
20
|
+
* Prefers killAll(), falls back to killing individual processes.
|
|
21
|
+
*/
|
|
22
|
+
export declare function killAllJobs(): void;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/jobs/registry.ts"],"names":[],"mappings":"AAOA,qCAAqC;AACrC,KAAK,QAAQ,GAAG;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,MAAM,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAA;CAAE,CAAC;AAK5G;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,CAEtD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAoBlC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerJobManager = registerJobManager;
|
|
4
|
+
exports.killAllJobs = killAllJobs;
|
|
5
|
+
/**
|
|
6
|
+
* @module jobs/registry
|
|
7
|
+
* @description Job manager registry. Centrally manages all ChildJob and ChildPoolJob instances,
|
|
8
|
+
* terminating all child processes on application exit (before-quit) to prevent process leaks.
|
|
9
|
+
*/
|
|
10
|
+
const index_js_1 = require("../log/index.js");
|
|
11
|
+
/** List of registered job managers */
|
|
12
|
+
const registeredJobs = [];
|
|
13
|
+
/**
|
|
14
|
+
* Register a job manager
|
|
15
|
+
*
|
|
16
|
+
* Called after creating a ChildJob or ChildPoolJob to ensure cleanup on application exit.
|
|
17
|
+
*
|
|
18
|
+
* @param job - Job manager instance (ChildJob or ChildPoolJob)
|
|
19
|
+
*/
|
|
20
|
+
function registerJobManager(job) {
|
|
21
|
+
registeredJobs.push(job);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Kill all registered job managers
|
|
25
|
+
*
|
|
26
|
+
* Called in the Electron before-quit event to ensure all child processes are properly terminated.
|
|
27
|
+
* Prefers killAll(), falls back to killing individual processes.
|
|
28
|
+
*/
|
|
29
|
+
function killAllJobs() {
|
|
30
|
+
const failed = [];
|
|
31
|
+
for (const job of registeredJobs) {
|
|
32
|
+
try {
|
|
33
|
+
if ('killAll' in job && typeof job.killAll === 'function') {
|
|
34
|
+
job.killAll();
|
|
35
|
+
}
|
|
36
|
+
else if ('getPids' in job && 'kill' in job) {
|
|
37
|
+
const pids = job.getPids();
|
|
38
|
+
for (const pid of pids) {
|
|
39
|
+
job.kill(typeof pid === 'string' ? parseInt(pid, 10) : pid);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
index_js_1.coreLogger.error('[jobs/registry] error killing job manager:', err);
|
|
45
|
+
failed.push(err);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (failed.length > 0) {
|
|
49
|
+
index_js_1.coreLogger.error(`[jobs/registry] ${failed.length} job manager(s) failed to kill, processes may be orphaned`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/jobs/registry.ts"],"names":[],"mappings":";;AAoBA,gDAEC;AAQD,kCAoBC;AAlDD;;;;GAIG;AACH,8CAA6C;AAK7C,sCAAsC;AACtC,MAAM,cAAc,GAAe,EAAE,CAAC;AAEtC;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAAC,GAAa;IAC9C,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,WAAW;IACzB,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,IAAI,SAAS,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC1D,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,CAAC;iBAAM,IAAI,SAAS,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;gBAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;oBACvB,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,qBAAU,CAAC,KAAK,CAAC,4CAA4C,EAAE,GAAG,CAAC,CAAC;YACpE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,qBAAU,CAAC,KAAK,CAAC,mBAAmB,MAAM,CAAC,MAAM,2DAA2D,CAAC,CAAC;IAChH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Load a file and automatically execute function exports
|
|
3
|
+
*
|
|
4
|
+
* If the file exports a plain function (not a class or bytecode class), automatically calls that function
|
|
5
|
+
* and returns the execution result. Suitable for config files that need to dynamically return content based on appInfo.
|
|
6
|
+
*
|
|
7
|
+
* @param filepath - File path (relative paths are based on electronDir)
|
|
8
|
+
* @param inject - Arguments passed to the function export (spread into the call)
|
|
9
|
+
* @returns File export content or function execution result
|
|
10
|
+
* @throws Throws an error if the file does not exist
|
|
11
|
+
*/
|
|
12
|
+
export declare function loadFile(filepath: string, ...inject: unknown[]): unknown;
|
|
13
|
+
/**
|
|
14
|
+
* Load a file (without auto-execution)
|
|
15
|
+
*
|
|
16
|
+
* Returns the module export content directly, without any processing.
|
|
17
|
+
* Suitable for scenarios where the original module reference is needed (e.g. child process task loading).
|
|
18
|
+
*
|
|
19
|
+
* @param filepath - Absolute file path
|
|
20
|
+
* @returns Module export content
|
|
21
|
+
*/
|
|
22
|
+
export declare function requireFile(filepath: string): unknown;
|
|
23
|
+
/**
|
|
24
|
+
* Load and run a file
|
|
25
|
+
*
|
|
26
|
+
* Determines execution method based on export type:
|
|
27
|
+
* - Class/bytecode class -> Instantiate with new, inject as constructor arguments
|
|
28
|
+
* - Plain function -> Call directly, inject as function arguments
|
|
29
|
+
* - Other -> Return as-is
|
|
30
|
+
*
|
|
31
|
+
* @param filepath - Absolute file path
|
|
32
|
+
* @param inject - Arguments passed to the constructor or function (spread into the call)
|
|
33
|
+
* @returns Instantiated class object or function execution result
|
|
34
|
+
*/
|
|
35
|
+
export declare function execFile(filepath: string, ...inject: unknown[]): unknown;
|
|
36
|
+
/**
|
|
37
|
+
* Resolve the absolute path of a module
|
|
38
|
+
*
|
|
39
|
+
* First tries require.resolve(), then falls back to suffix-based rules:
|
|
40
|
+
* - .default / .prod -> Try .jsc (bytecode version)
|
|
41
|
+
* - .js -> Try .jsc
|
|
42
|
+
* - No suffix -> Try .js and .jsc
|
|
43
|
+
*
|
|
44
|
+
* @param filepath - Module path
|
|
45
|
+
* @returns Absolute path of the module, or undefined if it cannot be resolved
|
|
46
|
+
*/
|
|
47
|
+
export declare function resolveModule(filepath: string): string | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* Get the absolute path of a file under the electron directory
|
|
50
|
+
*
|
|
51
|
+
* Relative paths are resolved based on electronDir, and resolveModule is also attempted to find the actual file.
|
|
52
|
+
*
|
|
53
|
+
* @param filepath - File path (relative or absolute)
|
|
54
|
+
* @returns Absolute path of the file
|
|
55
|
+
* @throws Throws an error if the file does not exist
|
|
56
|
+
*/
|
|
57
|
+
export declare function getFullpath(filepath: string): string;
|
|
58
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/loader/index.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAkBxE;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAQxE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA4BlE;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAYpD"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.loadFile = loadFile;
|
|
7
|
+
exports.requireFile = requireFile;
|
|
8
|
+
exports.execFile = execFile;
|
|
9
|
+
exports.resolveModule = resolveModule;
|
|
10
|
+
exports.getFullpath = getFullpath;
|
|
11
|
+
/**
|
|
12
|
+
* @module loader
|
|
13
|
+
* @description File loading module. Provides multiple file loading and execution methods,
|
|
14
|
+
* serving as the foundational dependency for controller loading, config loading, and task execution.
|
|
15
|
+
*
|
|
16
|
+
* Core functions:
|
|
17
|
+
* - loadFile: Load a file, automatically execute if the export is a function
|
|
18
|
+
* - requireFile: Load a file without auto-execution
|
|
19
|
+
* - execFile: Load a file, instantiate if class, execute if function
|
|
20
|
+
* - resolveModule: Resolve the absolute path of a module
|
|
21
|
+
* - getFullpath: Get the absolute path of a file under the electron directory
|
|
22
|
+
*/
|
|
23
|
+
const type_check_js_1 = require("../utils/type_check.js");
|
|
24
|
+
const fs_1 = __importDefault(require("fs"));
|
|
25
|
+
const path_1 = __importDefault(require("path"));
|
|
26
|
+
const index_js_1 = require("../core/utils/index.js");
|
|
27
|
+
const index_js_2 = require("../ps/index.js");
|
|
28
|
+
/**
|
|
29
|
+
* Load a file and automatically execute function exports
|
|
30
|
+
*
|
|
31
|
+
* If the file exports a plain function (not a class or bytecode class), automatically calls that function
|
|
32
|
+
* and returns the execution result. Suitable for config files that need to dynamically return content based on appInfo.
|
|
33
|
+
*
|
|
34
|
+
* @param filepath - File path (relative paths are based on electronDir)
|
|
35
|
+
* @param inject - Arguments passed to the function export (spread into the call)
|
|
36
|
+
* @returns File export content or function execution result
|
|
37
|
+
* @throws Throws an error if the file does not exist
|
|
38
|
+
*/
|
|
39
|
+
function loadFile(filepath, ...inject) {
|
|
40
|
+
let fullpath = filepath;
|
|
41
|
+
const isAbsolute = path_1.default.isAbsolute(fullpath);
|
|
42
|
+
if (!isAbsolute) {
|
|
43
|
+
fullpath = path_1.default.join((0, index_js_2.getElectronDir)(), fullpath);
|
|
44
|
+
}
|
|
45
|
+
fullpath = resolveModule(fullpath) || fullpath;
|
|
46
|
+
if (!fs_1.default.existsSync(fullpath)) {
|
|
47
|
+
throw new Error(`[ee-core] [loader/index] loadFile ${filepath} does not exist`);
|
|
48
|
+
}
|
|
49
|
+
let ret = (0, index_js_1.loadFile)(fullpath);
|
|
50
|
+
// Plain function export: auto-execute, inject arguments (e.g. appInfo)
|
|
51
|
+
if ((0, type_check_js_1.isFunction)(ret) && !(0, type_check_js_1.isClass)(ret) && !(0, index_js_1.isBytecodeClass)(ret)) {
|
|
52
|
+
ret = ret(...inject);
|
|
53
|
+
}
|
|
54
|
+
return ret;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Load a file (without auto-execution)
|
|
58
|
+
*
|
|
59
|
+
* Returns the module export content directly, without any processing.
|
|
60
|
+
* Suitable for scenarios where the original module reference is needed (e.g. child process task loading).
|
|
61
|
+
*
|
|
62
|
+
* @param filepath - Absolute file path
|
|
63
|
+
* @returns Module export content
|
|
64
|
+
*/
|
|
65
|
+
function requireFile(filepath) {
|
|
66
|
+
return (0, index_js_1.loadFile)(filepath);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Load and run a file
|
|
70
|
+
*
|
|
71
|
+
* Determines execution method based on export type:
|
|
72
|
+
* - Class/bytecode class -> Instantiate with new, inject as constructor arguments
|
|
73
|
+
* - Plain function -> Call directly, inject as function arguments
|
|
74
|
+
* - Other -> Return as-is
|
|
75
|
+
*
|
|
76
|
+
* @param filepath - Absolute file path
|
|
77
|
+
* @param inject - Arguments passed to the constructor or function (spread into the call)
|
|
78
|
+
* @returns Instantiated class object or function execution result
|
|
79
|
+
*/
|
|
80
|
+
function execFile(filepath, ...inject) {
|
|
81
|
+
let ret = (0, index_js_1.loadFile)(filepath);
|
|
82
|
+
if ((0, type_check_js_1.isClass)(ret) || (0, index_js_1.isBytecodeClass)(ret)) {
|
|
83
|
+
ret = new ret(...inject);
|
|
84
|
+
}
|
|
85
|
+
else if ((0, type_check_js_1.isFunction)(ret)) {
|
|
86
|
+
ret = ret(...inject);
|
|
87
|
+
}
|
|
88
|
+
return ret;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Resolve the absolute path of a module
|
|
92
|
+
*
|
|
93
|
+
* First tries require.resolve(), then falls back to suffix-based rules:
|
|
94
|
+
* - .default / .prod -> Try .jsc (bytecode version)
|
|
95
|
+
* - .js -> Try .jsc
|
|
96
|
+
* - No suffix -> Try .js and .jsc
|
|
97
|
+
*
|
|
98
|
+
* @param filepath - Module path
|
|
99
|
+
* @returns Absolute path of the module, or undefined if it cannot be resolved
|
|
100
|
+
*/
|
|
101
|
+
function resolveModule(filepath) {
|
|
102
|
+
let fullpath;
|
|
103
|
+
try {
|
|
104
|
+
fullpath = require.resolve(filepath);
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
// Special suffix handling: config filenames like config.default, config.prod
|
|
108
|
+
if (filepath && (filepath.endsWith('.default') || filepath.endsWith('.prod'))) {
|
|
109
|
+
fullpath = filepath + '.jsc';
|
|
110
|
+
}
|
|
111
|
+
else if (filepath && filepath.endsWith('.js')) {
|
|
112
|
+
fullpath = filepath + 'c'; // .js → .jsc
|
|
113
|
+
}
|
|
114
|
+
// In packaged mode, require.resolve may fail; try checking if the file exists directly
|
|
115
|
+
if (!fullpath || !fs_1.default.existsSync(fullpath)) {
|
|
116
|
+
if (fs_1.default.existsSync(filepath + '.js')) {
|
|
117
|
+
fullpath = filepath + '.js';
|
|
118
|
+
}
|
|
119
|
+
else if (fs_1.default.existsSync(filepath + '.jsc')) {
|
|
120
|
+
fullpath = filepath + '.jsc';
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
if (!fs_1.default.existsSync(filepath) && (!fullpath || !fs_1.default.existsSync(fullpath))) {
|
|
124
|
+
console.warn(`[ee-core] [loader] resolveModule unknow filepath: ${JSON.stringify({ filepath, fullpath })}`);
|
|
125
|
+
return undefined;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return fullpath;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Get the absolute path of a file under the electron directory
|
|
132
|
+
*
|
|
133
|
+
* Relative paths are resolved based on electronDir, and resolveModule is also attempted to find the actual file.
|
|
134
|
+
*
|
|
135
|
+
* @param filepath - File path (relative or absolute)
|
|
136
|
+
* @returns Absolute path of the file
|
|
137
|
+
* @throws Throws an error if the file does not exist
|
|
138
|
+
*/
|
|
139
|
+
function getFullpath(filepath) {
|
|
140
|
+
let fullpath;
|
|
141
|
+
const isAbsolute = path_1.default.isAbsolute(filepath);
|
|
142
|
+
if (!isAbsolute) {
|
|
143
|
+
filepath = path_1.default.join((0, index_js_2.getElectronDir)(), filepath);
|
|
144
|
+
}
|
|
145
|
+
fullpath = resolveModule(filepath);
|
|
146
|
+
if (!fullpath || !fs_1.default.existsSync(fullpath)) {
|
|
147
|
+
throw new Error(`[ee-core] [loader] getFullpath filepath ${filepath} not exists`);
|
|
148
|
+
}
|
|
149
|
+
return fullpath;
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/loader/index.ts"],"names":[],"mappings":"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"}
|