ee-core 5.0.0-beta.2 → 5.0.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/app/application.d.ts +36 -1
- package/dist/cjs/app/application.d.ts.map +1 -1
- package/dist/cjs/app/application.js +49 -2
- package/dist/cjs/app/application.js.map +1 -1
- package/dist/cjs/app/boot.d.ts +56 -1
- package/dist/cjs/app/boot.d.ts.map +1 -1
- package/dist/cjs/app/boot.js +74 -11
- package/dist/cjs/app/boot.js.map +1 -1
- package/dist/cjs/app/dir.d.ts +10 -0
- package/dist/cjs/app/dir.d.ts.map +1 -1
- package/dist/cjs/app/dir.js +71 -10
- package/dist/cjs/app/dir.js.map +1 -1
- package/dist/cjs/app/events.d.ts +58 -2
- package/dist/cjs/app/events.d.ts.map +1 -1
- package/dist/cjs/app/events.js +92 -12
- package/dist/cjs/app/events.js.map +1 -1
- package/dist/cjs/config/config_loader.d.ts +44 -0
- package/dist/cjs/config/config_loader.d.ts.map +1 -1
- package/dist/cjs/config/config_loader.js +82 -1
- package/dist/cjs/config/config_loader.js.map +1 -1
- package/dist/cjs/config/default_config.d.ts +5 -0
- package/dist/cjs/config/default_config.d.ts.map +1 -1
- package/dist/cjs/config/default_config.js +98 -11
- package/dist/cjs/config/default_config.js.map +1 -1
- package/dist/cjs/config/index.d.ts +31 -1
- package/dist/cjs/config/index.d.ts.map +1 -1
- package/dist/cjs/config/index.js +52 -0
- package/dist/cjs/config/index.js.map +1 -1
- package/dist/cjs/const/channel.d.ts +17 -0
- package/dist/cjs/const/channel.d.ts.map +1 -1
- package/dist/cjs/const/channel.js +17 -0
- package/dist/cjs/const/channel.js.map +1 -1
- package/dist/cjs/controller/controller_loader.d.ts +20 -1
- package/dist/cjs/controller/controller_loader.d.ts.map +1 -1
- package/dist/cjs/controller/controller_loader.js +89 -9
- package/dist/cjs/controller/controller_loader.js.map +1 -1
- package/dist/cjs/controller/index.d.ts +32 -0
- package/dist/cjs/controller/index.d.ts.map +1 -1
- package/dist/cjs/controller/index.js +66 -0
- package/dist/cjs/controller/index.js.map +1 -1
- package/dist/cjs/core/loader/file_loader.d.ts +78 -27
- package/dist/cjs/core/loader/file_loader.d.ts.map +1 -1
- package/dist/cjs/core/loader/file_loader.js +194 -68
- package/dist/cjs/core/loader/file_loader.js.map +1 -1
- package/dist/cjs/core/utils/index.d.ts +57 -2
- package/dist/cjs/core/utils/index.d.ts.map +1 -1
- package/dist/cjs/core/utils/index.js +120 -12
- package/dist/cjs/core/utils/index.js.map +1 -1
- package/dist/cjs/core/utils/timing.d.ts +47 -0
- package/dist/cjs/core/utils/timing.d.ts.map +1 -1
- package/dist/cjs/core/utils/timing.js +42 -2
- package/dist/cjs/core/utils/timing.js.map +1 -1
- package/dist/cjs/cross/cross.d.ts +81 -2
- package/dist/cjs/cross/cross.d.ts.map +1 -1
- package/dist/cjs/cross/cross.js +86 -16
- package/dist/cjs/cross/cross.js.map +1 -1
- package/dist/cjs/cross/crossProcess.d.ts +85 -14
- package/dist/cjs/cross/crossProcess.d.ts.map +1 -1
- package/dist/cjs/cross/crossProcess.js +85 -13
- package/dist/cjs/cross/crossProcess.js.map +1 -1
- package/dist/cjs/electron/app/index.d.ts +17 -1
- package/dist/cjs/electron/app/index.d.ts.map +1 -1
- package/dist/cjs/electron/app/index.js +27 -3
- package/dist/cjs/electron/app/index.js.map +1 -1
- package/dist/cjs/electron/index.d.ts +6 -0
- package/dist/cjs/electron/index.d.ts.map +1 -1
- package/dist/cjs/electron/index.js +16 -1
- package/dist/cjs/electron/index.js.map +1 -1
- package/dist/cjs/electron/window/index.d.ts +37 -0
- package/dist/cjs/electron/window/index.d.ts.map +1 -1
- package/dist/cjs/electron/window/index.js +144 -88
- package/dist/cjs/electron/window/index.js.map +1 -1
- package/dist/cjs/exception/index.d.ts +12 -0
- package/dist/cjs/exception/index.d.ts.map +1 -1
- package/dist/cjs/exception/index.js +67 -9
- package/dist/cjs/exception/index.js.map +1 -1
- package/dist/cjs/html/index.d.ts +19 -0
- package/dist/cjs/html/index.d.ts.map +1 -1
- package/dist/cjs/html/index.js +42 -0
- package/dist/cjs/html/index.js.map +1 -1
- package/dist/cjs/index.d.ts +35 -7
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +127 -80
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/jobs/child/app.js +86 -25
- package/dist/cjs/jobs/child/app.js.map +1 -1
- package/dist/cjs/jobs/child/index.d.ts +5 -5
- package/dist/cjs/jobs/child/index.js +5 -5
- package/dist/cjs/jobs/child/jobProcess.d.ts +68 -0
- package/dist/cjs/jobs/child/jobProcess.d.ts.map +1 -1
- package/dist/cjs/jobs/child/jobProcess.js +86 -11
- package/dist/cjs/jobs/child/jobProcess.js.map +1 -1
- package/dist/cjs/jobs/child-pool/index.d.ts +96 -0
- package/dist/cjs/jobs/child-pool/index.d.ts.map +1 -1
- package/dist/cjs/jobs/child-pool/index.js +91 -4
- package/dist/cjs/jobs/child-pool/index.js.map +1 -1
- package/dist/cjs/jobs/index.d.ts +10 -0
- package/dist/cjs/jobs/index.d.ts.map +1 -1
- package/dist/cjs/jobs/index.js +10 -0
- package/dist/cjs/jobs/index.js.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts +2 -0
- package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/index.js +6 -0
- package/dist/cjs/jobs/load-balancer/algorithm/index.js.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.js +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/polling.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/polling.js +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/random.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/random.js +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/specify.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/specify.js +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weights.js +4 -8
- package/dist/cjs/jobs/load-balancer/algorithm/weights.js.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js +6 -11
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.js +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.js +1 -1
- package/dist/cjs/jobs/load-balancer/consts.d.ts +22 -0
- package/dist/cjs/jobs/load-balancer/consts.d.ts.map +1 -1
- package/dist/cjs/jobs/load-balancer/consts.js +22 -0
- package/dist/cjs/jobs/load-balancer/consts.js.map +1 -1
- package/dist/cjs/jobs/load-balancer/index.d.ts +18 -18
- package/dist/cjs/jobs/load-balancer/index.js +18 -18
- package/dist/cjs/jobs/load-balancer/scheduler.d.ts +3 -3
- package/dist/cjs/jobs/load-balancer/scheduler.js +3 -3
- package/dist/cjs/jobs/load-balancer/types.d.ts +21 -0
- package/dist/cjs/jobs/load-balancer/types.d.ts.map +1 -1
- package/dist/cjs/jobs/load-balancer/types.js +4 -0
- package/dist/cjs/jobs/load-balancer/types.js.map +1 -1
- package/dist/cjs/jobs/registry.d.ts +24 -0
- package/dist/cjs/jobs/registry.d.ts.map +1 -0
- package/dist/cjs/jobs/registry.js +52 -0
- package/dist/cjs/jobs/registry.js.map +1 -0
- package/dist/cjs/loader/index.d.ts +52 -0
- package/dist/cjs/loader/index.d.ts.map +1 -1
- package/dist/cjs/loader/index.js +79 -10
- package/dist/cjs/loader/index.js.map +1 -1
- package/dist/cjs/log/index.d.ts +41 -0
- package/dist/cjs/log/index.d.ts.map +1 -1
- package/dist/cjs/log/index.js +59 -20
- package/dist/cjs/log/index.js.map +1 -1
- package/dist/cjs/log/logger.d.ts +26 -0
- package/dist/cjs/log/logger.d.ts.map +1 -1
- package/dist/cjs/log/logger.js +122 -2
- package/dist/cjs/log/logger.js.map +1 -1
- package/dist/cjs/message/childMessage.d.ts +50 -0
- package/dist/cjs/message/childMessage.d.ts.map +1 -1
- package/dist/cjs/message/childMessage.js +83 -2
- package/dist/cjs/message/childMessage.js.map +1 -1
- package/dist/cjs/ps/index.d.ts +112 -0
- package/dist/cjs/ps/index.d.ts.map +1 -1
- package/dist/cjs/ps/index.js +175 -41
- package/dist/cjs/ps/index.js.map +1 -1
- package/dist/cjs/socket/httpServer.d.ts +58 -5
- package/dist/cjs/socket/httpServer.d.ts.map +1 -1
- package/dist/cjs/socket/httpServer.js +94 -28
- package/dist/cjs/socket/httpServer.js.map +1 -1
- package/dist/cjs/socket/index.d.ts +45 -3
- package/dist/cjs/socket/index.d.ts.map +1 -1
- package/dist/cjs/socket/index.js +50 -14
- package/dist/cjs/socket/index.js.map +1 -1
- package/dist/cjs/socket/ipcServer.d.ts +31 -1
- package/dist/cjs/socket/ipcServer.d.ts.map +1 -1
- package/dist/cjs/socket/ipcServer.js +60 -43
- package/dist/cjs/socket/ipcServer.js.map +1 -1
- package/dist/cjs/socket/socketServer.d.ts +32 -1
- package/dist/cjs/socket/socketServer.d.ts.map +1 -1
- package/dist/cjs/socket/socketServer.js +53 -14
- package/dist/cjs/socket/socketServer.js.map +1 -1
- package/dist/cjs/socket/utils.d.ts +13 -0
- package/dist/cjs/socket/utils.d.ts.map +1 -0
- package/dist/cjs/socket/utils.js +41 -0
- package/dist/cjs/socket/utils.js.map +1 -0
- package/dist/cjs/storage/sqliteStorage.d.ts +93 -4
- package/dist/cjs/storage/sqliteStorage.d.ts.map +1 -1
- package/dist/cjs/storage/sqliteStorage.js +121 -9
- package/dist/cjs/storage/sqliteStorage.js.map +1 -1
- package/dist/cjs/types/index.d.ts +373 -5
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/cjs/utils/extend.d.ts +44 -1
- package/dist/cjs/utils/extend.d.ts.map +1 -1
- package/dist/cjs/utils/extend.js +67 -19
- package/dist/cjs/utils/extend.js.map +1 -1
- package/dist/cjs/utils/helper.d.ts +154 -1
- package/dist/cjs/utils/helper.d.ts.map +1 -1
- package/dist/cjs/utils/helper.js +205 -28
- package/dist/cjs/utils/helper.js.map +1 -1
- package/dist/cjs/utils/index.d.ts +93 -0
- package/dist/cjs/utils/index.d.ts.map +1 -1
- package/dist/cjs/utils/index.js +136 -12
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/ip.d.ts +29 -0
- package/dist/cjs/utils/ip.d.ts.map +1 -1
- package/dist/cjs/utils/ip.js +95 -4
- package/dist/cjs/utils/ip.js.map +1 -1
- package/dist/cjs/utils/is.d.ts +123 -0
- package/dist/cjs/utils/is.d.ts.map +1 -1
- package/dist/cjs/utils/is.js +126 -14
- package/dist/cjs/utils/is.js.map +1 -1
- package/dist/cjs/utils/json.d.ts +54 -0
- package/dist/cjs/utils/json.d.ts.map +1 -1
- package/dist/cjs/utils/json.js +62 -0
- package/dist/cjs/utils/json.js.map +1 -1
- package/dist/cjs/utils/pargv.d.ts +51 -0
- package/dist/cjs/utils/pargv.d.ts.map +1 -1
- package/dist/cjs/utils/pargv.js +141 -3
- package/dist/cjs/utils/pargv.js.map +1 -1
- package/dist/cjs/utils/port/index.d.ts +42 -0
- package/dist/cjs/utils/port/index.d.ts.map +1 -1
- package/dist/cjs/utils/port/index.js +130 -7
- package/dist/cjs/utils/port/index.js.map +1 -1
- package/dist/cjs/utils/type_check.d.ts +79 -0
- package/dist/cjs/utils/type_check.d.ts.map +1 -1
- package/dist/cjs/utils/type_check.js +87 -1
- package/dist/cjs/utils/type_check.js.map +1 -1
- package/dist/cjs/utils/wrap.d.ts +26 -0
- package/dist/cjs/utils/wrap.d.ts.map +1 -1
- package/dist/cjs/utils/wrap.js +47 -10
- package/dist/cjs/utils/wrap.js.map +1 -1
- package/dist/esm/app/application.d.ts +36 -1
- package/dist/esm/app/application.d.ts.map +1 -1
- package/dist/esm/app/application.js +49 -2
- package/dist/esm/app/application.js.map +1 -1
- package/dist/esm/app/boot.d.ts +56 -1
- package/dist/esm/app/boot.d.ts.map +1 -1
- package/dist/esm/app/boot.js +74 -11
- package/dist/esm/app/boot.js.map +1 -1
- package/dist/esm/app/dir.d.ts +10 -0
- package/dist/esm/app/dir.d.ts.map +1 -1
- package/dist/esm/app/dir.js +71 -10
- package/dist/esm/app/dir.js.map +1 -1
- package/dist/esm/app/events.d.ts +58 -2
- package/dist/esm/app/events.d.ts.map +1 -1
- package/dist/esm/app/events.js +92 -12
- package/dist/esm/app/events.js.map +1 -1
- package/dist/esm/config/config_loader.d.ts +44 -0
- package/dist/esm/config/config_loader.d.ts.map +1 -1
- package/dist/esm/config/config_loader.js +82 -1
- package/dist/esm/config/config_loader.js.map +1 -1
- package/dist/esm/config/default_config.d.ts +5 -0
- package/dist/esm/config/default_config.d.ts.map +1 -1
- package/dist/esm/config/default_config.js +98 -11
- package/dist/esm/config/default_config.js.map +1 -1
- package/dist/esm/config/index.d.ts +31 -1
- package/dist/esm/config/index.d.ts.map +1 -1
- package/dist/esm/config/index.js +52 -0
- package/dist/esm/config/index.js.map +1 -1
- package/dist/esm/const/channel.d.ts +17 -0
- package/dist/esm/const/channel.d.ts.map +1 -1
- package/dist/esm/const/channel.js +17 -0
- package/dist/esm/const/channel.js.map +1 -1
- package/dist/esm/controller/controller_loader.d.ts +20 -1
- package/dist/esm/controller/controller_loader.d.ts.map +1 -1
- package/dist/esm/controller/controller_loader.js +89 -9
- package/dist/esm/controller/controller_loader.js.map +1 -1
- package/dist/esm/controller/index.d.ts +32 -0
- package/dist/esm/controller/index.d.ts.map +1 -1
- package/dist/esm/controller/index.js +66 -0
- package/dist/esm/controller/index.js.map +1 -1
- package/dist/esm/core/loader/file_loader.d.ts +78 -27
- package/dist/esm/core/loader/file_loader.d.ts.map +1 -1
- package/dist/esm/core/loader/file_loader.js +194 -68
- package/dist/esm/core/loader/file_loader.js.map +1 -1
- package/dist/esm/core/utils/index.d.ts +57 -2
- package/dist/esm/core/utils/index.d.ts.map +1 -1
- package/dist/esm/core/utils/index.js +87 -12
- package/dist/esm/core/utils/index.js.map +1 -1
- package/dist/esm/core/utils/timing.d.ts +47 -0
- package/dist/esm/core/utils/timing.d.ts.map +1 -1
- package/dist/esm/core/utils/timing.js +42 -2
- package/dist/esm/core/utils/timing.js.map +1 -1
- package/dist/esm/cross/cross.d.ts +81 -2
- package/dist/esm/cross/cross.d.ts.map +1 -1
- package/dist/esm/cross/cross.js +86 -16
- package/dist/esm/cross/cross.js.map +1 -1
- package/dist/esm/cross/crossProcess.d.ts +85 -14
- package/dist/esm/cross/crossProcess.d.ts.map +1 -1
- package/dist/esm/cross/crossProcess.js +85 -13
- package/dist/esm/cross/crossProcess.js.map +1 -1
- package/dist/esm/electron/app/index.d.ts +17 -1
- package/dist/esm/electron/app/index.d.ts.map +1 -1
- package/dist/esm/electron/app/index.js +27 -3
- package/dist/esm/electron/app/index.js.map +1 -1
- package/dist/esm/electron/index.d.ts +6 -0
- package/dist/esm/electron/index.d.ts.map +1 -1
- package/dist/esm/electron/index.js +16 -1
- package/dist/esm/electron/index.js.map +1 -1
- package/dist/esm/electron/window/index.d.ts +37 -0
- package/dist/esm/electron/window/index.d.ts.map +1 -1
- package/dist/esm/electron/window/index.js +144 -88
- package/dist/esm/electron/window/index.js.map +1 -1
- package/dist/esm/exception/index.d.ts +12 -0
- package/dist/esm/exception/index.d.ts.map +1 -1
- package/dist/esm/exception/index.js +67 -9
- package/dist/esm/exception/index.js.map +1 -1
- package/dist/esm/html/index.d.ts +19 -0
- package/dist/esm/html/index.d.ts.map +1 -1
- package/dist/esm/html/index.js +42 -0
- package/dist/esm/html/index.js.map +1 -1
- package/dist/esm/index.d.ts +35 -7
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +127 -80
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/jobs/child/app.js +86 -25
- package/dist/esm/jobs/child/app.js.map +1 -1
- package/dist/esm/jobs/child/index.d.ts +5 -5
- package/dist/esm/jobs/child/index.js +5 -5
- package/dist/esm/jobs/child/jobProcess.d.ts +68 -0
- package/dist/esm/jobs/child/jobProcess.d.ts.map +1 -1
- package/dist/esm/jobs/child/jobProcess.js +86 -11
- package/dist/esm/jobs/child/jobProcess.js.map +1 -1
- package/dist/esm/jobs/child-pool/index.d.ts +96 -0
- package/dist/esm/jobs/child-pool/index.d.ts.map +1 -1
- package/dist/esm/jobs/child-pool/index.js +91 -4
- package/dist/esm/jobs/child-pool/index.js.map +1 -1
- package/dist/esm/jobs/index.d.ts +10 -0
- package/dist/esm/jobs/index.d.ts.map +1 -1
- package/dist/esm/jobs/index.js +10 -0
- package/dist/esm/jobs/index.js.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/index.d.ts +2 -0
- package/dist/esm/jobs/load-balancer/algorithm/index.d.ts.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/index.js +6 -0
- package/dist/esm/jobs/load-balancer/algorithm/index.js.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.js +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/polling.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/polling.js +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/random.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/random.js +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/specify.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/specify.js +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weights.js +4 -8
- package/dist/esm/jobs/load-balancer/algorithm/weights.js.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js +6 -11
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.js +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.js +1 -1
- package/dist/esm/jobs/load-balancer/consts.d.ts +22 -0
- package/dist/esm/jobs/load-balancer/consts.d.ts.map +1 -1
- package/dist/esm/jobs/load-balancer/consts.js +22 -0
- package/dist/esm/jobs/load-balancer/consts.js.map +1 -1
- package/dist/esm/jobs/load-balancer/index.d.ts +18 -18
- package/dist/esm/jobs/load-balancer/index.js +18 -18
- package/dist/esm/jobs/load-balancer/scheduler.d.ts +3 -3
- package/dist/esm/jobs/load-balancer/scheduler.js +3 -3
- package/dist/esm/jobs/load-balancer/types.d.ts +21 -0
- package/dist/esm/jobs/load-balancer/types.d.ts.map +1 -1
- package/dist/esm/jobs/load-balancer/types.js +4 -0
- package/dist/esm/jobs/load-balancer/types.js.map +1 -1
- package/dist/esm/jobs/registry.d.ts +24 -0
- package/dist/esm/jobs/registry.d.ts.map +1 -0
- package/dist/esm/jobs/registry.js +52 -0
- package/dist/esm/jobs/registry.js.map +1 -0
- package/dist/esm/loader/index.d.ts +52 -0
- package/dist/esm/loader/index.d.ts.map +1 -1
- package/dist/esm/loader/index.js +79 -10
- package/dist/esm/loader/index.js.map +1 -1
- package/dist/esm/log/index.d.ts +41 -0
- package/dist/esm/log/index.d.ts.map +1 -1
- package/dist/esm/log/index.js +59 -20
- package/dist/esm/log/index.js.map +1 -1
- package/dist/esm/log/logger.d.ts +26 -0
- package/dist/esm/log/logger.d.ts.map +1 -1
- package/dist/esm/log/logger.js +122 -2
- package/dist/esm/log/logger.js.map +1 -1
- package/dist/esm/message/childMessage.d.ts +50 -0
- package/dist/esm/message/childMessage.d.ts.map +1 -1
- package/dist/esm/message/childMessage.js +83 -2
- package/dist/esm/message/childMessage.js.map +1 -1
- package/dist/esm/ps/index.d.ts +112 -0
- package/dist/esm/ps/index.d.ts.map +1 -1
- package/dist/esm/ps/index.js +175 -41
- package/dist/esm/ps/index.js.map +1 -1
- package/dist/esm/socket/httpServer.d.ts +58 -5
- package/dist/esm/socket/httpServer.d.ts.map +1 -1
- package/dist/esm/socket/httpServer.js +94 -28
- package/dist/esm/socket/httpServer.js.map +1 -1
- package/dist/esm/socket/index.d.ts +45 -3
- package/dist/esm/socket/index.d.ts.map +1 -1
- package/dist/esm/socket/index.js +50 -14
- package/dist/esm/socket/index.js.map +1 -1
- package/dist/esm/socket/ipcServer.d.ts +31 -1
- package/dist/esm/socket/ipcServer.d.ts.map +1 -1
- package/dist/esm/socket/ipcServer.js +60 -43
- package/dist/esm/socket/ipcServer.js.map +1 -1
- package/dist/esm/socket/socketServer.d.ts +32 -1
- package/dist/esm/socket/socketServer.d.ts.map +1 -1
- package/dist/esm/socket/socketServer.js +53 -14
- package/dist/esm/socket/socketServer.js.map +1 -1
- package/dist/esm/socket/utils.d.ts +13 -0
- package/dist/esm/socket/utils.d.ts.map +1 -0
- package/dist/esm/socket/utils.js +41 -0
- package/dist/esm/socket/utils.js.map +1 -0
- package/dist/esm/storage/sqliteStorage.d.ts +93 -4
- package/dist/esm/storage/sqliteStorage.d.ts.map +1 -1
- package/dist/esm/storage/sqliteStorage.js +121 -9
- package/dist/esm/storage/sqliteStorage.js.map +1 -1
- package/dist/esm/types/index.d.ts +373 -5
- package/dist/esm/types/index.d.ts.map +1 -1
- package/dist/esm/utils/extend.d.ts +44 -1
- package/dist/esm/utils/extend.d.ts.map +1 -1
- package/dist/esm/utils/extend.js +67 -19
- package/dist/esm/utils/extend.js.map +1 -1
- package/dist/esm/utils/helper.d.ts +154 -1
- package/dist/esm/utils/helper.d.ts.map +1 -1
- package/dist/esm/utils/helper.js +205 -28
- package/dist/esm/utils/helper.js.map +1 -1
- package/dist/esm/utils/index.d.ts +93 -0
- package/dist/esm/utils/index.d.ts.map +1 -1
- package/dist/esm/utils/index.js +136 -12
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/ip.d.ts +29 -0
- package/dist/esm/utils/ip.d.ts.map +1 -1
- package/dist/esm/utils/ip.js +95 -4
- package/dist/esm/utils/ip.js.map +1 -1
- package/dist/esm/utils/is.d.ts +123 -0
- package/dist/esm/utils/is.d.ts.map +1 -1
- package/dist/esm/utils/is.js +126 -14
- package/dist/esm/utils/is.js.map +1 -1
- package/dist/esm/utils/json.d.ts +54 -0
- package/dist/esm/utils/json.d.ts.map +1 -1
- package/dist/esm/utils/json.js +62 -0
- package/dist/esm/utils/json.js.map +1 -1
- package/dist/esm/utils/pargv.d.ts +51 -0
- package/dist/esm/utils/pargv.d.ts.map +1 -1
- package/dist/esm/utils/pargv.js +141 -3
- package/dist/esm/utils/pargv.js.map +1 -1
- package/dist/esm/utils/port/index.d.ts +42 -0
- package/dist/esm/utils/port/index.d.ts.map +1 -1
- package/dist/esm/utils/port/index.js +130 -7
- package/dist/esm/utils/port/index.js.map +1 -1
- package/dist/esm/utils/type_check.d.ts +79 -0
- package/dist/esm/utils/type_check.d.ts.map +1 -1
- package/dist/esm/utils/type_check.js +87 -1
- package/dist/esm/utils/type_check.js.map +1 -1
- package/dist/esm/utils/wrap.d.ts +26 -0
- package/dist/esm/utils/wrap.d.ts.map +1 -1
- package/dist/esm/utils/wrap.js +47 -10
- package/dist/esm/utils/wrap.js.map +1 -1
- package/package.json +13 -13
package/dist/cjs/loader/index.js
CHANGED
|
@@ -8,12 +8,34 @@ exports.requireFile = requireFile;
|
|
|
8
8
|
exports.execFile = execFile;
|
|
9
9
|
exports.resolveModule = resolveModule;
|
|
10
10
|
exports.getFullpath = getFullpath;
|
|
11
|
+
/**
|
|
12
|
+
* @module loader
|
|
13
|
+
* @description File loading module. Provides multiple file loading and execution methods,
|
|
14
|
+
* serving as the foundational dependency for controller loading, config loading, and task execution.
|
|
15
|
+
*
|
|
16
|
+
* Core functions:
|
|
17
|
+
* - loadFile: Load a file, automatically execute if the export is a function
|
|
18
|
+
* - requireFile: Load a file without auto-execution
|
|
19
|
+
* - execFile: Load a file, instantiate if class, execute if function
|
|
20
|
+
* - resolveModule: Resolve the absolute path of a module
|
|
21
|
+
* - getFullpath: Get the absolute path of a file under the electron directory
|
|
22
|
+
*/
|
|
11
23
|
const type_check_js_1 = require("../utils/type_check.js");
|
|
12
24
|
const fs_1 = __importDefault(require("fs"));
|
|
13
25
|
const path_1 = __importDefault(require("path"));
|
|
14
26
|
const index_js_1 = require("../core/utils/index.js");
|
|
15
27
|
const index_js_2 = require("../ps/index.js");
|
|
16
|
-
|
|
28
|
+
/**
|
|
29
|
+
* Load a file and automatically execute function exports
|
|
30
|
+
*
|
|
31
|
+
* If the file exports a plain function (not a class or bytecode class), automatically calls that function
|
|
32
|
+
* and returns the execution result. Suitable for config files that need to dynamically return content based on appInfo.
|
|
33
|
+
*
|
|
34
|
+
* @param filepath - File path (relative paths are based on electronDir)
|
|
35
|
+
* @param inject - Arguments passed to the function export (spread into the call)
|
|
36
|
+
* @returns File export content or function execution result
|
|
37
|
+
* @throws Throws an error if the file does not exist
|
|
38
|
+
*/
|
|
17
39
|
function loadFile(filepath, ...inject) {
|
|
18
40
|
let fullpath = filepath;
|
|
19
41
|
const isAbsolute = path_1.default.isAbsolute(fullpath);
|
|
@@ -25,39 +47,78 @@ function loadFile(filepath, ...inject) {
|
|
|
25
47
|
throw new Error(`[ee-core] [loader/index] loadFile ${filepath} does not exist`);
|
|
26
48
|
}
|
|
27
49
|
let ret = (0, index_js_1.loadFile)(fullpath);
|
|
50
|
+
// Plain function export: auto-execute, inject arguments (e.g. appInfo)
|
|
28
51
|
if ((0, type_check_js_1.isFunction)(ret) && !(0, type_check_js_1.isClass)(ret) && !(0, index_js_1.isBytecodeClass)(ret)) {
|
|
29
52
|
ret = ret(...inject);
|
|
30
53
|
}
|
|
31
54
|
return ret;
|
|
32
55
|
}
|
|
33
|
-
|
|
56
|
+
/**
|
|
57
|
+
* Load a file (without auto-execution)
|
|
58
|
+
*
|
|
59
|
+
* Returns the module export content directly, without any processing.
|
|
60
|
+
* Suitable for scenarios where the original module reference is needed (e.g. child process task loading).
|
|
61
|
+
*
|
|
62
|
+
* @param filepath - Absolute file path
|
|
63
|
+
* @returns Module export content
|
|
64
|
+
*/
|
|
34
65
|
function requireFile(filepath) {
|
|
35
66
|
return (0, index_js_1.loadFile)(filepath);
|
|
36
67
|
}
|
|
37
|
-
|
|
68
|
+
/**
|
|
69
|
+
* Load and run a file
|
|
70
|
+
*
|
|
71
|
+
* Determines execution method based on export type:
|
|
72
|
+
* - Class/bytecode class -> Instantiate with new, inject as constructor arguments
|
|
73
|
+
* - Plain function -> Call directly, inject as function arguments
|
|
74
|
+
* - Other -> Return as-is
|
|
75
|
+
*
|
|
76
|
+
* @param filepath - Absolute file path
|
|
77
|
+
* @param inject - Arguments passed to the constructor or function (spread into the call)
|
|
78
|
+
* @returns Instantiated class object or function execution result
|
|
79
|
+
*/
|
|
38
80
|
function execFile(filepath, ...inject) {
|
|
39
81
|
let ret = (0, index_js_1.loadFile)(filepath);
|
|
40
82
|
if ((0, type_check_js_1.isClass)(ret) || (0, index_js_1.isBytecodeClass)(ret)) {
|
|
41
|
-
ret = new ret(inject);
|
|
83
|
+
ret = new ret(...inject);
|
|
42
84
|
}
|
|
43
85
|
else if ((0, type_check_js_1.isFunction)(ret)) {
|
|
44
|
-
ret = ret(inject);
|
|
86
|
+
ret = ret(...inject);
|
|
45
87
|
}
|
|
46
88
|
return ret;
|
|
47
89
|
}
|
|
48
|
-
|
|
90
|
+
/**
|
|
91
|
+
* Resolve the absolute path of a module
|
|
92
|
+
*
|
|
93
|
+
* First tries require.resolve(), then falls back to suffix-based rules:
|
|
94
|
+
* - .default / .prod -> Try .jsc (bytecode version)
|
|
95
|
+
* - .js -> Try .jsc
|
|
96
|
+
* - No suffix -> Try .js and .jsc
|
|
97
|
+
*
|
|
98
|
+
* @param filepath - Module path
|
|
99
|
+
* @returns Absolute path of the module, or undefined if it cannot be resolved
|
|
100
|
+
*/
|
|
49
101
|
function resolveModule(filepath) {
|
|
50
102
|
let fullpath;
|
|
51
103
|
try {
|
|
52
104
|
fullpath = require.resolve(filepath);
|
|
53
105
|
}
|
|
54
106
|
catch {
|
|
55
|
-
//
|
|
56
|
-
if (filepath && (filepath.endsWith('.
|
|
107
|
+
// Special suffix handling: config filenames like config.default, config.prod
|
|
108
|
+
if (filepath && (filepath.endsWith('.default') || filepath.endsWith('.prod'))) {
|
|
57
109
|
fullpath = filepath + '.jsc';
|
|
58
110
|
}
|
|
59
111
|
else if (filepath && filepath.endsWith('.js')) {
|
|
60
|
-
fullpath = filepath + 'c';
|
|
112
|
+
fullpath = filepath + 'c'; // .js → .jsc
|
|
113
|
+
}
|
|
114
|
+
// In packaged mode, require.resolve may fail; try checking if the file exists directly
|
|
115
|
+
if (!fullpath || !fs_1.default.existsSync(fullpath)) {
|
|
116
|
+
if (fs_1.default.existsSync(filepath + '.js')) {
|
|
117
|
+
fullpath = filepath + '.js';
|
|
118
|
+
}
|
|
119
|
+
else if (fs_1.default.existsSync(filepath + '.jsc')) {
|
|
120
|
+
fullpath = filepath + '.jsc';
|
|
121
|
+
}
|
|
61
122
|
}
|
|
62
123
|
if (!fs_1.default.existsSync(filepath) && (!fullpath || !fs_1.default.existsSync(fullpath))) {
|
|
63
124
|
console.warn(`[ee-core] [loader] resolveModule unknow filepath: ${JSON.stringify({ filepath, fullpath })}`);
|
|
@@ -66,7 +127,15 @@ function resolveModule(filepath) {
|
|
|
66
127
|
}
|
|
67
128
|
return fullpath;
|
|
68
129
|
}
|
|
69
|
-
|
|
130
|
+
/**
|
|
131
|
+
* Get the absolute path of a file under the electron directory
|
|
132
|
+
*
|
|
133
|
+
* Relative paths are resolved based on electronDir, and resolveModule is also attempted to find the actual file.
|
|
134
|
+
*
|
|
135
|
+
* @param filepath - File path (relative or absolute)
|
|
136
|
+
* @returns Absolute path of the file
|
|
137
|
+
* @throws Throws an error if the file does not exist
|
|
138
|
+
*/
|
|
70
139
|
function getFullpath(filepath) {
|
|
71
140
|
let fullpath;
|
|
72
141
|
const isAbsolute = path_1.default.isAbsolute(filepath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/loader/index.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/loader/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/log/index.d.ts
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module log
|
|
3
|
+
* @description Log module entry point. Provides log creation, loading, and retrieval functionality.
|
|
4
|
+
*
|
|
5
|
+
* Three log instances:
|
|
6
|
+
* - logger: Application log, records business code output
|
|
7
|
+
* - coreLogger: Framework core log, records framework internal runtime information
|
|
8
|
+
* - errorLogger: Error log, only records error/fatal levels
|
|
9
|
+
*
|
|
10
|
+
* Wraps log methods with Proxy, compatible with multiple calling styles:
|
|
11
|
+
* - pino standard: logger.info({ key: 'value' }, 'message')
|
|
12
|
+
* - pino printf: logger.info('count: %d', 42)
|
|
13
|
+
* - Concatenation mode: logger.info('msg:', value) → auto-concatenates to 'msg: value'
|
|
14
|
+
*/
|
|
1
15
|
import pino from 'pino';
|
|
2
16
|
import { PinoLoggers } from './logger.js';
|
|
17
|
+
/**
|
|
18
|
+
* EeLogger interface
|
|
19
|
+
*
|
|
20
|
+
* Defines the framework's unified log interface, shielding pino internal implementation details.
|
|
21
|
+
* Supports six levels: trace/debug/info/warn/error/fatal and child() sub-logger.
|
|
22
|
+
*/
|
|
3
23
|
export interface EeLogger {
|
|
4
24
|
trace(...args: unknown[]): void;
|
|
5
25
|
debug(...args: unknown[]): void;
|
|
@@ -9,10 +29,31 @@ export interface EeLogger {
|
|
|
9
29
|
fatal(...args: unknown[]): void;
|
|
10
30
|
child(bindings: pino.Bindings): EeLogger;
|
|
11
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Create log instances
|
|
34
|
+
*
|
|
35
|
+
* @param config - Custom log configuration (optional)
|
|
36
|
+
* @returns PinoLoggers object
|
|
37
|
+
*/
|
|
12
38
|
export declare function createLog(config?: Record<string, unknown>): PinoLoggers;
|
|
39
|
+
/**
|
|
40
|
+
* Load log system
|
|
41
|
+
*
|
|
42
|
+
* Creates log instances using system configuration. Called by boot.ts init() during framework startup flow.
|
|
43
|
+
*/
|
|
13
44
|
export declare function loadLog(): void;
|
|
45
|
+
/**
|
|
46
|
+
* Get log instance collection
|
|
47
|
+
*
|
|
48
|
+
* If logs have not been loaded yet, automatically triggers loading.
|
|
49
|
+
*
|
|
50
|
+
* @returns PinoLoggers object
|
|
51
|
+
*/
|
|
14
52
|
export declare function getLoggers(): PinoLoggers;
|
|
53
|
+
/** Application log instance (Proxy wrapped) */
|
|
15
54
|
export declare const logger: EeLogger;
|
|
55
|
+
/** Framework core log instance (Proxy wrapped) */
|
|
16
56
|
export declare const coreLogger: EeLogger;
|
|
57
|
+
/** Error log instance (Proxy wrapped, error/fatal level only) */
|
|
17
58
|
export declare const errorLogger: EeLogger;
|
|
18
59
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/log/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,WAAW,EAAU,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChC,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChC,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChC,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;CAC1C;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/log/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,WAAW,EAAU,MAAM,aAAa,CAAC;AAElD;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChC,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChC,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChC,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;CAC1C;AAKD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,CAEvE;AAED;;;;GAIG;AACH,wBAAgB,OAAO,IAAI,IAAI,CAE9B;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,IAAI,WAAW,CAGxC;AAgFD,+CAA+C;AAC/C,eAAO,MAAM,MAAM,EAAE,QAA0D,CAAC;AAChF,kDAAkD;AAClD,eAAO,MAAM,UAAU,EAAE,QAA8D,CAAC;AACxF,iEAAiE;AACjE,eAAO,MAAM,WAAW,EAAE,QAA+D,CAAC"}
|
package/dist/cjs/log/index.js
CHANGED
|
@@ -5,38 +5,59 @@ exports.createLog = createLog;
|
|
|
5
5
|
exports.loadLog = loadLog;
|
|
6
6
|
exports.getLoggers = getLoggers;
|
|
7
7
|
const logger_js_1 = require("./logger.js");
|
|
8
|
+
/** Log instance collection (assigned after startup) */
|
|
8
9
|
let loggers = null;
|
|
10
|
+
/**
|
|
11
|
+
* Create log instances
|
|
12
|
+
*
|
|
13
|
+
* @param config - Custom log configuration (optional)
|
|
14
|
+
* @returns PinoLoggers object
|
|
15
|
+
*/
|
|
9
16
|
function createLog(config) {
|
|
10
17
|
return (0, logger_js_1.create)(config ?? {});
|
|
11
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Load log system
|
|
21
|
+
*
|
|
22
|
+
* Creates log instances using system configuration. Called by boot.ts init() during framework startup flow.
|
|
23
|
+
*/
|
|
12
24
|
function loadLog() {
|
|
13
25
|
loggers = (0, logger_js_1.create)();
|
|
14
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Get log instance collection
|
|
29
|
+
*
|
|
30
|
+
* If logs have not been loaded yet, automatically triggers loading.
|
|
31
|
+
*
|
|
32
|
+
* @returns PinoLoggers object
|
|
33
|
+
*/
|
|
15
34
|
function getLoggers() {
|
|
16
35
|
if (!loggers) {
|
|
17
36
|
loadLog();
|
|
18
37
|
}
|
|
19
38
|
return loggers;
|
|
20
39
|
}
|
|
21
|
-
|
|
40
|
+
/**
|
|
41
|
+
* Get pino log instance by property name
|
|
42
|
+
*
|
|
43
|
+
* @param prop - Property name (logger / coreLogger / errorLogger)
|
|
44
|
+
* @returns pino.Logger instance
|
|
45
|
+
*/
|
|
46
|
+
function _getLoggerBy(prop) {
|
|
22
47
|
if (!loggers) {
|
|
23
48
|
loadLog();
|
|
24
49
|
}
|
|
25
|
-
return loggers
|
|
26
|
-
}
|
|
27
|
-
function _getCoreLogger() {
|
|
28
|
-
if (!loggers) {
|
|
29
|
-
loadLog();
|
|
30
|
-
}
|
|
31
|
-
return loggers.coreLogger;
|
|
32
|
-
}
|
|
33
|
-
function _getErrorLogger() {
|
|
34
|
-
if (!loggers) {
|
|
35
|
-
loadLog();
|
|
36
|
-
}
|
|
37
|
-
return loggers.errorLogger;
|
|
50
|
+
return loggers[prop];
|
|
38
51
|
}
|
|
52
|
+
/** Set of supported log method names */
|
|
39
53
|
const LOG_METHODS = new Set(['trace', 'debug', 'info', 'warn', 'error', 'fatal']);
|
|
54
|
+
/**
|
|
55
|
+
* Format argument to string
|
|
56
|
+
*
|
|
57
|
+
* - Error → stack or message
|
|
58
|
+
* - Object → JSON string
|
|
59
|
+
* - Other → String()
|
|
60
|
+
*/
|
|
40
61
|
function formatArg(a) {
|
|
41
62
|
if (a instanceof Error)
|
|
42
63
|
return a.stack || a.message;
|
|
@@ -44,9 +65,23 @@ function formatArg(a) {
|
|
|
44
65
|
return JSON.stringify(a);
|
|
45
66
|
return String(a);
|
|
46
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Create log proxy object
|
|
70
|
+
*
|
|
71
|
+
* Uses Proxy to intercept method calls, compatible with multiple log calling styles:
|
|
72
|
+
* 1. pino standard: logger.info({ key: 'val' }, 'msg') — first argument is merge object
|
|
73
|
+
* 2. pino printf: logger.info('count: %d', 42) — contains %s/%d format placeholders
|
|
74
|
+
* 3. Concatenation mode: logger.info('msg:', value) — multiple arguments auto-concatenated to string
|
|
75
|
+
*
|
|
76
|
+
* child() method returns a new proxy object bound to sub-logger context.
|
|
77
|
+
*
|
|
78
|
+
* @param getter - Deferred function to get pino.Logger instance
|
|
79
|
+
* @returns EeLogger proxy object
|
|
80
|
+
*/
|
|
47
81
|
function createLoggerProxy(getter) {
|
|
48
82
|
return new Proxy({}, {
|
|
49
83
|
get(_target, prop) {
|
|
84
|
+
// child() returns sub-logger proxy
|
|
50
85
|
if (prop === 'child') {
|
|
51
86
|
return (bindings) => createLoggerProxy(() => getter().child(bindings));
|
|
52
87
|
}
|
|
@@ -57,28 +92,32 @@ function createLoggerProxy(getter) {
|
|
|
57
92
|
const method = l[prop];
|
|
58
93
|
if (!method)
|
|
59
94
|
return;
|
|
95
|
+
// Single argument, call directly
|
|
60
96
|
if (args.length <= 1) {
|
|
61
97
|
method.call(l, ...args);
|
|
62
98
|
return;
|
|
63
99
|
}
|
|
64
100
|
const first = args[0];
|
|
65
|
-
// pino
|
|
101
|
+
// pino standard: first argument is a plain object → (mergeObj, msg, ...args)
|
|
66
102
|
if (typeof first === 'object' && first !== null && !(first instanceof Error)) {
|
|
67
103
|
method.call(l, ...args);
|
|
68
104
|
return;
|
|
69
105
|
}
|
|
70
|
-
// pino printf:
|
|
106
|
+
// pino printf: first argument contains %s/%d formatting → keep as-is
|
|
71
107
|
if (typeof first === 'string' && /%[sdijo]/.test(first)) {
|
|
72
108
|
method.call(l, ...args);
|
|
73
109
|
return;
|
|
74
110
|
}
|
|
75
|
-
//
|
|
111
|
+
// Concatenation mode: logger.info('msg:', value) → 'msg: value'
|
|
76
112
|
method.call(l, args.map(formatArg).join(' '));
|
|
77
113
|
};
|
|
78
114
|
},
|
|
79
115
|
});
|
|
80
116
|
}
|
|
81
|
-
|
|
82
|
-
exports.
|
|
83
|
-
|
|
117
|
+
/** Application log instance (Proxy wrapped) */
|
|
118
|
+
exports.logger = createLoggerProxy(() => _getLoggerBy('logger'));
|
|
119
|
+
/** Framework core log instance (Proxy wrapped) */
|
|
120
|
+
exports.coreLogger = createLoggerProxy(() => _getLoggerBy('coreLogger'));
|
|
121
|
+
/** Error log instance (Proxy wrapped, error/fatal level only) */
|
|
122
|
+
exports.errorLogger = createLoggerProxy(() => _getLoggerBy('errorLogger'));
|
|
84
123
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/log/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/log/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/log/logger.d.ts
CHANGED
|
@@ -1,9 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module log/logger
|
|
3
|
+
* @description Logger creator. Creates three log instances based on the pino logging library:
|
|
4
|
+
* - logger: Application log (ee.log), records business code logs
|
|
5
|
+
* - coreLogger: Framework core log (ee-core.log), records framework internal logs
|
|
6
|
+
* - errorLogger: Error log (ee-error.log), only records error level and above
|
|
7
|
+
*
|
|
8
|
+
* Features:
|
|
9
|
+
* - Log file rotation based on pino-roll (daily/hourly)
|
|
10
|
+
* - pino-pretty colorized output in development environment
|
|
11
|
+
* - Supports field redaction (redact), custom log levels, custom serializers
|
|
12
|
+
* - Safe mode: does not throw exceptions when log write fails
|
|
13
|
+
*/
|
|
1
14
|
import pino from 'pino';
|
|
2
15
|
import type { LoggerConfig } from '../types/index.js';
|
|
16
|
+
/** Collection of three pino log instances */
|
|
3
17
|
export interface PinoLoggers {
|
|
18
|
+
/** Application log instance */
|
|
4
19
|
logger: pino.Logger;
|
|
20
|
+
/** Framework core log instance */
|
|
5
21
|
coreLogger: pino.Logger;
|
|
22
|
+
/** Error log instance (error level and above only) */
|
|
6
23
|
errorLogger: pino.Logger;
|
|
7
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Create three log instances (logger / coreLogger / errorLogger)
|
|
27
|
+
*
|
|
28
|
+
* Merges default configuration and user configuration, creating independent pino instances for each log file.
|
|
29
|
+
* errorLogger level is fixed to error; others use the configured level.
|
|
30
|
+
*
|
|
31
|
+
* @param config - Custom log configuration (optional, overrides system configuration)
|
|
32
|
+
* @returns PinoLoggers object containing three log instances
|
|
33
|
+
*/
|
|
8
34
|
export declare function create(config?: Partial<LoggerConfig>): PinoLoggers;
|
|
9
35
|
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/log/logger.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAOxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACpB,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;IACxB,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC;CAC1B;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/log/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,IAAI,MAAM,MAAM,CAAC;AAOxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,6CAA6C;AAC7C,MAAM,WAAW,WAAW;IAC1B,+BAA+B;IAC/B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACpB,kCAAkC;IAClC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;IACxB,sDAAsD;IACtD,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC;CAC1B;AAuKD;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM,GAAG,WAAW,CA2EtE"}
|
package/dist/cjs/log/logger.js
CHANGED
|
@@ -4,6 +4,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.create = create;
|
|
7
|
+
/**
|
|
8
|
+
* @module log/logger
|
|
9
|
+
* @description Logger creator. Creates three log instances based on the pino logging library:
|
|
10
|
+
* - logger: Application log (ee.log), records business code logs
|
|
11
|
+
* - coreLogger: Framework core log (ee-core.log), records framework internal logs
|
|
12
|
+
* - errorLogger: Error log (ee-error.log), only records error level and above
|
|
13
|
+
*
|
|
14
|
+
* Features:
|
|
15
|
+
* - Log file rotation based on pino-roll (daily/hourly)
|
|
16
|
+
* - pino-pretty colorized output in development environment
|
|
17
|
+
* - Supports field redaction (redact), custom log levels, custom serializers
|
|
18
|
+
* - Safe mode: does not throw exceptions when log write fails
|
|
19
|
+
*/
|
|
7
20
|
const pino_1 = __importDefault(require("pino"));
|
|
8
21
|
const path_1 = __importDefault(require("path"));
|
|
9
22
|
const debug_1 = __importDefault(require("debug"));
|
|
@@ -12,15 +25,76 @@ const default_config_js_1 = __importDefault(require("../config/default_config.js
|
|
|
12
25
|
const extend_js_1 = require("../utils/extend.js");
|
|
13
26
|
const index_js_2 = require("../ps/index.js");
|
|
14
27
|
const debugLog = (0, debug_1.default)('ee-core:log:logger');
|
|
28
|
+
/** Log level name mapping (case-insensitive) */
|
|
15
29
|
const LEVEL_MAP = {
|
|
16
30
|
DEBUG: 'debug', INFO: 'info', WARN: 'warn',
|
|
17
31
|
ERROR: 'error', FATAL: 'fatal', TRACE: 'trace',
|
|
18
32
|
};
|
|
33
|
+
/**
|
|
34
|
+
* Normalize log level name
|
|
35
|
+
*
|
|
36
|
+
* Converts uppercase level names to lowercase, case-insensitive input.
|
|
37
|
+
*/
|
|
19
38
|
function normalizeLevel(level) {
|
|
20
39
|
return LEVEL_MAP[level.toUpperCase()] || level.toLowerCase();
|
|
21
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Build a pino timestamp function that emits wall-clock time in a specific IANA timezone.
|
|
43
|
+
*
|
|
44
|
+
* pino's built-in isoTime always emits UTC (e.g. '...Z'); this preserves that exact behavior for
|
|
45
|
+
* 'UTC' (fast path via Date.toISOString()), and for any other IANA zone emits a full ISO string
|
|
46
|
+
* carrying the zone offset (e.g. '2026-06-01T21:42:24.123+08:00'), so file logs read as the
|
|
47
|
+
* configured timezone regardless of the host machine's TZ. The returned function follows pino's
|
|
48
|
+
* contract: it returns a string beginning with `,"time":...` to be concatenated into the JSON line.
|
|
49
|
+
*
|
|
50
|
+
* @param timeZone - IANA timezone name (e.g. 'Asia/Shanghai'), or 'UTC' for standard 'Z' output
|
|
51
|
+
*/
|
|
52
|
+
function buildTimezoneTimeFn(timeZone) {
|
|
53
|
+
// UTC fast path: standard ISO 'Z' suffix, identical to pino's stdTimeFunctions.isoTime
|
|
54
|
+
if (timeZone === 'UTC') {
|
|
55
|
+
return function utcTime() {
|
|
56
|
+
return `,"time":"${new Date().toISOString()}"`;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
const dtf = new Intl.DateTimeFormat('en-US', {
|
|
60
|
+
timeZone,
|
|
61
|
+
hour12: false,
|
|
62
|
+
year: 'numeric', month: '2-digit', day: '2-digit',
|
|
63
|
+
hour: '2-digit', minute: '2-digit', second: '2-digit',
|
|
64
|
+
timeZoneName: 'longOffset',
|
|
65
|
+
});
|
|
66
|
+
return function timezoneTime() {
|
|
67
|
+
const now = new Date();
|
|
68
|
+
const parts = {};
|
|
69
|
+
for (const p of dtf.formatToParts(now))
|
|
70
|
+
parts[p.type] = p.value;
|
|
71
|
+
const ms = String(now.getMilliseconds()).padStart(3, '0');
|
|
72
|
+
// longOffset yields 'GMT+08:00' (or plain 'GMT' for UTC)
|
|
73
|
+
const raw = parts.timeZoneName || 'GMT';
|
|
74
|
+
const offset = raw === 'GMT' ? '+00:00' : raw.replace('GMT', '');
|
|
75
|
+
// Some engines emit '24' for midnight hour; normalize to '00'
|
|
76
|
+
const hour = parts.hour === '24' ? '00' : parts.hour;
|
|
77
|
+
return `,"time":"${parts.year}-${parts.month}-${parts.day}T${hour}:${parts.minute}:${parts.second}.${ms}${offset}"`;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Build pino transport target list
|
|
82
|
+
*
|
|
83
|
+
* At minimum includes one pino-roll file output target;
|
|
84
|
+
* in development environment, additionally adds pino-pretty terminal output target.
|
|
85
|
+
*
|
|
86
|
+
* @param logDir - Log directory
|
|
87
|
+
* @param logFileBase - Log file base name (without extension)
|
|
88
|
+
* @param logFileExt - Log file extension
|
|
89
|
+
* @param level - Log level
|
|
90
|
+
* @param prettyPrint - Whether to enable terminal colorized output
|
|
91
|
+
* @param frequency - Rotation frequency (daily/hourly)
|
|
92
|
+
* @param maxSize - Maximum single file size
|
|
93
|
+
* @param dateFormat - File name date format
|
|
94
|
+
*/
|
|
22
95
|
function buildTransportTargets(logDir, logFileBase, logFileExt, level, prettyPrint, frequency, maxSize, dateFormat) {
|
|
23
96
|
const targets = [];
|
|
97
|
+
// File output target: uses pino-roll for log rotation
|
|
24
98
|
targets.push({
|
|
25
99
|
target: 'pino-roll',
|
|
26
100
|
level,
|
|
@@ -33,24 +107,37 @@ function buildTransportTargets(logDir, logFileBase, logFileExt, level, prettyPri
|
|
|
33
107
|
mkdir: true,
|
|
34
108
|
},
|
|
35
109
|
});
|
|
110
|
+
// Development environment: terminal colorized output
|
|
36
111
|
if (prettyPrint) {
|
|
37
112
|
targets.push({
|
|
38
113
|
target: 'pino-pretty',
|
|
39
114
|
level,
|
|
40
115
|
options: {
|
|
41
116
|
colorize: true,
|
|
42
|
-
translateTime: 'SYS:yyyy-
|
|
117
|
+
translateTime: 'SYS:yyyy-mm-dd HH:MM:ss',
|
|
43
118
|
ignore: 'pid,hostname',
|
|
44
119
|
},
|
|
45
120
|
});
|
|
46
121
|
}
|
|
47
122
|
return targets;
|
|
48
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
* Parse log file name, separating base name and extension
|
|
126
|
+
*
|
|
127
|
+
* @param fileName - Log file name (e.g., 'ee.log')
|
|
128
|
+
* @returns { base: base name, ext: extension }
|
|
129
|
+
*/
|
|
49
130
|
function parseLogFileName(fileName) {
|
|
50
131
|
const ext = path_1.default.extname(fileName);
|
|
51
132
|
const base = path_1.default.basename(fileName, ext);
|
|
52
133
|
return { base, ext: ext || '.log' };
|
|
53
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* Map the rotator value from config to pino-roll supported frequency
|
|
137
|
+
*
|
|
138
|
+
* @param rotator - Rotation strategy config value
|
|
139
|
+
* @returns 'daily' or 'hourly'
|
|
140
|
+
*/
|
|
54
141
|
function mapRotatorToFrequency(rotator) {
|
|
55
142
|
if (rotator === 'day' || rotator === 'daily')
|
|
56
143
|
return 'daily';
|
|
@@ -58,19 +145,44 @@ function mapRotatorToFrequency(rotator) {
|
|
|
58
145
|
return 'hourly';
|
|
59
146
|
return 'daily';
|
|
60
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* Create a single pino log instance
|
|
150
|
+
*
|
|
151
|
+
* @param opts - pino LoggerOptions
|
|
152
|
+
* @param logDir - Log directory
|
|
153
|
+
* @param logFileBase - Log file base name
|
|
154
|
+
* @param logFileExt - Log file extension
|
|
155
|
+
* @param level - Log level
|
|
156
|
+
* @param prettyPrint - Whether to enable colorized output
|
|
157
|
+
* @param frequency - Rotation frequency
|
|
158
|
+
* @param maxSize - Maximum single file size
|
|
159
|
+
* @param dateFormat - File name date format
|
|
160
|
+
* @returns pino Logger instance
|
|
161
|
+
*/
|
|
61
162
|
function createLoggerInstance(opts, logDir, logFileBase, logFileExt, level, prettyPrint, frequency, maxSize, dateFormat) {
|
|
62
163
|
const targets = buildTransportTargets(logDir, logFileBase, logFileExt, level, prettyPrint, frequency, maxSize, dateFormat);
|
|
63
164
|
const transport = pino_1.default.transport({ targets });
|
|
64
165
|
return (0, pino_1.default)(opts, transport);
|
|
65
166
|
}
|
|
167
|
+
/**
|
|
168
|
+
* Create three log instances (logger / coreLogger / errorLogger)
|
|
169
|
+
*
|
|
170
|
+
* Merges default configuration and user configuration, creating independent pino instances for each log file.
|
|
171
|
+
* errorLogger level is fixed to error; others use the configured level.
|
|
172
|
+
*
|
|
173
|
+
* @param config - Custom log configuration (optional, overrides system configuration)
|
|
174
|
+
* @returns PinoLoggers object containing three log instances
|
|
175
|
+
*/
|
|
66
176
|
function create(config = {}) {
|
|
67
177
|
const defaults = (0, default_config_js_1.default)().logger;
|
|
68
178
|
let loggerConf;
|
|
69
179
|
if (Object.keys(config).length === 0) {
|
|
180
|
+
// No custom configuration: use system configuration to override defaults
|
|
70
181
|
const sysConfig = (0, index_js_1.getConfig)();
|
|
71
182
|
loggerConf = (0, extend_js_1.extend)(true, { ...defaults }, sysConfig.logger);
|
|
72
183
|
}
|
|
73
184
|
else {
|
|
185
|
+
// Has custom configuration: use custom configuration to override defaults
|
|
74
186
|
loggerConf = (0, extend_js_1.extend)(true, { ...defaults }, config);
|
|
75
187
|
}
|
|
76
188
|
const logDir = loggerConf.dir || (0, index_js_2.getLogDir)();
|
|
@@ -83,6 +195,10 @@ function create(config = {}) {
|
|
|
83
195
|
const redactCensor = loggerConf.redactCensor || '[Redacted]';
|
|
84
196
|
const name = loggerConf.name || 'ee';
|
|
85
197
|
const timestamp = loggerConf.timestamp ?? true;
|
|
198
|
+
// Default 'UTC' keeps file logs machine-readable (standard ISO 'Z'); set an IANA zone
|
|
199
|
+
// (e.g. 'Asia/Shanghai') to emit wall-clock time with offset instead.
|
|
200
|
+
const timezone = loggerConf.timezone || 'UTC';
|
|
201
|
+
// Unify maxSize to string format supported by pino-roll (e.g., '10m')
|
|
86
202
|
const maxSize = typeof loggerConf.maxSize === 'number'
|
|
87
203
|
? `${loggerConf.maxSize / 1024 / 1024}m`
|
|
88
204
|
: loggerConf.maxSize || '10m';
|
|
@@ -93,10 +209,11 @@ function create(config = {}) {
|
|
|
93
209
|
const depthLimit = loggerConf.depthLimit ?? 5;
|
|
94
210
|
const safe = loggerConf.safe ?? true;
|
|
95
211
|
const enabled = loggerConf.enabled ?? true;
|
|
212
|
+
// Build pino base configuration
|
|
96
213
|
const baseOpts = {
|
|
97
214
|
level,
|
|
98
215
|
name,
|
|
99
|
-
timestamp: timestamp ?
|
|
216
|
+
timestamp: timestamp ? buildTimezoneTimeFn(timezone) : false,
|
|
100
217
|
depthLimit,
|
|
101
218
|
safe,
|
|
102
219
|
enabled,
|
|
@@ -110,11 +227,14 @@ function create(config = {}) {
|
|
|
110
227
|
if (redact.length > 0) {
|
|
111
228
|
baseOpts.redact = { paths: redact, censor: redactCensor };
|
|
112
229
|
}
|
|
230
|
+
// Parse log file names
|
|
113
231
|
const appParsed = parseLogFileName(appLogName);
|
|
114
232
|
const coreParsed = parseLogFileName(coreLogName);
|
|
115
233
|
const errorParsed = parseLogFileName(errorLogName);
|
|
234
|
+
// Create three independent log instances
|
|
116
235
|
const loggerInstance = createLoggerInstance(baseOpts, logDir, appParsed.base, appParsed.ext, level, prettyPrint, frequency, maxSize, dateFormat);
|
|
117
236
|
const coreLoggerInstance = createLoggerInstance({ ...baseOpts, name: `${name}-core` }, logDir, coreParsed.base, coreParsed.ext, level, prettyPrint, frequency, maxSize, dateFormat);
|
|
237
|
+
// errorLogger is fixed to error level
|
|
118
238
|
const errorLoggerInstance = createLoggerInstance({ ...baseOpts, level: 'error', name: `${name}-error` }, logDir, errorParsed.base, errorParsed.ext, 'error', prettyPrint, frequency, maxSize, dateFormat);
|
|
119
239
|
debugLog('[create] level: %s, dir: %s, frequency: %s', level, logDir, frequency);
|
|
120
240
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/log/logger.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/log/logger.ts"],"names":[],"mappings":"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"}
|