ee-core 5.0.0-beta.2 → 5.0.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +178 -0
- package/dist/cjs/app/application.d.ts +36 -1
- package/dist/cjs/app/application.d.ts.map +1 -1
- package/dist/cjs/app/application.js +49 -2
- package/dist/cjs/app/application.js.map +1 -1
- package/dist/cjs/app/boot.d.ts +56 -1
- package/dist/cjs/app/boot.d.ts.map +1 -1
- package/dist/cjs/app/boot.js +74 -11
- package/dist/cjs/app/boot.js.map +1 -1
- package/dist/cjs/app/dir.d.ts +10 -0
- package/dist/cjs/app/dir.d.ts.map +1 -1
- package/dist/cjs/app/dir.js +71 -10
- package/dist/cjs/app/dir.js.map +1 -1
- package/dist/cjs/app/events.d.ts +58 -2
- package/dist/cjs/app/events.d.ts.map +1 -1
- package/dist/cjs/app/events.js +92 -12
- package/dist/cjs/app/events.js.map +1 -1
- package/dist/cjs/config/config_loader.d.ts +44 -0
- package/dist/cjs/config/config_loader.d.ts.map +1 -1
- package/dist/cjs/config/config_loader.js +82 -1
- package/dist/cjs/config/config_loader.js.map +1 -1
- package/dist/cjs/config/default_config.d.ts +5 -0
- package/dist/cjs/config/default_config.d.ts.map +1 -1
- package/dist/cjs/config/default_config.js +98 -11
- package/dist/cjs/config/default_config.js.map +1 -1
- package/dist/cjs/config/index.d.ts +31 -1
- package/dist/cjs/config/index.d.ts.map +1 -1
- package/dist/cjs/config/index.js +52 -0
- package/dist/cjs/config/index.js.map +1 -1
- package/dist/cjs/const/channel.d.ts +17 -0
- package/dist/cjs/const/channel.d.ts.map +1 -1
- package/dist/cjs/const/channel.js +17 -0
- package/dist/cjs/const/channel.js.map +1 -1
- package/dist/cjs/controller/controller_loader.d.ts +20 -1
- package/dist/cjs/controller/controller_loader.d.ts.map +1 -1
- package/dist/cjs/controller/controller_loader.js +89 -9
- package/dist/cjs/controller/controller_loader.js.map +1 -1
- package/dist/cjs/controller/index.d.ts +32 -0
- package/dist/cjs/controller/index.d.ts.map +1 -1
- package/dist/cjs/controller/index.js +66 -0
- package/dist/cjs/controller/index.js.map +1 -1
- package/dist/cjs/core/loader/file_loader.d.ts +77 -27
- package/dist/cjs/core/loader/file_loader.d.ts.map +1 -1
- package/dist/cjs/core/loader/file_loader.js +239 -75
- package/dist/cjs/core/loader/file_loader.js.map +1 -1
- package/dist/cjs/core/utils/index.d.ts +57 -2
- package/dist/cjs/core/utils/index.d.ts.map +1 -1
- package/dist/cjs/core/utils/index.js +120 -12
- package/dist/cjs/core/utils/index.js.map +1 -1
- package/dist/cjs/core/utils/timing.d.ts +47 -0
- package/dist/cjs/core/utils/timing.d.ts.map +1 -1
- package/dist/cjs/core/utils/timing.js +42 -2
- package/dist/cjs/core/utils/timing.js.map +1 -1
- package/dist/cjs/cross/cross.d.ts +81 -2
- package/dist/cjs/cross/cross.d.ts.map +1 -1
- package/dist/cjs/cross/cross.js +86 -16
- package/dist/cjs/cross/cross.js.map +1 -1
- package/dist/cjs/cross/crossProcess.d.ts +85 -14
- package/dist/cjs/cross/crossProcess.d.ts.map +1 -1
- package/dist/cjs/cross/crossProcess.js +85 -13
- package/dist/cjs/cross/crossProcess.js.map +1 -1
- package/dist/cjs/electron/app/index.d.ts +17 -1
- package/dist/cjs/electron/app/index.d.ts.map +1 -1
- package/dist/cjs/electron/app/index.js +27 -3
- package/dist/cjs/electron/app/index.js.map +1 -1
- package/dist/cjs/electron/index.d.ts +6 -0
- package/dist/cjs/electron/index.d.ts.map +1 -1
- package/dist/cjs/electron/index.js +16 -1
- package/dist/cjs/electron/index.js.map +1 -1
- package/dist/cjs/electron/window/index.d.ts +37 -0
- package/dist/cjs/electron/window/index.d.ts.map +1 -1
- package/dist/cjs/electron/window/index.js +144 -88
- package/dist/cjs/electron/window/index.js.map +1 -1
- package/dist/cjs/exception/index.d.ts +12 -0
- package/dist/cjs/exception/index.d.ts.map +1 -1
- package/dist/cjs/exception/index.js +67 -9
- package/dist/cjs/exception/index.js.map +1 -1
- package/dist/cjs/html/index.d.ts +19 -0
- package/dist/cjs/html/index.d.ts.map +1 -1
- package/dist/cjs/html/index.js +42 -0
- package/dist/cjs/html/index.js.map +1 -1
- package/dist/cjs/index.d.ts +35 -7
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +127 -80
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/jobs/child/app.js +86 -25
- package/dist/cjs/jobs/child/app.js.map +1 -1
- package/dist/cjs/jobs/child/index.d.ts +5 -5
- package/dist/cjs/jobs/child/index.js +5 -5
- package/dist/cjs/jobs/child/jobProcess.d.ts +68 -0
- package/dist/cjs/jobs/child/jobProcess.d.ts.map +1 -1
- package/dist/cjs/jobs/child/jobProcess.js +86 -11
- package/dist/cjs/jobs/child/jobProcess.js.map +1 -1
- package/dist/cjs/jobs/child-pool/index.d.ts +96 -0
- package/dist/cjs/jobs/child-pool/index.d.ts.map +1 -1
- package/dist/cjs/jobs/child-pool/index.js +91 -4
- package/dist/cjs/jobs/child-pool/index.js.map +1 -1
- package/dist/cjs/jobs/index.d.ts +10 -0
- package/dist/cjs/jobs/index.d.ts.map +1 -1
- package/dist/cjs/jobs/index.js +10 -0
- package/dist/cjs/jobs/index.js.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts +2 -0
- package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/index.js +6 -0
- package/dist/cjs/jobs/load-balancer/algorithm/index.js.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.js +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/polling.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/polling.js +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/random.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/random.js +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/specify.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/specify.js +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weights.js +4 -8
- package/dist/cjs/jobs/load-balancer/algorithm/weights.js.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js +6 -11
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.js +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.js +1 -1
- package/dist/cjs/jobs/load-balancer/consts.d.ts +22 -0
- package/dist/cjs/jobs/load-balancer/consts.d.ts.map +1 -1
- package/dist/cjs/jobs/load-balancer/consts.js +22 -0
- package/dist/cjs/jobs/load-balancer/consts.js.map +1 -1
- package/dist/cjs/jobs/load-balancer/index.d.ts +18 -18
- package/dist/cjs/jobs/load-balancer/index.js +18 -18
- package/dist/cjs/jobs/load-balancer/scheduler.d.ts +3 -3
- package/dist/cjs/jobs/load-balancer/scheduler.js +3 -3
- package/dist/cjs/jobs/load-balancer/types.d.ts +21 -0
- package/dist/cjs/jobs/load-balancer/types.d.ts.map +1 -1
- package/dist/cjs/jobs/load-balancer/types.js +4 -0
- package/dist/cjs/jobs/load-balancer/types.js.map +1 -1
- package/dist/cjs/jobs/registry.d.ts +24 -0
- package/dist/cjs/jobs/registry.d.ts.map +1 -0
- package/dist/cjs/jobs/registry.js +52 -0
- package/dist/cjs/jobs/registry.js.map +1 -0
- package/dist/cjs/loader/index.d.ts +52 -0
- package/dist/cjs/loader/index.d.ts.map +1 -1
- package/dist/cjs/loader/index.js +79 -10
- package/dist/cjs/loader/index.js.map +1 -1
- package/dist/cjs/log/index.d.ts +41 -0
- package/dist/cjs/log/index.d.ts.map +1 -1
- package/dist/cjs/log/index.js +59 -20
- package/dist/cjs/log/index.js.map +1 -1
- package/dist/cjs/log/logger.d.ts +26 -0
- package/dist/cjs/log/logger.d.ts.map +1 -1
- package/dist/cjs/log/logger.js +122 -2
- package/dist/cjs/log/logger.js.map +1 -1
- package/dist/cjs/message/childMessage.d.ts +50 -0
- package/dist/cjs/message/childMessage.d.ts.map +1 -1
- package/dist/cjs/message/childMessage.js +83 -2
- package/dist/cjs/message/childMessage.js.map +1 -1
- package/dist/cjs/ps/index.d.ts +112 -0
- package/dist/cjs/ps/index.d.ts.map +1 -1
- package/dist/cjs/ps/index.js +175 -41
- package/dist/cjs/ps/index.js.map +1 -1
- package/dist/cjs/socket/httpServer.d.ts +58 -5
- package/dist/cjs/socket/httpServer.d.ts.map +1 -1
- package/dist/cjs/socket/httpServer.js +94 -28
- package/dist/cjs/socket/httpServer.js.map +1 -1
- package/dist/cjs/socket/index.d.ts +45 -3
- package/dist/cjs/socket/index.d.ts.map +1 -1
- package/dist/cjs/socket/index.js +50 -14
- package/dist/cjs/socket/index.js.map +1 -1
- package/dist/cjs/socket/ipcServer.d.ts +31 -1
- package/dist/cjs/socket/ipcServer.d.ts.map +1 -1
- package/dist/cjs/socket/ipcServer.js +60 -43
- package/dist/cjs/socket/ipcServer.js.map +1 -1
- package/dist/cjs/socket/socketServer.d.ts +32 -1
- package/dist/cjs/socket/socketServer.d.ts.map +1 -1
- package/dist/cjs/socket/socketServer.js +53 -14
- package/dist/cjs/socket/socketServer.js.map +1 -1
- package/dist/cjs/socket/utils.d.ts +13 -0
- package/dist/cjs/socket/utils.d.ts.map +1 -0
- package/dist/cjs/socket/utils.js +41 -0
- package/dist/cjs/socket/utils.js.map +1 -0
- package/dist/cjs/storage/sqliteStorage.d.ts +93 -4
- package/dist/cjs/storage/sqliteStorage.d.ts.map +1 -1
- package/dist/cjs/storage/sqliteStorage.js +121 -9
- package/dist/cjs/storage/sqliteStorage.js.map +1 -1
- package/dist/cjs/types/index.d.ts +373 -5
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/cjs/utils/extend.d.ts +44 -1
- package/dist/cjs/utils/extend.d.ts.map +1 -1
- package/dist/cjs/utils/extend.js +67 -19
- package/dist/cjs/utils/extend.js.map +1 -1
- package/dist/cjs/utils/helper.d.ts +154 -1
- package/dist/cjs/utils/helper.d.ts.map +1 -1
- package/dist/cjs/utils/helper.js +205 -28
- package/dist/cjs/utils/helper.js.map +1 -1
- package/dist/cjs/utils/index.d.ts +93 -0
- package/dist/cjs/utils/index.d.ts.map +1 -1
- package/dist/cjs/utils/index.js +136 -12
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/ip.d.ts +29 -0
- package/dist/cjs/utils/ip.d.ts.map +1 -1
- package/dist/cjs/utils/ip.js +95 -4
- package/dist/cjs/utils/ip.js.map +1 -1
- package/dist/cjs/utils/is.d.ts +123 -0
- package/dist/cjs/utils/is.d.ts.map +1 -1
- package/dist/cjs/utils/is.js +126 -14
- package/dist/cjs/utils/is.js.map +1 -1
- package/dist/cjs/utils/json.d.ts +54 -0
- package/dist/cjs/utils/json.d.ts.map +1 -1
- package/dist/cjs/utils/json.js +62 -0
- package/dist/cjs/utils/json.js.map +1 -1
- package/dist/cjs/utils/pargv.d.ts +51 -0
- package/dist/cjs/utils/pargv.d.ts.map +1 -1
- package/dist/cjs/utils/pargv.js +141 -3
- package/dist/cjs/utils/pargv.js.map +1 -1
- package/dist/cjs/utils/port/index.d.ts +42 -0
- package/dist/cjs/utils/port/index.d.ts.map +1 -1
- package/dist/cjs/utils/port/index.js +130 -7
- package/dist/cjs/utils/port/index.js.map +1 -1
- package/dist/cjs/utils/type_check.d.ts +79 -0
- package/dist/cjs/utils/type_check.d.ts.map +1 -1
- package/dist/cjs/utils/type_check.js +87 -1
- package/dist/cjs/utils/type_check.js.map +1 -1
- package/dist/cjs/utils/wrap.d.ts +26 -0
- package/dist/cjs/utils/wrap.d.ts.map +1 -1
- package/dist/cjs/utils/wrap.js +47 -10
- package/dist/cjs/utils/wrap.js.map +1 -1
- package/dist/esm/app/application.d.ts +36 -1
- package/dist/esm/app/application.d.ts.map +1 -1
- package/dist/esm/app/application.js +49 -2
- package/dist/esm/app/application.js.map +1 -1
- package/dist/esm/app/boot.d.ts +56 -1
- package/dist/esm/app/boot.d.ts.map +1 -1
- package/dist/esm/app/boot.js +74 -11
- package/dist/esm/app/boot.js.map +1 -1
- package/dist/esm/app/dir.d.ts +10 -0
- package/dist/esm/app/dir.d.ts.map +1 -1
- package/dist/esm/app/dir.js +71 -10
- package/dist/esm/app/dir.js.map +1 -1
- package/dist/esm/app/events.d.ts +58 -2
- package/dist/esm/app/events.d.ts.map +1 -1
- package/dist/esm/app/events.js +92 -12
- package/dist/esm/app/events.js.map +1 -1
- package/dist/esm/config/config_loader.d.ts +44 -0
- package/dist/esm/config/config_loader.d.ts.map +1 -1
- package/dist/esm/config/config_loader.js +82 -1
- package/dist/esm/config/config_loader.js.map +1 -1
- package/dist/esm/config/default_config.d.ts +5 -0
- package/dist/esm/config/default_config.d.ts.map +1 -1
- package/dist/esm/config/default_config.js +98 -11
- package/dist/esm/config/default_config.js.map +1 -1
- package/dist/esm/config/index.d.ts +31 -1
- package/dist/esm/config/index.d.ts.map +1 -1
- package/dist/esm/config/index.js +52 -0
- package/dist/esm/config/index.js.map +1 -1
- package/dist/esm/const/channel.d.ts +17 -0
- package/dist/esm/const/channel.d.ts.map +1 -1
- package/dist/esm/const/channel.js +17 -0
- package/dist/esm/const/channel.js.map +1 -1
- package/dist/esm/controller/controller_loader.d.ts +20 -1
- package/dist/esm/controller/controller_loader.d.ts.map +1 -1
- package/dist/esm/controller/controller_loader.js +89 -9
- package/dist/esm/controller/controller_loader.js.map +1 -1
- package/dist/esm/controller/index.d.ts +32 -0
- package/dist/esm/controller/index.d.ts.map +1 -1
- package/dist/esm/controller/index.js +66 -0
- package/dist/esm/controller/index.js.map +1 -1
- package/dist/esm/core/loader/file_loader.d.ts +77 -27
- package/dist/esm/core/loader/file_loader.d.ts.map +1 -1
- package/dist/esm/core/loader/file_loader.js +239 -75
- package/dist/esm/core/loader/file_loader.js.map +1 -1
- package/dist/esm/core/utils/index.d.ts +57 -2
- package/dist/esm/core/utils/index.d.ts.map +1 -1
- package/dist/esm/core/utils/index.js +87 -12
- package/dist/esm/core/utils/index.js.map +1 -1
- package/dist/esm/core/utils/timing.d.ts +47 -0
- package/dist/esm/core/utils/timing.d.ts.map +1 -1
- package/dist/esm/core/utils/timing.js +42 -2
- package/dist/esm/core/utils/timing.js.map +1 -1
- package/dist/esm/cross/cross.d.ts +81 -2
- package/dist/esm/cross/cross.d.ts.map +1 -1
- package/dist/esm/cross/cross.js +86 -16
- package/dist/esm/cross/cross.js.map +1 -1
- package/dist/esm/cross/crossProcess.d.ts +85 -14
- package/dist/esm/cross/crossProcess.d.ts.map +1 -1
- package/dist/esm/cross/crossProcess.js +85 -13
- package/dist/esm/cross/crossProcess.js.map +1 -1
- package/dist/esm/electron/app/index.d.ts +17 -1
- package/dist/esm/electron/app/index.d.ts.map +1 -1
- package/dist/esm/electron/app/index.js +27 -3
- package/dist/esm/electron/app/index.js.map +1 -1
- package/dist/esm/electron/index.d.ts +6 -0
- package/dist/esm/electron/index.d.ts.map +1 -1
- package/dist/esm/electron/index.js +16 -1
- package/dist/esm/electron/index.js.map +1 -1
- package/dist/esm/electron/window/index.d.ts +37 -0
- package/dist/esm/electron/window/index.d.ts.map +1 -1
- package/dist/esm/electron/window/index.js +144 -88
- package/dist/esm/electron/window/index.js.map +1 -1
- package/dist/esm/exception/index.d.ts +12 -0
- package/dist/esm/exception/index.d.ts.map +1 -1
- package/dist/esm/exception/index.js +67 -9
- package/dist/esm/exception/index.js.map +1 -1
- package/dist/esm/html/index.d.ts +19 -0
- package/dist/esm/html/index.d.ts.map +1 -1
- package/dist/esm/html/index.js +42 -0
- package/dist/esm/html/index.js.map +1 -1
- package/dist/esm/index.d.ts +35 -7
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +127 -80
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/jobs/child/app.js +86 -25
- package/dist/esm/jobs/child/app.js.map +1 -1
- package/dist/esm/jobs/child/index.d.ts +5 -5
- package/dist/esm/jobs/child/index.js +5 -5
- package/dist/esm/jobs/child/jobProcess.d.ts +68 -0
- package/dist/esm/jobs/child/jobProcess.d.ts.map +1 -1
- package/dist/esm/jobs/child/jobProcess.js +86 -11
- package/dist/esm/jobs/child/jobProcess.js.map +1 -1
- package/dist/esm/jobs/child-pool/index.d.ts +96 -0
- package/dist/esm/jobs/child-pool/index.d.ts.map +1 -1
- package/dist/esm/jobs/child-pool/index.js +91 -4
- package/dist/esm/jobs/child-pool/index.js.map +1 -1
- package/dist/esm/jobs/index.d.ts +10 -0
- package/dist/esm/jobs/index.d.ts.map +1 -1
- package/dist/esm/jobs/index.js +10 -0
- package/dist/esm/jobs/index.js.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/index.d.ts +2 -0
- package/dist/esm/jobs/load-balancer/algorithm/index.d.ts.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/index.js +6 -0
- package/dist/esm/jobs/load-balancer/algorithm/index.js.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.js +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/polling.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/polling.js +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/random.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/random.js +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/specify.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/specify.js +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weights.js +4 -8
- package/dist/esm/jobs/load-balancer/algorithm/weights.js.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js +6 -11
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.js +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.js +1 -1
- package/dist/esm/jobs/load-balancer/consts.d.ts +22 -0
- package/dist/esm/jobs/load-balancer/consts.d.ts.map +1 -1
- package/dist/esm/jobs/load-balancer/consts.js +22 -0
- package/dist/esm/jobs/load-balancer/consts.js.map +1 -1
- package/dist/esm/jobs/load-balancer/index.d.ts +18 -18
- package/dist/esm/jobs/load-balancer/index.js +18 -18
- package/dist/esm/jobs/load-balancer/scheduler.d.ts +3 -3
- package/dist/esm/jobs/load-balancer/scheduler.js +3 -3
- package/dist/esm/jobs/load-balancer/types.d.ts +21 -0
- package/dist/esm/jobs/load-balancer/types.d.ts.map +1 -1
- package/dist/esm/jobs/load-balancer/types.js +4 -0
- package/dist/esm/jobs/load-balancer/types.js.map +1 -1
- package/dist/esm/jobs/registry.d.ts +24 -0
- package/dist/esm/jobs/registry.d.ts.map +1 -0
- package/dist/esm/jobs/registry.js +52 -0
- package/dist/esm/jobs/registry.js.map +1 -0
- package/dist/esm/loader/index.d.ts +52 -0
- package/dist/esm/loader/index.d.ts.map +1 -1
- package/dist/esm/loader/index.js +79 -10
- package/dist/esm/loader/index.js.map +1 -1
- package/dist/esm/log/index.d.ts +41 -0
- package/dist/esm/log/index.d.ts.map +1 -1
- package/dist/esm/log/index.js +59 -20
- package/dist/esm/log/index.js.map +1 -1
- package/dist/esm/log/logger.d.ts +26 -0
- package/dist/esm/log/logger.d.ts.map +1 -1
- package/dist/esm/log/logger.js +122 -2
- package/dist/esm/log/logger.js.map +1 -1
- package/dist/esm/message/childMessage.d.ts +50 -0
- package/dist/esm/message/childMessage.d.ts.map +1 -1
- package/dist/esm/message/childMessage.js +83 -2
- package/dist/esm/message/childMessage.js.map +1 -1
- package/dist/esm/ps/index.d.ts +112 -0
- package/dist/esm/ps/index.d.ts.map +1 -1
- package/dist/esm/ps/index.js +175 -41
- package/dist/esm/ps/index.js.map +1 -1
- package/dist/esm/socket/httpServer.d.ts +58 -5
- package/dist/esm/socket/httpServer.d.ts.map +1 -1
- package/dist/esm/socket/httpServer.js +94 -28
- package/dist/esm/socket/httpServer.js.map +1 -1
- package/dist/esm/socket/index.d.ts +45 -3
- package/dist/esm/socket/index.d.ts.map +1 -1
- package/dist/esm/socket/index.js +50 -14
- package/dist/esm/socket/index.js.map +1 -1
- package/dist/esm/socket/ipcServer.d.ts +31 -1
- package/dist/esm/socket/ipcServer.d.ts.map +1 -1
- package/dist/esm/socket/ipcServer.js +60 -43
- package/dist/esm/socket/ipcServer.js.map +1 -1
- package/dist/esm/socket/socketServer.d.ts +32 -1
- package/dist/esm/socket/socketServer.d.ts.map +1 -1
- package/dist/esm/socket/socketServer.js +53 -14
- package/dist/esm/socket/socketServer.js.map +1 -1
- package/dist/esm/socket/utils.d.ts +13 -0
- package/dist/esm/socket/utils.d.ts.map +1 -0
- package/dist/esm/socket/utils.js +41 -0
- package/dist/esm/socket/utils.js.map +1 -0
- package/dist/esm/storage/sqliteStorage.d.ts +93 -4
- package/dist/esm/storage/sqliteStorage.d.ts.map +1 -1
- package/dist/esm/storage/sqliteStorage.js +121 -9
- package/dist/esm/storage/sqliteStorage.js.map +1 -1
- package/dist/esm/types/index.d.ts +373 -5
- package/dist/esm/types/index.d.ts.map +1 -1
- package/dist/esm/utils/extend.d.ts +44 -1
- package/dist/esm/utils/extend.d.ts.map +1 -1
- package/dist/esm/utils/extend.js +67 -19
- package/dist/esm/utils/extend.js.map +1 -1
- package/dist/esm/utils/helper.d.ts +154 -1
- package/dist/esm/utils/helper.d.ts.map +1 -1
- package/dist/esm/utils/helper.js +205 -28
- package/dist/esm/utils/helper.js.map +1 -1
- package/dist/esm/utils/index.d.ts +93 -0
- package/dist/esm/utils/index.d.ts.map +1 -1
- package/dist/esm/utils/index.js +136 -12
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/ip.d.ts +29 -0
- package/dist/esm/utils/ip.d.ts.map +1 -1
- package/dist/esm/utils/ip.js +95 -4
- package/dist/esm/utils/ip.js.map +1 -1
- package/dist/esm/utils/is.d.ts +123 -0
- package/dist/esm/utils/is.d.ts.map +1 -1
- package/dist/esm/utils/is.js +126 -14
- package/dist/esm/utils/is.js.map +1 -1
- package/dist/esm/utils/json.d.ts +54 -0
- package/dist/esm/utils/json.d.ts.map +1 -1
- package/dist/esm/utils/json.js +62 -0
- package/dist/esm/utils/json.js.map +1 -1
- package/dist/esm/utils/pargv.d.ts +51 -0
- package/dist/esm/utils/pargv.d.ts.map +1 -1
- package/dist/esm/utils/pargv.js +141 -3
- package/dist/esm/utils/pargv.js.map +1 -1
- package/dist/esm/utils/port/index.d.ts +42 -0
- package/dist/esm/utils/port/index.d.ts.map +1 -1
- package/dist/esm/utils/port/index.js +130 -7
- package/dist/esm/utils/port/index.js.map +1 -1
- package/dist/esm/utils/type_check.d.ts +79 -0
- package/dist/esm/utils/type_check.d.ts.map +1 -1
- package/dist/esm/utils/type_check.js +87 -1
- package/dist/esm/utils/type_check.js.map +1 -1
- package/dist/esm/utils/wrap.d.ts +26 -0
- package/dist/esm/utils/wrap.d.ts.map +1 -1
- package/dist/esm/utils/wrap.js +47 -10
- package/dist/esm/utils/wrap.js.map +1 -1
- package/package.json +12 -13
|
@@ -4,39 +4,113 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.FileLoader = exports.EXPORTS = exports.FULLPATH = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* @module core/loader/file_loader
|
|
9
|
+
* @description Generic file loader. Scans files in a specified directory and organizes
|
|
10
|
+
* exported content into nested objects based on directory structure, for use by
|
|
11
|
+
* controllers, services, and other modules.
|
|
12
|
+
*
|
|
13
|
+
* Three loading methods:
|
|
14
|
+
* - parse(): Synchronous file scanning + require(), suitable for CJS dev mode
|
|
15
|
+
* - parseFromRegistry(): Load from pre-registered registry, suitable for bundle mode
|
|
16
|
+
* - parseAsync(): Asynchronous file scanning + import(), suitable for ESM dev mode
|
|
17
|
+
*
|
|
18
|
+
* Directory structure to property mapping:
|
|
19
|
+
* ```
|
|
20
|
+
* controller/user.js -> target.controller.user
|
|
21
|
+
* controller/admin/login.js -> target.controller.admin.login
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* Property naming style is controlled by caseStyle:
|
|
25
|
+
* - 'camel': camelCase (default) — user-info -> userInfo
|
|
26
|
+
* - 'lower': all lowercase — User Info -> user info (used by controllers)
|
|
27
|
+
*/
|
|
7
28
|
const debug_1 = __importDefault(require("debug"));
|
|
8
29
|
const fs_1 = __importDefault(require("fs"));
|
|
9
30
|
const path_1 = __importDefault(require("path"));
|
|
10
|
-
const globby_1 = __importDefault(require("globby"));
|
|
11
31
|
const type_check_js_1 = require("../../utils/type_check.js");
|
|
12
32
|
const index_js_1 = require("../utils/index.js");
|
|
13
33
|
const wrap_js_1 = require("../../utils/wrap.js");
|
|
14
34
|
const debugLog = (0, debug_1.default)('ee-core:core:loader:file_loader');
|
|
35
|
+
/** Symbol marker: records the full path of a file */
|
|
15
36
|
exports.FULLPATH = Symbol('LOADER_ITEM_FULLPATH');
|
|
37
|
+
/** Symbol marker: indicates the export has been processed by the loader */
|
|
16
38
|
exports.EXPORTS = Symbol('LOADER_ITEM_EXPORTS');
|
|
39
|
+
/** Default configuration */
|
|
17
40
|
const defaults = {
|
|
41
|
+
/** Property naming style */
|
|
18
42
|
caseStyle: 'camel',
|
|
43
|
+
/** Custom initializer: performs additional processing on exported content */
|
|
19
44
|
initializer: null,
|
|
45
|
+
/** Whether to automatically invoke function-type exports */
|
|
20
46
|
call: true,
|
|
47
|
+
/** Injection arguments for function calls */
|
|
21
48
|
inject: undefined,
|
|
49
|
+
/** Target object (deprecated; now created internally by load()) */
|
|
22
50
|
target: null,
|
|
51
|
+
/** File match patterns (overrides default filePatterns) */
|
|
23
52
|
match: undefined,
|
|
24
53
|
};
|
|
54
|
+
/** Script file extensions to scan */
|
|
55
|
+
const SCRIPT_EXTENSIONS = ['.js', '.ts', '.mts', '.cts', '.tsx', '.jsx', '.mjs', '.cjs'];
|
|
25
56
|
/**
|
|
26
|
-
*
|
|
57
|
+
* Recursively scan directory for script files
|
|
58
|
+
*
|
|
59
|
+
* Replaces globbySync to avoid ESM-only dependency in CJS mode.
|
|
60
|
+
* Returns relative file paths (e.g. 'user.js', 'admin/login.js').
|
|
61
|
+
*
|
|
62
|
+
* @param dir - Absolute directory path to scan
|
|
63
|
+
* @param prefix - Current relative path prefix (used internally for recursion)
|
|
64
|
+
* @returns Array of relative file paths
|
|
65
|
+
*/
|
|
66
|
+
function scanDirSync(dir, prefix = '') {
|
|
67
|
+
const results = [];
|
|
68
|
+
if (!fs_1.default.existsSync(dir))
|
|
69
|
+
return results;
|
|
70
|
+
const entries = fs_1.default.readdirSync(dir, { withFileTypes: true });
|
|
71
|
+
for (const entry of entries) {
|
|
72
|
+
const relPath = prefix ? prefix + '/' + entry.name : entry.name;
|
|
73
|
+
const fullPath = path_1.default.join(dir, entry.name);
|
|
74
|
+
if (entry.isDirectory()) {
|
|
75
|
+
results.push(...scanDirSync(fullPath, relPath));
|
|
76
|
+
}
|
|
77
|
+
else if (entry.isFile() && SCRIPT_EXTENSIONS.includes(path_1.default.extname(entry.name))) {
|
|
78
|
+
results.push(relPath);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return results;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Recursively scan directory for script files (async)
|
|
85
|
+
*
|
|
86
|
+
* @param dir - Absolute directory path to scan
|
|
87
|
+
* @param prefix - Current relative path prefix (used internally for recursion)
|
|
88
|
+
* @returns Array of relative file paths
|
|
89
|
+
*/
|
|
90
|
+
async function scanDirAsync(dir, prefix = '') {
|
|
91
|
+
const results = [];
|
|
92
|
+
if (!fs_1.default.existsSync(dir))
|
|
93
|
+
return results;
|
|
94
|
+
const entries = await fs_1.default.promises.readdir(dir, { withFileTypes: true });
|
|
95
|
+
for (const entry of entries) {
|
|
96
|
+
const relPath = prefix ? prefix + '/' + entry.name : entry.name;
|
|
97
|
+
const fullPath = path_1.default.join(dir, entry.name);
|
|
98
|
+
if (entry.isDirectory()) {
|
|
99
|
+
results.push(...await scanDirAsync(fullPath, relPath));
|
|
100
|
+
}
|
|
101
|
+
else if (entry.isFile() && SCRIPT_EXTENSIONS.includes(path_1.default.extname(entry.name))) {
|
|
102
|
+
results.push(relPath);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return results;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* FileLoader — File loader
|
|
109
|
+
*
|
|
110
|
+
* Organizes exported content from files in a directory into nested property objects
|
|
111
|
+
* based on directory structure. Supports synchronous/asynchronous loading and registry mode.
|
|
27
112
|
*/
|
|
28
113
|
class FileLoader {
|
|
29
|
-
/**
|
|
30
|
-
* @class
|
|
31
|
-
* @param {Object} options - options
|
|
32
|
-
* @param {String|Array} options.directory - directories to be loaded
|
|
33
|
-
* @param {Object} options.target - attach the target object from loaded files
|
|
34
|
-
* @param {String} options.match - match the files when load, support glob, default to all js files
|
|
35
|
-
* @param {Function} options.initializer - custom file exports, receive two parameters, first is the inject object(if not js file, will be content buffer), second is an `options` object that contain `path`
|
|
36
|
-
* @param {Boolean} options.call - determine whether invoke when exports is function
|
|
37
|
-
* @param {Object} options.inject - an object that be the argument when invoke the function
|
|
38
|
-
* @param {String|Function} options.caseStyle - set property's case when converting a filepath to property list.
|
|
39
|
-
*/
|
|
40
114
|
constructor(options) {
|
|
41
115
|
if (!options.directory) {
|
|
42
116
|
throw new Error('options.directory is required');
|
|
@@ -45,30 +119,75 @@ class FileLoader {
|
|
|
45
119
|
debugLog('[constructor] options: %o', this.options);
|
|
46
120
|
}
|
|
47
121
|
/**
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
122
|
+
* Process a single export
|
|
123
|
+
*
|
|
124
|
+
* Execution flow:
|
|
125
|
+
* 1. Run initializer (if present) for custom processing of the export
|
|
126
|
+
* 2. Set pathName and fullPath properties on classes
|
|
127
|
+
* 3. Class/generator function/async function/bytecode class -> return directly
|
|
128
|
+
* 4. Plain function -> auto-invoke based on the call option
|
|
129
|
+
*
|
|
130
|
+
* @param exports - File exported content
|
|
131
|
+
* @param fullpath - File full path
|
|
132
|
+
* @param properties - Property path (array converted from directory + filename)
|
|
133
|
+
* @param dirName - Directory name (used as property path prefix)
|
|
134
|
+
* @returns LoaderItem or null (skipped when export is null/undefined)
|
|
51
135
|
*/
|
|
52
|
-
|
|
53
|
-
|
|
136
|
+
_processExport(exports, fullpath, properties, dirName) {
|
|
137
|
+
if (exports == null)
|
|
138
|
+
return null;
|
|
139
|
+
const pathName = dirName + '.' + properties.join('.');
|
|
140
|
+
const initializer = this.options.initializer;
|
|
141
|
+
if (initializer) {
|
|
142
|
+
exports = initializer(exports, { pathName, path: fullpath });
|
|
143
|
+
}
|
|
144
|
+
// Set path info on classes for IPC routing and debugging
|
|
145
|
+
if ((0, type_check_js_1.isClass)(exports) || (0, index_js_1.isBytecodeClass)(exports)) {
|
|
146
|
+
exports.prototype.pathName = pathName;
|
|
147
|
+
exports.prototype.fullPath = fullpath;
|
|
148
|
+
}
|
|
149
|
+
// Class/generator/async/bytecode class -> do not auto-invoke, return directly
|
|
150
|
+
if ((0, type_check_js_1.isClass)(exports) || (0, type_check_js_1.isGeneratorFunction)(exports) || (0, type_check_js_1.isAsyncFunction)(exports) || (0, index_js_1.isBytecodeClass)(exports)) {
|
|
151
|
+
return { fullpath, properties, exports };
|
|
152
|
+
}
|
|
153
|
+
// Plain function: auto-invoke based on the call option
|
|
154
|
+
if (this.options.call && (0, type_check_js_1.isFunction)(exports)) {
|
|
155
|
+
exports = exports(this.options.inject);
|
|
156
|
+
if (exports != null) {
|
|
157
|
+
return { fullpath, properties, exports };
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return { fullpath, properties, exports };
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Assign load items to target object
|
|
164
|
+
*
|
|
165
|
+
* Creates nested objects level by level along the property path, ultimately mounting
|
|
166
|
+
* the exported content at the leaf node. Also marks non-primitive exports with
|
|
167
|
+
* FULLPATH and EXPORTS symbols.
|
|
168
|
+
*
|
|
169
|
+
* @param items - Load item list
|
|
170
|
+
* @returns Nested property object
|
|
171
|
+
*/
|
|
172
|
+
_assignToTarget(items) {
|
|
54
173
|
const target = {};
|
|
55
174
|
for (const item of items) {
|
|
56
|
-
// item { fullpath, properties: [ 'a', 'b', 'c'], exports }
|
|
57
175
|
let current = target;
|
|
58
176
|
for (let i = 0; i < item.properties.length; i++) {
|
|
59
177
|
const property = item.properties[i];
|
|
60
178
|
if (!property)
|
|
61
179
|
continue;
|
|
62
|
-
// properties is a path slice, only the last value is the file name
|
|
63
180
|
const isLast = i === item.properties.length - 1;
|
|
64
181
|
if (isLast) {
|
|
65
182
|
current[property] = item.exports;
|
|
183
|
+
// Mark full path and export identifier for non-primitive types
|
|
66
184
|
if (item.exports && !(0, type_check_js_1.isPrimitive)(item.exports)) {
|
|
67
185
|
item.exports[exports.FULLPATH] = item.fullpath;
|
|
68
186
|
item.exports[exports.EXPORTS] = true;
|
|
69
187
|
}
|
|
70
188
|
}
|
|
71
189
|
else {
|
|
190
|
+
// Intermediate level: ensure object exists
|
|
72
191
|
current[property] = current[property] || {};
|
|
73
192
|
current = current[property];
|
|
74
193
|
}
|
|
@@ -77,25 +196,24 @@ class FileLoader {
|
|
|
77
196
|
return target;
|
|
78
197
|
}
|
|
79
198
|
/**
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
*
|
|
92
|
-
*
|
|
199
|
+
* Load files and build target object
|
|
200
|
+
*
|
|
201
|
+
* Loads from registry when available (bundle mode), otherwise scans filesystem (dev mode).
|
|
202
|
+
*
|
|
203
|
+
* @returns Nested property object organized by directory structure
|
|
204
|
+
*/
|
|
205
|
+
load() {
|
|
206
|
+
const items = this.options.registry ? this.parseFromRegistry() : this.parse();
|
|
207
|
+
return this._assignToTarget(items);
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Parse files synchronously from filesystem
|
|
211
|
+
*
|
|
212
|
+
* Uses fs.readdirSync recursive scanning and require() to load files.
|
|
213
|
+
*
|
|
214
|
+
* @returns Load item list
|
|
93
215
|
*/
|
|
94
216
|
parse() {
|
|
95
|
-
let files = (this.options.match || (0, index_js_1.filePatterns)());
|
|
96
|
-
if (!Array.isArray(files)) {
|
|
97
|
-
files = [files];
|
|
98
|
-
}
|
|
99
217
|
let directories;
|
|
100
218
|
if (Array.isArray(this.options.directory)) {
|
|
101
219
|
directories = this.options.directory;
|
|
@@ -106,48 +224,94 @@ class FileLoader {
|
|
|
106
224
|
const items = [];
|
|
107
225
|
debugLog('[parse] directories %o', directories);
|
|
108
226
|
for (const directory of directories) {
|
|
109
|
-
const filepaths =
|
|
227
|
+
const filepaths = scanDirSync(directory);
|
|
110
228
|
debugLog('[parse] filepaths %o', filepaths);
|
|
111
229
|
for (const filepath of filepaths) {
|
|
112
230
|
const fullpath = path_1.default.join(directory, filepath);
|
|
113
|
-
if (!fs_1.default.statSync(fullpath).isFile())
|
|
114
|
-
continue;
|
|
115
|
-
// get properties
|
|
116
|
-
// controller/foo/bar.js => [ 'foo', 'bar' ]
|
|
117
231
|
const properties = (0, wrap_js_1.getProperties)(filepath, { caseStyle: this.options.caseStyle });
|
|
118
|
-
//
|
|
119
|
-
|
|
120
|
-
const
|
|
121
|
-
const
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
232
|
+
// Take the last level of the directory as the property prefix (e.g. 'controller')
|
|
233
|
+
const dirName = directory.split(/[/\\]/).slice(-1)[0] || 'unknown';
|
|
234
|
+
const exports = (0, index_js_1.loadFile)(fullpath);
|
|
235
|
+
const item = this._processExport(exports, fullpath, properties, dirName);
|
|
236
|
+
if (item)
|
|
237
|
+
items.push(item);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
return items;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Parse modules from pre-registered registry
|
|
244
|
+
*
|
|
245
|
+
* In bundle mode, the esbuild plugin pre-registers controller/configuration info
|
|
246
|
+
* into global variables. This method reads the registry directly without filesystem scanning.
|
|
247
|
+
*
|
|
248
|
+
* @returns Load item list
|
|
249
|
+
*/
|
|
250
|
+
parseFromRegistry() {
|
|
251
|
+
const registry = this.options.registry;
|
|
252
|
+
if (!registry)
|
|
253
|
+
return [];
|
|
254
|
+
const items = [];
|
|
255
|
+
debugLog('[parseFromRegistry] entries %d', registry.length);
|
|
256
|
+
for (const entry of registry) {
|
|
257
|
+
let exports = entry.module;
|
|
258
|
+
// ESM interop: handle modules with __esModule marker
|
|
259
|
+
if (exports && exports.__esModule) {
|
|
260
|
+
exports = 'default' in exports
|
|
261
|
+
? exports.default
|
|
262
|
+
: exports;
|
|
263
|
+
}
|
|
264
|
+
const fullpath = entry.fullpath;
|
|
265
|
+
const properties = entry.properties;
|
|
266
|
+
// Extract the second-to-last directory name from registry entry path (e.g. 'controller')
|
|
267
|
+
const dirName = fullpath.split(/[/\\]/).slice(-2, -1)[0] || 'controller';
|
|
268
|
+
const item = this._processExport(exports, fullpath, properties, dirName);
|
|
269
|
+
if (item)
|
|
270
|
+
items.push(item);
|
|
271
|
+
}
|
|
272
|
+
return items;
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Load files asynchronously and build target object
|
|
276
|
+
*
|
|
277
|
+
* Uses fs.promises recursive scanning and import() dynamic loading.
|
|
278
|
+
* Suitable for ESM dev mode.
|
|
279
|
+
*
|
|
280
|
+
* @returns Nested property object organized by directory structure
|
|
281
|
+
*/
|
|
282
|
+
async loadAsync() {
|
|
283
|
+
const items = await this.parseAsync();
|
|
284
|
+
return this._assignToTarget(items);
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Parse files asynchronously from filesystem
|
|
288
|
+
*
|
|
289
|
+
* Uses fs.promises recursive scanning and import() dynamic loading.
|
|
290
|
+
* Suitable for ESM dev mode.
|
|
291
|
+
*
|
|
292
|
+
* @returns Load item list
|
|
293
|
+
*/
|
|
294
|
+
async parseAsync() {
|
|
295
|
+
let directories;
|
|
296
|
+
if (Array.isArray(this.options.directory)) {
|
|
297
|
+
directories = this.options.directory;
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
directories = [this.options.directory];
|
|
301
|
+
}
|
|
302
|
+
const items = [];
|
|
303
|
+
debugLog('[parseAsync] directories %o', directories);
|
|
304
|
+
for (const directory of directories) {
|
|
305
|
+
const filepaths = await scanDirAsync(directory);
|
|
306
|
+
debugLog('[parseAsync] filepaths %o', filepaths);
|
|
307
|
+
for (const filepath of filepaths) {
|
|
308
|
+
const fullpath = path_1.default.join(directory, filepath);
|
|
309
|
+
const properties = (0, wrap_js_1.getProperties)(filepath, { caseStyle: this.options.caseStyle });
|
|
310
|
+
const dirName = directory.split(/[/\\]/).slice(-1)[0] || 'unknown';
|
|
311
|
+
const exports = await (0, index_js_1.loadFileAsync)(fullpath);
|
|
312
|
+
const item = this._processExport(exports, fullpath, properties, dirName);
|
|
313
|
+
if (item)
|
|
314
|
+
items.push(item);
|
|
151
315
|
}
|
|
152
316
|
}
|
|
153
317
|
return items;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file_loader.js","sourceRoot":"","sources":["../../../../src/core/loader/file_loader.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,4CAAoB;AACpB,gDAAwB;AACxB,
|
|
1
|
+
{"version":3,"file":"file_loader.js","sourceRoot":"","sources":["../../../../src/core/loader/file_loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module core/utils
|
|
3
|
+
* @description Core utility functions. Provides file loading, function invocation, bytecode class detection,
|
|
4
|
+
* and other foundational capabilities. Serves as a low-level dependency for FileLoader and other modules.
|
|
5
|
+
*/
|
|
1
6
|
import 'bytenode';
|
|
2
7
|
declare const extensions: NodeJS.RequireExtensions;
|
|
8
|
+
/**
|
|
9
|
+
* Load a file synchronously
|
|
10
|
+
*
|
|
11
|
+
* Execution flow:
|
|
12
|
+
* 1. Non-JS files (extensions not in Module._extensions) -> return file content as Buffer
|
|
13
|
+
* 2. JS/CJS/JSC files -> load module using require()
|
|
14
|
+
* 3. ESM modules (with __esModule marker) -> extract default export
|
|
15
|
+
*
|
|
16
|
+
* @param filepath - Absolute file path
|
|
17
|
+
* @returns File content (Buffer) or module export value
|
|
18
|
+
* @throws Throws an error containing the file path when file loading fails
|
|
19
|
+
*/
|
|
3
20
|
export declare function loadFile(filepath: string): unknown;
|
|
21
|
+
/**
|
|
22
|
+
* Call a function with bound context
|
|
23
|
+
*
|
|
24
|
+
* @param fn - Function to call
|
|
25
|
+
* @param args - Function argument list
|
|
26
|
+
* @param ctx - Function execution context (this binding); if not provided, calls directly
|
|
27
|
+
* @returns Function return value; returns undefined if fn is not a function
|
|
28
|
+
*/
|
|
4
29
|
export declare function callFn(fn: (...args: unknown[]) => unknown, args?: unknown[], ctx?: unknown): Promise<unknown>;
|
|
30
|
+
/**
|
|
31
|
+
* Get the relative path name of a file
|
|
32
|
+
*
|
|
33
|
+
* Converts an absolute path to a relative path based on baseDir, using forward slashes as separators.
|
|
34
|
+
*
|
|
35
|
+
* @param filepath - Absolute file path
|
|
36
|
+
* @param baseDir - Base directory
|
|
37
|
+
* @returns Relative path (forward slash separated)
|
|
38
|
+
*/
|
|
5
39
|
export declare function getResolvedFilename(filepath: string, baseDir: string): string;
|
|
6
40
|
/**
|
|
7
|
-
*
|
|
41
|
+
* Determine if an export is a bytecode class
|
|
42
|
+
*
|
|
43
|
+
* Checks whether the toString() result contains '[class'.
|
|
44
|
+
* Classes from bytenode-compiled .jsc files appear as '[class XXX]' in Node.js.
|
|
45
|
+
*
|
|
46
|
+
* @param exports - Export value to check
|
|
47
|
+
* @returns Whether it is a bytecode class
|
|
8
48
|
*/
|
|
9
49
|
export declare function isBytecodeClass(exports: unknown): boolean;
|
|
10
50
|
/**
|
|
11
|
-
*
|
|
51
|
+
* Get supported file match patterns
|
|
52
|
+
*
|
|
53
|
+
* Used for filtering file types when globby scans directories.
|
|
54
|
+
*
|
|
55
|
+
* @returns File pattern list (.js and .jsc)
|
|
12
56
|
*/
|
|
13
57
|
export declare function filePatterns(): string[];
|
|
14
58
|
export { extensions };
|
|
59
|
+
/**
|
|
60
|
+
* Load a file asynchronously (ESM support)
|
|
61
|
+
*
|
|
62
|
+
* Same functionality as loadFile, but uses dynamic import() to load modules,
|
|
63
|
+
* supporting ESM format files. Non-JS files are read using fs.promises.readFile.
|
|
64
|
+
*
|
|
65
|
+
* @param filepath - Absolute file path
|
|
66
|
+
* @returns File content (Buffer) or module export value
|
|
67
|
+
* @throws Throws an error containing the file path when file loading fails
|
|
68
|
+
*/
|
|
69
|
+
export declare function loadFileAsync(filepath: string): Promise<unknown>;
|
|
15
70
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,CAAC;AAelB,QAAA,MAAM,UAAU,EAAE,MAAM,CAAC,iBAAsC,CAAC;AAEhE,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAmBlD;AAED,wBAAsB,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAInH;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAG7E;AAED
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,UAAU,CAAC;AAelB,QAAA,MAAM,UAAU,EAAE,MAAM,CAAC,iBAAsC,CAAC;AAEhE;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAmBlD;AAED;;;;;;;GAOG;AACH,wBAAsB,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAInH;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAG7E;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAGzD;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAEvC;AAED,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAmBtE"}
|
|
@@ -9,32 +9,49 @@ exports.callFn = callFn;
|
|
|
9
9
|
exports.getResolvedFilename = getResolvedFilename;
|
|
10
10
|
exports.isBytecodeClass = isBytecodeClass;
|
|
11
11
|
exports.filePatterns = filePatterns;
|
|
12
|
+
exports.loadFileAsync = loadFileAsync;
|
|
13
|
+
/**
|
|
14
|
+
* @module core/utils
|
|
15
|
+
* @description Core utility functions. Provides file loading, function invocation, bytecode class detection,
|
|
16
|
+
* and other foundational capabilities. Serves as a low-level dependency for FileLoader and other modules.
|
|
17
|
+
*/
|
|
12
18
|
require("bytenode");
|
|
13
19
|
const type_check_js_1 = require("../../utils/type_check.js");
|
|
14
20
|
const path_1 = __importDefault(require("path"));
|
|
15
21
|
const fs_1 = __importDefault(require("fs"));
|
|
16
22
|
const module_1 = require("module");
|
|
17
|
-
|
|
23
|
+
// __filename is available in CJS; in pure ESM without a bundler, use cwd as the base path for createRequire
|
|
24
|
+
const requireMod = (0, module_1.createRequire)(typeof __filename !== 'undefined'
|
|
25
|
+
? __filename
|
|
26
|
+
: path_1.default.join(process.cwd(), '__virtual__.js'));
|
|
18
27
|
const Module = requireMod('module');
|
|
19
|
-
//
|
|
20
|
-
// '.js': [Function (anonymous)],
|
|
21
|
-
// '.json': [Function (anonymous)],
|
|
22
|
-
// '.node': [Function: func],
|
|
23
|
-
// '.jsc': [Function (anonymous)]
|
|
28
|
+
// File extensions natively supported by Node.js (including .jsc registered by bytenode)
|
|
24
29
|
const extensions = Module._extensions;
|
|
25
30
|
exports.extensions = extensions;
|
|
31
|
+
/**
|
|
32
|
+
* Load a file synchronously
|
|
33
|
+
*
|
|
34
|
+
* Execution flow:
|
|
35
|
+
* 1. Non-JS files (extensions not in Module._extensions) -> return file content as Buffer
|
|
36
|
+
* 2. JS/CJS/JSC files -> load module using require()
|
|
37
|
+
* 3. ESM modules (with __esModule marker) -> extract default export
|
|
38
|
+
*
|
|
39
|
+
* @param filepath - Absolute file path
|
|
40
|
+
* @returns File content (Buffer) or module export value
|
|
41
|
+
* @throws Throws an error containing the file path when file loading fails
|
|
42
|
+
*/
|
|
26
43
|
function loadFile(filepath) {
|
|
27
44
|
try {
|
|
28
|
-
//
|
|
45
|
+
// Non-JS module, return file content directly
|
|
29
46
|
const extname = path_1.default.extname(filepath);
|
|
30
47
|
if (extname && !extensions[extname]) {
|
|
31
48
|
return fs_1.default.readFileSync(filepath);
|
|
32
49
|
}
|
|
33
|
-
//
|
|
50
|
+
// Load JS module
|
|
34
51
|
const obj = requireMod(filepath);
|
|
35
52
|
if (!obj)
|
|
36
53
|
return obj;
|
|
37
|
-
//
|
|
54
|
+
// ESM interop: extract default export
|
|
38
55
|
if (obj.__esModule)
|
|
39
56
|
return 'default' in obj ? obj.default : obj;
|
|
40
57
|
return obj;
|
|
@@ -45,29 +62,87 @@ function loadFile(filepath) {
|
|
|
45
62
|
throw error;
|
|
46
63
|
}
|
|
47
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Call a function with bound context
|
|
67
|
+
*
|
|
68
|
+
* @param fn - Function to call
|
|
69
|
+
* @param args - Function argument list
|
|
70
|
+
* @param ctx - Function execution context (this binding); if not provided, calls directly
|
|
71
|
+
* @returns Function return value; returns undefined if fn is not a function
|
|
72
|
+
*/
|
|
48
73
|
async function callFn(fn, args, ctx) {
|
|
49
74
|
args = args || [];
|
|
50
75
|
if (!(0, type_check_js_1.isFunction)(fn))
|
|
51
76
|
return undefined;
|
|
52
77
|
return ctx ? fn.call(ctx, ...args) : fn(...args);
|
|
53
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Get the relative path name of a file
|
|
81
|
+
*
|
|
82
|
+
* Converts an absolute path to a relative path based on baseDir, using forward slashes as separators.
|
|
83
|
+
*
|
|
84
|
+
* @param filepath - Absolute file path
|
|
85
|
+
* @param baseDir - Base directory
|
|
86
|
+
* @returns Relative path (forward slash separated)
|
|
87
|
+
*/
|
|
54
88
|
function getResolvedFilename(filepath, baseDir) {
|
|
55
89
|
const reg = /[/\\]/g;
|
|
56
90
|
return filepath.replace(baseDir + path_1.default.sep, '').replace(reg, '/');
|
|
57
91
|
}
|
|
58
92
|
/**
|
|
59
|
-
*
|
|
93
|
+
* Determine if an export is a bytecode class
|
|
94
|
+
*
|
|
95
|
+
* Checks whether the toString() result contains '[class'.
|
|
96
|
+
* Classes from bytenode-compiled .jsc files appear as '[class XXX]' in Node.js.
|
|
97
|
+
*
|
|
98
|
+
* @param exports - Export value to check
|
|
99
|
+
* @returns Whether it is a bytecode class
|
|
60
100
|
*/
|
|
61
101
|
function isBytecodeClass(exports) {
|
|
62
102
|
if (!exports)
|
|
63
103
|
return false;
|
|
64
|
-
// 标识
|
|
65
104
|
return String(exports).indexOf('[class') !== -1;
|
|
66
105
|
}
|
|
67
106
|
/**
|
|
68
|
-
*
|
|
107
|
+
* Get supported file match patterns
|
|
108
|
+
*
|
|
109
|
+
* Used for filtering file types when globby scans directories.
|
|
110
|
+
*
|
|
111
|
+
* @returns File pattern list (.js and .jsc)
|
|
69
112
|
*/
|
|
70
113
|
function filePatterns() {
|
|
71
114
|
return ['**/*.js', '**/*.jsc'];
|
|
72
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* Load a file asynchronously (ESM support)
|
|
118
|
+
*
|
|
119
|
+
* Same functionality as loadFile, but uses dynamic import() to load modules,
|
|
120
|
+
* supporting ESM format files. Non-JS files are read using fs.promises.readFile.
|
|
121
|
+
*
|
|
122
|
+
* @param filepath - Absolute file path
|
|
123
|
+
* @returns File content (Buffer) or module export value
|
|
124
|
+
* @throws Throws an error containing the file path when file loading fails
|
|
125
|
+
*/
|
|
126
|
+
async function loadFileAsync(filepath) {
|
|
127
|
+
try {
|
|
128
|
+
const extname = path_1.default.extname(filepath);
|
|
129
|
+
// Non-JS/ESM files: return content as Buffer
|
|
130
|
+
if (extname && !extensions[extname] && extname !== '.mjs') {
|
|
131
|
+
return fs_1.default.promises.readFile(filepath);
|
|
132
|
+
}
|
|
133
|
+
// Dynamic import, supporting both ESM and CJS
|
|
134
|
+
const obj = await import(filepath);
|
|
135
|
+
if (!obj)
|
|
136
|
+
return obj;
|
|
137
|
+
// ESM interop: extract default export
|
|
138
|
+
if (obj.__esModule)
|
|
139
|
+
return 'default' in obj ? obj.default : obj;
|
|
140
|
+
return obj;
|
|
141
|
+
}
|
|
142
|
+
catch (err) {
|
|
143
|
+
const error = err;
|
|
144
|
+
error.message = `[ee-core] load file async: ${filepath}, error: ${error.message}`;
|
|
145
|
+
throw error;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
73
148
|
//# sourceMappingURL=index.js.map
|