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 @@
|
|
|
1
|
+
{"version":3,"file":"pargv.js","sourceRoot":"","sources":["../../../src/utils/pargv.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/** getPort function options */
|
|
2
|
+
export interface GetPortOptions {
|
|
3
|
+
/**
|
|
4
|
+
* Preferred port number or port range array.
|
|
5
|
+
* - Number: try specified port, increment if unavailable
|
|
6
|
+
* - Array: try in order, OS auto-assigns if all unavailable
|
|
7
|
+
* - Unspecified: OS auto-assigns a random available port
|
|
8
|
+
*/
|
|
9
|
+
port?: number | number[];
|
|
10
|
+
/** Bound host address; if unspecified, checks all interfaces */
|
|
11
|
+
host?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Get an available TCP port
|
|
15
|
+
*
|
|
16
|
+
* Finds an available port within the specified range, with a two-level locking mechanism
|
|
17
|
+
* to prevent concurrent allocation conflicts.
|
|
18
|
+
* Search flow:
|
|
19
|
+
* 1. Try binding one by one according to the port check sequence
|
|
20
|
+
* 2. Check if the port is in the locked set (old or young)
|
|
21
|
+
* 3. On lock conflict: if a specific port was requested, throw Locked; otherwise auto-get a new port
|
|
22
|
+
* 4. After finding an available port, add it to the young locked set and return
|
|
23
|
+
*
|
|
24
|
+
* @param options - Port search options
|
|
25
|
+
* @returns Available port number
|
|
26
|
+
* @throws Error - Throws when all ports are unavailable
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* // Get a system auto-assigned random port
|
|
31
|
+
* const port = await getPort();
|
|
32
|
+
*
|
|
33
|
+
* // Try a specific port, auto-find next if unavailable
|
|
34
|
+
* const port = await getPort({ port: 3000 });
|
|
35
|
+
*
|
|
36
|
+
* // Try multiple candidate ports
|
|
37
|
+
* const port = await getPort({ port: [3000, 3001, 3002] });
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export declare function getPort(options?: GetPortOptions): Promise<number>;
|
|
41
|
+
/**
|
|
42
|
+
* Clean up port lock resources
|
|
43
|
+
*
|
|
44
|
+
* Clears the rotation timer and releases all locked ports.
|
|
45
|
+
* Call during application shutdown to ensure resources are cleaned up, preventing timer leaks.
|
|
46
|
+
*/
|
|
47
|
+
export declare function releasePortLocks(): void;
|
|
48
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/port/index.ts"],"names":[],"mappings":"AA4JA,+BAA+B;AAC/B,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,OAAO,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAkDvE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAOvC"}
|
|
@@ -0,0 +1,235 @@
|
|
|
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.getPort = getPort;
|
|
7
|
+
exports.releasePortLocks = releasePortLocks;
|
|
8
|
+
/**
|
|
9
|
+
* @module utils/port
|
|
10
|
+
* @description Port allocation utility. Provides getPort() function to find available TCP ports
|
|
11
|
+
* within a specified range, with a locking mechanism to prevent concurrent port conflicts
|
|
12
|
+
* within the same process.
|
|
13
|
+
*
|
|
14
|
+
* Port allocation strategy:
|
|
15
|
+
* 1. Create a temporary TCP server listening on the target port to verify availability
|
|
16
|
+
* 2. Check if the port is in the locked set (prevents concurrent allocation of the same port)
|
|
17
|
+
* 3. If the port is unavailable or locked, automatically increment the port number and retry
|
|
18
|
+
* 4. Port 0 means let the OS automatically assign a random available port
|
|
19
|
+
*
|
|
20
|
+
* Locking mechanism:
|
|
21
|
+
* - Uses old and young Sets to maintain allocated ports
|
|
22
|
+
* - Rotates every 15 seconds: young -> old, old is cleared and released
|
|
23
|
+
* - Two-level locking ensures ports are not re-allocated shortly after being assigned
|
|
24
|
+
* - Call releasePortLocks() to manually clear all locks
|
|
25
|
+
*/
|
|
26
|
+
const net_1 = __importDefault(require("net"));
|
|
27
|
+
const os_1 = __importDefault(require("os"));
|
|
28
|
+
/**
|
|
29
|
+
* Port locked error
|
|
30
|
+
*
|
|
31
|
+
* Thrown when the specified port is locked (in use).
|
|
32
|
+
*/
|
|
33
|
+
class Locked extends Error {
|
|
34
|
+
constructor(port) {
|
|
35
|
+
super(`${port} is locked`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/** Locked port sets, split into old and young levels */
|
|
39
|
+
const lockedPorts = {
|
|
40
|
+
/** Previously locked ports, about to be released */
|
|
41
|
+
old: new Set(),
|
|
42
|
+
/** Currently locked ports */
|
|
43
|
+
young: new Set(),
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Port lock rotation interval (ms)
|
|
47
|
+
*
|
|
48
|
+
* Every this interval, the old set is discarded (ports released),
|
|
49
|
+
* the young set moves into old, and a new young set is created.
|
|
50
|
+
* Two-level rotation ensures ports are locked for at least 15 seconds.
|
|
51
|
+
*/
|
|
52
|
+
const releaseOldLockedPortsIntervalMs = 1000 * 15;
|
|
53
|
+
/** Rotation timer reference, lazily created to avoid resource usage when idle */
|
|
54
|
+
let interval;
|
|
55
|
+
/**
|
|
56
|
+
* Get all local network interface addresses
|
|
57
|
+
*
|
|
58
|
+
* Collects IP addresses of all network interfaces, and adds undefined (represents using default host)
|
|
59
|
+
* and '0.0.0.0' (represents listening on all IPv4 interfaces).
|
|
60
|
+
* When host is not specified, port availability needs to be verified on all interfaces.
|
|
61
|
+
*
|
|
62
|
+
* @returns Set of host addresses
|
|
63
|
+
*/
|
|
64
|
+
const getLocalHosts = () => {
|
|
65
|
+
const interfaces = os_1.default.networkInterfaces();
|
|
66
|
+
// undefined lets createServer use default host;
|
|
67
|
+
// '0.0.0.0' is IPv4 wildcard address, prevents createServer defaulting to IPv6
|
|
68
|
+
const results = new Set([undefined, '0.0.0.0']);
|
|
69
|
+
for (const _interface of Object.values(interfaces)) {
|
|
70
|
+
if (!_interface)
|
|
71
|
+
continue;
|
|
72
|
+
for (const config of _interface) {
|
|
73
|
+
results.add(config.address);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return results;
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Check if a single port is available on the specified host
|
|
80
|
+
*
|
|
81
|
+
* Creates a temporary TCP server to attempt listening; if successful, the port is available;
|
|
82
|
+
* if failed, the port is occupied. Uses server.unref() to ensure the temporary server
|
|
83
|
+
* doesn't prevent process exit.
|
|
84
|
+
*
|
|
85
|
+
* @param options - net.ListenOptions, containing port and host
|
|
86
|
+
* @returns Available port number
|
|
87
|
+
*/
|
|
88
|
+
const checkAvailablePort = (options) => new Promise((resolve, reject) => {
|
|
89
|
+
const server = net_1.default.createServer();
|
|
90
|
+
// Don't prevent process exit
|
|
91
|
+
server.unref();
|
|
92
|
+
server.on('error', reject);
|
|
93
|
+
server.listen(options, () => {
|
|
94
|
+
const address = server.address();
|
|
95
|
+
const port = typeof address === 'string' ? 0 : address?.port || 0;
|
|
96
|
+
server.close(() => {
|
|
97
|
+
resolve(port);
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
/**
|
|
102
|
+
* Verify port availability across multiple hosts
|
|
103
|
+
*
|
|
104
|
+
* When host is not specified, port availability must be verified on each local network interface
|
|
105
|
+
* individually, ensuring the port is not occupied on any interface.
|
|
106
|
+
* EADDRNOTAVAIL and EINVAL errors indicate the interface doesn't support this port and can be skipped.
|
|
107
|
+
*
|
|
108
|
+
* @param options - Listen options
|
|
109
|
+
* @param hosts - Host address set
|
|
110
|
+
* @returns Available port number
|
|
111
|
+
*/
|
|
112
|
+
const getAvailablePort = async (options, hosts) => {
|
|
113
|
+
// When host is specified or port is 0 (OS auto-assign), only need to check once
|
|
114
|
+
if (options.host || options.port === 0) {
|
|
115
|
+
return checkAvailablePort(options);
|
|
116
|
+
}
|
|
117
|
+
// When host is not specified, verify on all interfaces individually
|
|
118
|
+
for (const host of hosts) {
|
|
119
|
+
try {
|
|
120
|
+
await checkAvailablePort({ port: options.port, host });
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
const err = error;
|
|
124
|
+
// Address unavailable or invalid: this interface doesn't support this port, skip and continue checking
|
|
125
|
+
if (!['EADDRNOTAVAIL', 'EINVAL'].includes(err.code || '')) {
|
|
126
|
+
throw error;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return options.port || 0;
|
|
131
|
+
};
|
|
132
|
+
/**
|
|
133
|
+
* Generate port check sequence
|
|
134
|
+
*
|
|
135
|
+
* Tries user-specified port list in order; if all are unavailable, falls back to port 0
|
|
136
|
+
* (OS auto-assigns a random available port).
|
|
137
|
+
*
|
|
138
|
+
* @param ports - User-specified port list
|
|
139
|
+
* @yields Port number to check
|
|
140
|
+
*/
|
|
141
|
+
function* portCheckSequence(ports) {
|
|
142
|
+
if (ports) {
|
|
143
|
+
for (const port of ports) {
|
|
144
|
+
yield port;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
// When all specified ports are unavailable, fall back to OS auto-assign
|
|
148
|
+
yield 0;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Get an available TCP port
|
|
152
|
+
*
|
|
153
|
+
* Finds an available port within the specified range, with a two-level locking mechanism
|
|
154
|
+
* to prevent concurrent allocation conflicts.
|
|
155
|
+
* Search flow:
|
|
156
|
+
* 1. Try binding one by one according to the port check sequence
|
|
157
|
+
* 2. Check if the port is in the locked set (old or young)
|
|
158
|
+
* 3. On lock conflict: if a specific port was requested, throw Locked; otherwise auto-get a new port
|
|
159
|
+
* 4. After finding an available port, add it to the young locked set and return
|
|
160
|
+
*
|
|
161
|
+
* @param options - Port search options
|
|
162
|
+
* @returns Available port number
|
|
163
|
+
* @throws Error - Throws when all ports are unavailable
|
|
164
|
+
*
|
|
165
|
+
* @example
|
|
166
|
+
* ```ts
|
|
167
|
+
* // Get a system auto-assigned random port
|
|
168
|
+
* const port = await getPort();
|
|
169
|
+
*
|
|
170
|
+
* // Try a specific port, auto-find next if unavailable
|
|
171
|
+
* const port = await getPort({ port: 3000 });
|
|
172
|
+
*
|
|
173
|
+
* // Try multiple candidate ports
|
|
174
|
+
* const port = await getPort({ port: [3000, 3001, 3002] });
|
|
175
|
+
* ```
|
|
176
|
+
*/
|
|
177
|
+
async function getPort(options) {
|
|
178
|
+
let ports;
|
|
179
|
+
if (options) {
|
|
180
|
+
ports = typeof options.port === 'number' ? [options.port] : options.port;
|
|
181
|
+
}
|
|
182
|
+
// Lazily create rotation timer, initialize on first call
|
|
183
|
+
if (interval === undefined) {
|
|
184
|
+
interval = setInterval(() => {
|
|
185
|
+
// Rotate locked sets: young -> old, old is cleared and released
|
|
186
|
+
lockedPorts.old = lockedPorts.young;
|
|
187
|
+
lockedPorts.young = new Set();
|
|
188
|
+
}, releaseOldLockedPortsIntervalMs);
|
|
189
|
+
// unref ensures the timer doesn't prevent process exit (Electron/Jest environments may not have unref)
|
|
190
|
+
if (interval.unref) {
|
|
191
|
+
interval.unref();
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
const hosts = getLocalHosts();
|
|
195
|
+
for (const port of portCheckSequence(ports)) {
|
|
196
|
+
try {
|
|
197
|
+
let availablePort = await getAvailablePort({ ...options, port }, hosts);
|
|
198
|
+
// Check if port is in locked set, preventing concurrent allocation of the same port
|
|
199
|
+
while (lockedPorts.old.has(availablePort) || lockedPorts.young.has(availablePort)) {
|
|
200
|
+
// Specified port number is locked -> throw exception to let caller know
|
|
201
|
+
if (port !== 0) {
|
|
202
|
+
throw new Locked(port);
|
|
203
|
+
}
|
|
204
|
+
// OS auto-assigned port is locked -> request a new one
|
|
205
|
+
availablePort = await getAvailablePort({ ...options, port: 0 }, hosts);
|
|
206
|
+
}
|
|
207
|
+
// Found available port, add to young locked set
|
|
208
|
+
lockedPorts.young.add(availablePort);
|
|
209
|
+
return availablePort;
|
|
210
|
+
}
|
|
211
|
+
catch (error) {
|
|
212
|
+
const err = error;
|
|
213
|
+
// EADDRINUSE (port occupied) and EACCES (insufficient permissions) are expected errors, try next port
|
|
214
|
+
if (!['EADDRINUSE', 'EACCES'].includes(err.code || '') && !(error instanceof Locked)) {
|
|
215
|
+
throw error;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
throw new Error('No available ports found');
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Clean up port lock resources
|
|
223
|
+
*
|
|
224
|
+
* Clears the rotation timer and releases all locked ports.
|
|
225
|
+
* Call during application shutdown to ensure resources are cleaned up, preventing timer leaks.
|
|
226
|
+
*/
|
|
227
|
+
function releasePortLocks() {
|
|
228
|
+
if (interval !== undefined) {
|
|
229
|
+
clearInterval(interval);
|
|
230
|
+
interval = undefined;
|
|
231
|
+
}
|
|
232
|
+
lockedPorts.old.clear();
|
|
233
|
+
lockedPorts.young.clear();
|
|
234
|
+
}
|
|
235
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/port/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module utils/type_check
|
|
3
|
+
* @description Runtime type checking utility. Provides a set of Type Guard functions
|
|
4
|
+
* for determining value types at runtime, used with TypeScript's type narrowing.
|
|
5
|
+
*
|
|
6
|
+
* Difference from utils/is.ts: is.ts detects Electron runtime environment (process type, OS),
|
|
7
|
+
* while this module detects JavaScript value types (functions, classes, objects, etc.).
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Determine if a value is a function
|
|
11
|
+
*
|
|
12
|
+
* Covers all callable types including regular functions, arrow functions, class constructors, and async functions.
|
|
13
|
+
*
|
|
14
|
+
* @param val - Value to check
|
|
15
|
+
* @returns true if the value is a function type, TypeScript will also narrow val to function type
|
|
16
|
+
*/
|
|
17
|
+
export declare function isFunction(val: unknown): val is (...args: unknown[]) => unknown;
|
|
18
|
+
/**
|
|
19
|
+
* Determine if a value is an ES6 class
|
|
20
|
+
*
|
|
21
|
+
* Primary check is structural: an ES6 class has a non-writable `prototype`
|
|
22
|
+
* (writable: false), whereas a regular function's prototype is writable, and
|
|
23
|
+
* arrow/async functions have no prototype at all. This reads the runtime object
|
|
24
|
+
* shape rather than source text, so it survives minify and bytecode (.jsc) compilation.
|
|
25
|
+
*
|
|
26
|
+
* Fallback check keeps the previous behavior: sniff the toString() output for a
|
|
27
|
+
* leading `class` keyword, covering any edge case the structural check misses.
|
|
28
|
+
* Note: constructor functions declared with function are not recognized as classes.
|
|
29
|
+
*
|
|
30
|
+
* @param val - Value to check
|
|
31
|
+
* @returns true if the value is a class declared with class
|
|
32
|
+
*/
|
|
33
|
+
export declare function isClass(val: unknown): val is new (...args: unknown[]) => unknown;
|
|
34
|
+
/**
|
|
35
|
+
* Determine if a value is a string
|
|
36
|
+
*
|
|
37
|
+
* @param val - Value to check
|
|
38
|
+
* @returns true if the value is of type string
|
|
39
|
+
*/
|
|
40
|
+
export declare function isString(val: unknown): val is string;
|
|
41
|
+
/**
|
|
42
|
+
* Determine if a value is a plain object
|
|
43
|
+
*
|
|
44
|
+
* A plain object is one created via {} or new Object().
|
|
45
|
+
* Excludes null, arrays, and class instances.
|
|
46
|
+
*
|
|
47
|
+
* @param val - Value to check
|
|
48
|
+
* @returns true if the value is a non-null, non-array ordinary object
|
|
49
|
+
*/
|
|
50
|
+
export declare function isObject(val: unknown): val is Record<string, unknown>;
|
|
51
|
+
/**
|
|
52
|
+
* Determine if a value is an array
|
|
53
|
+
*
|
|
54
|
+
* @param val - Value to check
|
|
55
|
+
* @returns true if the value is an Array instance
|
|
56
|
+
*/
|
|
57
|
+
export declare function isArray(val: unknown): val is unknown[];
|
|
58
|
+
/**
|
|
59
|
+
* Determine if a value is a primitive type
|
|
60
|
+
*
|
|
61
|
+
* Primitive types include: null, undefined, string, number, boolean, symbol, bigint.
|
|
62
|
+
* That is, values that are neither objects nor functions.
|
|
63
|
+
*
|
|
64
|
+
* @param val - Value to check
|
|
65
|
+
* @returns true if the value is a primitive type
|
|
66
|
+
*/
|
|
67
|
+
export declare function isPrimitive(val: unknown): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Determine if a value is a generator function (function*)
|
|
70
|
+
*
|
|
71
|
+
* Determines by checking if the function constructor's name is 'GeneratorFunction'.
|
|
72
|
+
* Generator functions are declared with function* and return Generator objects.
|
|
73
|
+
*
|
|
74
|
+
* @param val - Value to check
|
|
75
|
+
* @returns true if the value is a generator function
|
|
76
|
+
*/
|
|
77
|
+
export declare function isGeneratorFunction(val: unknown): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Determine if a value is an async function (async function)
|
|
80
|
+
*
|
|
81
|
+
* Determines by checking if the function constructor's name is 'AsyncFunction'.
|
|
82
|
+
* Async functions are declared with the async keyword and return Promises.
|
|
83
|
+
*
|
|
84
|
+
* @param val - Value to check
|
|
85
|
+
* @returns true if the value is an async function
|
|
86
|
+
*/
|
|
87
|
+
export declare function isAsyncFunction(val: unknown): boolean;
|
|
88
|
+
//# sourceMappingURL=type_check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type_check.d.ts","sourceRoot":"","sources":["../../../src/utils/type_check.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAE/E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAOhF;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAEpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAErE;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,OAAO,EAAE,CAEtD;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEjD;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEzD;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAErD"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @module utils/type_check
|
|
4
|
+
* @description Runtime type checking utility. Provides a set of Type Guard functions
|
|
5
|
+
* for determining value types at runtime, used with TypeScript's type narrowing.
|
|
6
|
+
*
|
|
7
|
+
* Difference from utils/is.ts: is.ts detects Electron runtime environment (process type, OS),
|
|
8
|
+
* while this module detects JavaScript value types (functions, classes, objects, etc.).
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.isFunction = isFunction;
|
|
12
|
+
exports.isClass = isClass;
|
|
13
|
+
exports.isString = isString;
|
|
14
|
+
exports.isObject = isObject;
|
|
15
|
+
exports.isArray = isArray;
|
|
16
|
+
exports.isPrimitive = isPrimitive;
|
|
17
|
+
exports.isGeneratorFunction = isGeneratorFunction;
|
|
18
|
+
exports.isAsyncFunction = isAsyncFunction;
|
|
19
|
+
/**
|
|
20
|
+
* Determine if a value is a function
|
|
21
|
+
*
|
|
22
|
+
* Covers all callable types including regular functions, arrow functions, class constructors, and async functions.
|
|
23
|
+
*
|
|
24
|
+
* @param val - Value to check
|
|
25
|
+
* @returns true if the value is a function type, TypeScript will also narrow val to function type
|
|
26
|
+
*/
|
|
27
|
+
function isFunction(val) {
|
|
28
|
+
return typeof val === 'function';
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Determine if a value is an ES6 class
|
|
32
|
+
*
|
|
33
|
+
* Primary check is structural: an ES6 class has a non-writable `prototype`
|
|
34
|
+
* (writable: false), whereas a regular function's prototype is writable, and
|
|
35
|
+
* arrow/async functions have no prototype at all. This reads the runtime object
|
|
36
|
+
* shape rather than source text, so it survives minify and bytecode (.jsc) compilation.
|
|
37
|
+
*
|
|
38
|
+
* Fallback check keeps the previous behavior: sniff the toString() output for a
|
|
39
|
+
* leading `class` keyword, covering any edge case the structural check misses.
|
|
40
|
+
* Note: constructor functions declared with function are not recognized as classes.
|
|
41
|
+
*
|
|
42
|
+
* @param val - Value to check
|
|
43
|
+
* @returns true if the value is a class declared with class
|
|
44
|
+
*/
|
|
45
|
+
function isClass(val) {
|
|
46
|
+
if (typeof val !== 'function')
|
|
47
|
+
return false;
|
|
48
|
+
// Primary: structural check (immune to minify / bytecode compilation)
|
|
49
|
+
const desc = Object.getOwnPropertyDescriptor(val, 'prototype');
|
|
50
|
+
if (desc && desc.writable === false)
|
|
51
|
+
return true;
|
|
52
|
+
// Fallback: source-string sniffing (preserves prior behavior)
|
|
53
|
+
return /^\s*class\b/.test(val.toString());
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Determine if a value is a string
|
|
57
|
+
*
|
|
58
|
+
* @param val - Value to check
|
|
59
|
+
* @returns true if the value is of type string
|
|
60
|
+
*/
|
|
61
|
+
function isString(val) {
|
|
62
|
+
return typeof val === 'string';
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Determine if a value is a plain object
|
|
66
|
+
*
|
|
67
|
+
* A plain object is one created via {} or new Object().
|
|
68
|
+
* Excludes null, arrays, and class instances.
|
|
69
|
+
*
|
|
70
|
+
* @param val - Value to check
|
|
71
|
+
* @returns true if the value is a non-null, non-array ordinary object
|
|
72
|
+
*/
|
|
73
|
+
function isObject(val) {
|
|
74
|
+
return typeof val === 'object' && val !== null && !Array.isArray(val);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Determine if a value is an array
|
|
78
|
+
*
|
|
79
|
+
* @param val - Value to check
|
|
80
|
+
* @returns true if the value is an Array instance
|
|
81
|
+
*/
|
|
82
|
+
function isArray(val) {
|
|
83
|
+
return Array.isArray(val);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Determine if a value is a primitive type
|
|
87
|
+
*
|
|
88
|
+
* Primitive types include: null, undefined, string, number, boolean, symbol, bigint.
|
|
89
|
+
* That is, values that are neither objects nor functions.
|
|
90
|
+
*
|
|
91
|
+
* @param val - Value to check
|
|
92
|
+
* @returns true if the value is a primitive type
|
|
93
|
+
*/
|
|
94
|
+
function isPrimitive(val) {
|
|
95
|
+
return val === null || (typeof val !== 'object' && typeof val !== 'function');
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Determine if a value is a generator function (function*)
|
|
99
|
+
*
|
|
100
|
+
* Determines by checking if the function constructor's name is 'GeneratorFunction'.
|
|
101
|
+
* Generator functions are declared with function* and return Generator objects.
|
|
102
|
+
*
|
|
103
|
+
* @param val - Value to check
|
|
104
|
+
* @returns true if the value is a generator function
|
|
105
|
+
*/
|
|
106
|
+
function isGeneratorFunction(val) {
|
|
107
|
+
return typeof val === 'function' && val.constructor?.name === 'GeneratorFunction';
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Determine if a value is an async function (async function)
|
|
111
|
+
*
|
|
112
|
+
* Determines by checking if the function constructor's name is 'AsyncFunction'.
|
|
113
|
+
* Async functions are declared with the async keyword and return Promises.
|
|
114
|
+
*
|
|
115
|
+
* @param val - Value to check
|
|
116
|
+
* @returns true if the value is an async function
|
|
117
|
+
*/
|
|
118
|
+
function isAsyncFunction(val) {
|
|
119
|
+
return typeof val === 'function' && val.constructor?.name === 'AsyncFunction';
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=type_check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type_check.js","sourceRoot":"","sources":["../../../src/utils/type_check.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAUH,gCAEC;AAiBD,0BAOC;AAQD,4BAEC;AAWD,4BAEC;AAQD,0BAEC;AAWD,kCAEC;AAWD,kDAEC;AAWD,0CAEC;AA1GD;;;;;;;GAOG;AACH,SAAgB,UAAU,CAAC,GAAY;IACrC,OAAO,OAAO,GAAG,KAAK,UAAU,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,OAAO,CAAC,GAAY;IAClC,IAAI,OAAO,GAAG,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAC5C,sEAAsE;IACtE,MAAM,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC/D,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACjD,8DAA8D;IAC9D,OAAO,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,GAAY;IACnC,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC;AACjC,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,QAAQ,CAAC,GAAY;IACnC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACxE,CAAC;AAED;;;;;GAKG;AACH,SAAgB,OAAO,CAAC,GAAY;IAClC,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,WAAW,CAAC,GAAY;IACtC,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC;AAChF,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,mBAAmB,CAAC,GAAY;IAC9C,OAAO,OAAO,GAAG,KAAK,UAAU,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,KAAK,mBAAmB,CAAC;AACpF,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,eAAe,CAAC,GAAY;IAC1C,OAAO,OAAO,GAAG,KAAK,UAAU,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,KAAK,eAAe,CAAC;AAChF,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert file path to property path array
|
|
3
|
+
*
|
|
4
|
+
* Determines property name naming style based on caseStyle configuration.
|
|
5
|
+
* Supports preset styles (lower/upper/camel) and fully custom conversion functions.
|
|
6
|
+
*
|
|
7
|
+
* @param filepath - Relative file path (e.g. 'a/b/c.js')
|
|
8
|
+
* @param options - Conversion options
|
|
9
|
+
* @param options.caseStyle - Naming style: 'lower' (first letter lowercase), 'upper' (first letter uppercase),
|
|
10
|
+
* 'camel' (camelCase, default) or custom conversion function
|
|
11
|
+
* @returns Property path array (e.g. ['a', 'b', 'c'])
|
|
12
|
+
* @throws Error - Throws when caseStyle is a function but return value is not an array
|
|
13
|
+
*/
|
|
14
|
+
export declare function getProperties(filepath: string, { caseStyle }: {
|
|
15
|
+
caseStyle: string | ((filepath: string) => string[]);
|
|
16
|
+
}): string[];
|
|
17
|
+
/**
|
|
18
|
+
* Default camelCase conversion implementation
|
|
19
|
+
*
|
|
20
|
+
* Processing flow:
|
|
21
|
+
* 1. Remove file extension, split by '/' into path segments
|
|
22
|
+
* 2. For each path segment: capitalize letters after underscores/hyphens (e.g. foo_bar -> fooBar)
|
|
23
|
+
* 3. Adjust first letter case based on caseStyle
|
|
24
|
+
*
|
|
25
|
+
* @param filepath - Relative file path
|
|
26
|
+
* @param caseStyle - Naming style
|
|
27
|
+
* @returns Property path array
|
|
28
|
+
* @throws Error - Throws when path segment contains illegal characters (not a-z0-9_-)
|
|
29
|
+
*/
|
|
30
|
+
export declare function defaultCamelize(filepath: string, caseStyle: string): string[];
|
|
31
|
+
//# sourceMappingURL=wrap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../../../src/utils/wrap.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC,CAAA;CAAE,GAAG,MAAM,EAAE,CAWjI;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAgC7E"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getProperties = getProperties;
|
|
4
|
+
exports.defaultCamelize = defaultCamelize;
|
|
5
|
+
/**
|
|
6
|
+
* @module utils/wrap
|
|
7
|
+
* @description File path to property path conversion utility. Converts directory/file paths
|
|
8
|
+
* to nested property name arrays for use by FileLoader to build nested object structures.
|
|
9
|
+
*
|
|
10
|
+
* Conversion examples:
|
|
11
|
+
* ```
|
|
12
|
+
* 'a/b/c.js' -> ['a', 'b', 'c']
|
|
13
|
+
* 'user_info.js' -> ['userInfo'] (caseStyle='camel')
|
|
14
|
+
* 'UserInfo.js' -> ['userInfo'] (caseStyle='lower')
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
const type_check_js_1 = require("./type_check.js");
|
|
18
|
+
/**
|
|
19
|
+
* Convert file path to property path array
|
|
20
|
+
*
|
|
21
|
+
* Determines property name naming style based on caseStyle configuration.
|
|
22
|
+
* Supports preset styles (lower/upper/camel) and fully custom conversion functions.
|
|
23
|
+
*
|
|
24
|
+
* @param filepath - Relative file path (e.g. 'a/b/c.js')
|
|
25
|
+
* @param options - Conversion options
|
|
26
|
+
* @param options.caseStyle - Naming style: 'lower' (first letter lowercase), 'upper' (first letter uppercase),
|
|
27
|
+
* 'camel' (camelCase, default) or custom conversion function
|
|
28
|
+
* @returns Property path array (e.g. ['a', 'b', 'c'])
|
|
29
|
+
* @throws Error - Throws when caseStyle is a function but return value is not an array
|
|
30
|
+
*/
|
|
31
|
+
function getProperties(filepath, { caseStyle }) {
|
|
32
|
+
// When caseStyle is a function, delegate entirely to the caller's custom conversion logic
|
|
33
|
+
if ((0, type_check_js_1.isFunction)(caseStyle)) {
|
|
34
|
+
const result = caseStyle(filepath);
|
|
35
|
+
if (!Array.isArray(result)) {
|
|
36
|
+
throw new Error(`caseStyle expect an array, but got ${result}`);
|
|
37
|
+
}
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
// Use built-in camelCase conversion rules
|
|
41
|
+
return defaultCamelize(filepath, caseStyle);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Default camelCase conversion implementation
|
|
45
|
+
*
|
|
46
|
+
* Processing flow:
|
|
47
|
+
* 1. Remove file extension, split by '/' into path segments
|
|
48
|
+
* 2. For each path segment: capitalize letters after underscores/hyphens (e.g. foo_bar -> fooBar)
|
|
49
|
+
* 3. Adjust first letter case based on caseStyle
|
|
50
|
+
*
|
|
51
|
+
* @param filepath - Relative file path
|
|
52
|
+
* @param caseStyle - Naming style
|
|
53
|
+
* @returns Property path array
|
|
54
|
+
* @throws Error - Throws when path segment contains illegal characters (not a-z0-9_-)
|
|
55
|
+
*/
|
|
56
|
+
function defaultCamelize(filepath, caseStyle) {
|
|
57
|
+
// Remove extension, split by path separator
|
|
58
|
+
const properties = filepath.substring(0, filepath.lastIndexOf('.')).split('/');
|
|
59
|
+
return properties.map((property) => {
|
|
60
|
+
// Validate path segment only contains legal characters
|
|
61
|
+
if (!/^[a-z][a-z0-9_-]*$/i.test(property)) {
|
|
62
|
+
throw new Error(`${property} is not match 'a-z0-9_-' in ${filepath}`);
|
|
63
|
+
}
|
|
64
|
+
// Underscore/hyphen to camelCase: foo_bar -> fooBar, foo-bar -> fooBar
|
|
65
|
+
const normalized = property.replace(/[_-][a-z]/gi, (s) => s.substring(1).toUpperCase());
|
|
66
|
+
const first = normalized[0];
|
|
67
|
+
if (!first)
|
|
68
|
+
return normalized;
|
|
69
|
+
// Adjust first letter based on caseStyle
|
|
70
|
+
let firstChar = first;
|
|
71
|
+
switch (caseStyle) {
|
|
72
|
+
case 'lower':
|
|
73
|
+
// First letter lowercase: FooBar -> fooBar (controllers use this style)
|
|
74
|
+
firstChar = first.toLowerCase();
|
|
75
|
+
break;
|
|
76
|
+
case 'upper':
|
|
77
|
+
// First letter uppercase: fooBar -> FooBar
|
|
78
|
+
firstChar = first.toUpperCase();
|
|
79
|
+
break;
|
|
80
|
+
case 'camel':
|
|
81
|
+
default:
|
|
82
|
+
// Keep as-is (camelCase)
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
return firstChar + normalized.substring(1);
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=wrap.js.map
|