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.
Files changed (454) hide show
  1. package/README.md +178 -0
  2. package/dist/cjs/app/application.d.ts +36 -1
  3. package/dist/cjs/app/application.d.ts.map +1 -1
  4. package/dist/cjs/app/application.js +49 -2
  5. package/dist/cjs/app/application.js.map +1 -1
  6. package/dist/cjs/app/boot.d.ts +56 -1
  7. package/dist/cjs/app/boot.d.ts.map +1 -1
  8. package/dist/cjs/app/boot.js +74 -11
  9. package/dist/cjs/app/boot.js.map +1 -1
  10. package/dist/cjs/app/dir.d.ts +10 -0
  11. package/dist/cjs/app/dir.d.ts.map +1 -1
  12. package/dist/cjs/app/dir.js +71 -10
  13. package/dist/cjs/app/dir.js.map +1 -1
  14. package/dist/cjs/app/events.d.ts +58 -2
  15. package/dist/cjs/app/events.d.ts.map +1 -1
  16. package/dist/cjs/app/events.js +92 -12
  17. package/dist/cjs/app/events.js.map +1 -1
  18. package/dist/cjs/config/config_loader.d.ts +44 -0
  19. package/dist/cjs/config/config_loader.d.ts.map +1 -1
  20. package/dist/cjs/config/config_loader.js +82 -1
  21. package/dist/cjs/config/config_loader.js.map +1 -1
  22. package/dist/cjs/config/default_config.d.ts +5 -0
  23. package/dist/cjs/config/default_config.d.ts.map +1 -1
  24. package/dist/cjs/config/default_config.js +98 -11
  25. package/dist/cjs/config/default_config.js.map +1 -1
  26. package/dist/cjs/config/index.d.ts +31 -1
  27. package/dist/cjs/config/index.d.ts.map +1 -1
  28. package/dist/cjs/config/index.js +52 -0
  29. package/dist/cjs/config/index.js.map +1 -1
  30. package/dist/cjs/const/channel.d.ts +17 -0
  31. package/dist/cjs/const/channel.d.ts.map +1 -1
  32. package/dist/cjs/const/channel.js +17 -0
  33. package/dist/cjs/const/channel.js.map +1 -1
  34. package/dist/cjs/controller/controller_loader.d.ts +20 -1
  35. package/dist/cjs/controller/controller_loader.d.ts.map +1 -1
  36. package/dist/cjs/controller/controller_loader.js +89 -9
  37. package/dist/cjs/controller/controller_loader.js.map +1 -1
  38. package/dist/cjs/controller/index.d.ts +32 -0
  39. package/dist/cjs/controller/index.d.ts.map +1 -1
  40. package/dist/cjs/controller/index.js +66 -0
  41. package/dist/cjs/controller/index.js.map +1 -1
  42. package/dist/cjs/core/loader/file_loader.d.ts +77 -27
  43. package/dist/cjs/core/loader/file_loader.d.ts.map +1 -1
  44. package/dist/cjs/core/loader/file_loader.js +239 -75
  45. package/dist/cjs/core/loader/file_loader.js.map +1 -1
  46. package/dist/cjs/core/utils/index.d.ts +57 -2
  47. package/dist/cjs/core/utils/index.d.ts.map +1 -1
  48. package/dist/cjs/core/utils/index.js +120 -12
  49. package/dist/cjs/core/utils/index.js.map +1 -1
  50. package/dist/cjs/core/utils/timing.d.ts +47 -0
  51. package/dist/cjs/core/utils/timing.d.ts.map +1 -1
  52. package/dist/cjs/core/utils/timing.js +42 -2
  53. package/dist/cjs/core/utils/timing.js.map +1 -1
  54. package/dist/cjs/cross/cross.d.ts +81 -2
  55. package/dist/cjs/cross/cross.d.ts.map +1 -1
  56. package/dist/cjs/cross/cross.js +86 -16
  57. package/dist/cjs/cross/cross.js.map +1 -1
  58. package/dist/cjs/cross/crossProcess.d.ts +85 -14
  59. package/dist/cjs/cross/crossProcess.d.ts.map +1 -1
  60. package/dist/cjs/cross/crossProcess.js +85 -13
  61. package/dist/cjs/cross/crossProcess.js.map +1 -1
  62. package/dist/cjs/electron/app/index.d.ts +17 -1
  63. package/dist/cjs/electron/app/index.d.ts.map +1 -1
  64. package/dist/cjs/electron/app/index.js +27 -3
  65. package/dist/cjs/electron/app/index.js.map +1 -1
  66. package/dist/cjs/electron/index.d.ts +6 -0
  67. package/dist/cjs/electron/index.d.ts.map +1 -1
  68. package/dist/cjs/electron/index.js +16 -1
  69. package/dist/cjs/electron/index.js.map +1 -1
  70. package/dist/cjs/electron/window/index.d.ts +37 -0
  71. package/dist/cjs/electron/window/index.d.ts.map +1 -1
  72. package/dist/cjs/electron/window/index.js +144 -88
  73. package/dist/cjs/electron/window/index.js.map +1 -1
  74. package/dist/cjs/exception/index.d.ts +12 -0
  75. package/dist/cjs/exception/index.d.ts.map +1 -1
  76. package/dist/cjs/exception/index.js +67 -9
  77. package/dist/cjs/exception/index.js.map +1 -1
  78. package/dist/cjs/html/index.d.ts +19 -0
  79. package/dist/cjs/html/index.d.ts.map +1 -1
  80. package/dist/cjs/html/index.js +42 -0
  81. package/dist/cjs/html/index.js.map +1 -1
  82. package/dist/cjs/index.d.ts +35 -7
  83. package/dist/cjs/index.d.ts.map +1 -1
  84. package/dist/cjs/index.js +127 -80
  85. package/dist/cjs/index.js.map +1 -1
  86. package/dist/cjs/jobs/child/app.js +86 -25
  87. package/dist/cjs/jobs/child/app.js.map +1 -1
  88. package/dist/cjs/jobs/child/index.d.ts +5 -5
  89. package/dist/cjs/jobs/child/index.js +5 -5
  90. package/dist/cjs/jobs/child/jobProcess.d.ts +68 -0
  91. package/dist/cjs/jobs/child/jobProcess.d.ts.map +1 -1
  92. package/dist/cjs/jobs/child/jobProcess.js +86 -11
  93. package/dist/cjs/jobs/child/jobProcess.js.map +1 -1
  94. package/dist/cjs/jobs/child-pool/index.d.ts +96 -0
  95. package/dist/cjs/jobs/child-pool/index.d.ts.map +1 -1
  96. package/dist/cjs/jobs/child-pool/index.js +91 -4
  97. package/dist/cjs/jobs/child-pool/index.js.map +1 -1
  98. package/dist/cjs/jobs/index.d.ts +10 -0
  99. package/dist/cjs/jobs/index.d.ts.map +1 -1
  100. package/dist/cjs/jobs/index.js +10 -0
  101. package/dist/cjs/jobs/index.js.map +1 -1
  102. package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts +2 -0
  103. package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts.map +1 -1
  104. package/dist/cjs/jobs/load-balancer/algorithm/index.js +6 -0
  105. package/dist/cjs/jobs/load-balancer/algorithm/index.js.map +1 -1
  106. package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.d.ts +1 -1
  107. package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.js +1 -1
  108. package/dist/cjs/jobs/load-balancer/algorithm/polling.d.ts +1 -1
  109. package/dist/cjs/jobs/load-balancer/algorithm/polling.js +1 -1
  110. package/dist/cjs/jobs/load-balancer/algorithm/random.d.ts +1 -1
  111. package/dist/cjs/jobs/load-balancer/algorithm/random.js +1 -1
  112. package/dist/cjs/jobs/load-balancer/algorithm/specify.d.ts +1 -1
  113. package/dist/cjs/jobs/load-balancer/algorithm/specify.js +1 -1
  114. package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts +1 -1
  115. package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts.map +1 -1
  116. package/dist/cjs/jobs/load-balancer/algorithm/weights.js +4 -8
  117. package/dist/cjs/jobs/load-balancer/algorithm/weights.js.map +1 -1
  118. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +1 -1
  119. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -1
  120. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js +6 -11
  121. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -1
  122. package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.d.ts +1 -1
  123. package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.js +1 -1
  124. package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.d.ts +1 -1
  125. package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.js +1 -1
  126. package/dist/cjs/jobs/load-balancer/consts.d.ts +22 -0
  127. package/dist/cjs/jobs/load-balancer/consts.d.ts.map +1 -1
  128. package/dist/cjs/jobs/load-balancer/consts.js +22 -0
  129. package/dist/cjs/jobs/load-balancer/consts.js.map +1 -1
  130. package/dist/cjs/jobs/load-balancer/index.d.ts +18 -18
  131. package/dist/cjs/jobs/load-balancer/index.js +18 -18
  132. package/dist/cjs/jobs/load-balancer/scheduler.d.ts +3 -3
  133. package/dist/cjs/jobs/load-balancer/scheduler.js +3 -3
  134. package/dist/cjs/jobs/load-balancer/types.d.ts +21 -0
  135. package/dist/cjs/jobs/load-balancer/types.d.ts.map +1 -1
  136. package/dist/cjs/jobs/load-balancer/types.js +4 -0
  137. package/dist/cjs/jobs/load-balancer/types.js.map +1 -1
  138. package/dist/cjs/jobs/registry.d.ts +24 -0
  139. package/dist/cjs/jobs/registry.d.ts.map +1 -0
  140. package/dist/cjs/jobs/registry.js +52 -0
  141. package/dist/cjs/jobs/registry.js.map +1 -0
  142. package/dist/cjs/loader/index.d.ts +52 -0
  143. package/dist/cjs/loader/index.d.ts.map +1 -1
  144. package/dist/cjs/loader/index.js +79 -10
  145. package/dist/cjs/loader/index.js.map +1 -1
  146. package/dist/cjs/log/index.d.ts +41 -0
  147. package/dist/cjs/log/index.d.ts.map +1 -1
  148. package/dist/cjs/log/index.js +59 -20
  149. package/dist/cjs/log/index.js.map +1 -1
  150. package/dist/cjs/log/logger.d.ts +26 -0
  151. package/dist/cjs/log/logger.d.ts.map +1 -1
  152. package/dist/cjs/log/logger.js +122 -2
  153. package/dist/cjs/log/logger.js.map +1 -1
  154. package/dist/cjs/message/childMessage.d.ts +50 -0
  155. package/dist/cjs/message/childMessage.d.ts.map +1 -1
  156. package/dist/cjs/message/childMessage.js +83 -2
  157. package/dist/cjs/message/childMessage.js.map +1 -1
  158. package/dist/cjs/ps/index.d.ts +112 -0
  159. package/dist/cjs/ps/index.d.ts.map +1 -1
  160. package/dist/cjs/ps/index.js +175 -41
  161. package/dist/cjs/ps/index.js.map +1 -1
  162. package/dist/cjs/socket/httpServer.d.ts +58 -5
  163. package/dist/cjs/socket/httpServer.d.ts.map +1 -1
  164. package/dist/cjs/socket/httpServer.js +94 -28
  165. package/dist/cjs/socket/httpServer.js.map +1 -1
  166. package/dist/cjs/socket/index.d.ts +45 -3
  167. package/dist/cjs/socket/index.d.ts.map +1 -1
  168. package/dist/cjs/socket/index.js +50 -14
  169. package/dist/cjs/socket/index.js.map +1 -1
  170. package/dist/cjs/socket/ipcServer.d.ts +31 -1
  171. package/dist/cjs/socket/ipcServer.d.ts.map +1 -1
  172. package/dist/cjs/socket/ipcServer.js +60 -43
  173. package/dist/cjs/socket/ipcServer.js.map +1 -1
  174. package/dist/cjs/socket/socketServer.d.ts +32 -1
  175. package/dist/cjs/socket/socketServer.d.ts.map +1 -1
  176. package/dist/cjs/socket/socketServer.js +53 -14
  177. package/dist/cjs/socket/socketServer.js.map +1 -1
  178. package/dist/cjs/socket/utils.d.ts +13 -0
  179. package/dist/cjs/socket/utils.d.ts.map +1 -0
  180. package/dist/cjs/socket/utils.js +41 -0
  181. package/dist/cjs/socket/utils.js.map +1 -0
  182. package/dist/cjs/storage/sqliteStorage.d.ts +93 -4
  183. package/dist/cjs/storage/sqliteStorage.d.ts.map +1 -1
  184. package/dist/cjs/storage/sqliteStorage.js +121 -9
  185. package/dist/cjs/storage/sqliteStorage.js.map +1 -1
  186. package/dist/cjs/types/index.d.ts +373 -5
  187. package/dist/cjs/types/index.d.ts.map +1 -1
  188. package/dist/cjs/utils/extend.d.ts +44 -1
  189. package/dist/cjs/utils/extend.d.ts.map +1 -1
  190. package/dist/cjs/utils/extend.js +67 -19
  191. package/dist/cjs/utils/extend.js.map +1 -1
  192. package/dist/cjs/utils/helper.d.ts +154 -1
  193. package/dist/cjs/utils/helper.d.ts.map +1 -1
  194. package/dist/cjs/utils/helper.js +205 -28
  195. package/dist/cjs/utils/helper.js.map +1 -1
  196. package/dist/cjs/utils/index.d.ts +93 -0
  197. package/dist/cjs/utils/index.d.ts.map +1 -1
  198. package/dist/cjs/utils/index.js +136 -12
  199. package/dist/cjs/utils/index.js.map +1 -1
  200. package/dist/cjs/utils/ip.d.ts +29 -0
  201. package/dist/cjs/utils/ip.d.ts.map +1 -1
  202. package/dist/cjs/utils/ip.js +95 -4
  203. package/dist/cjs/utils/ip.js.map +1 -1
  204. package/dist/cjs/utils/is.d.ts +123 -0
  205. package/dist/cjs/utils/is.d.ts.map +1 -1
  206. package/dist/cjs/utils/is.js +126 -14
  207. package/dist/cjs/utils/is.js.map +1 -1
  208. package/dist/cjs/utils/json.d.ts +54 -0
  209. package/dist/cjs/utils/json.d.ts.map +1 -1
  210. package/dist/cjs/utils/json.js +62 -0
  211. package/dist/cjs/utils/json.js.map +1 -1
  212. package/dist/cjs/utils/pargv.d.ts +51 -0
  213. package/dist/cjs/utils/pargv.d.ts.map +1 -1
  214. package/dist/cjs/utils/pargv.js +141 -3
  215. package/dist/cjs/utils/pargv.js.map +1 -1
  216. package/dist/cjs/utils/port/index.d.ts +42 -0
  217. package/dist/cjs/utils/port/index.d.ts.map +1 -1
  218. package/dist/cjs/utils/port/index.js +130 -7
  219. package/dist/cjs/utils/port/index.js.map +1 -1
  220. package/dist/cjs/utils/type_check.d.ts +79 -0
  221. package/dist/cjs/utils/type_check.d.ts.map +1 -1
  222. package/dist/cjs/utils/type_check.js +87 -1
  223. package/dist/cjs/utils/type_check.js.map +1 -1
  224. package/dist/cjs/utils/wrap.d.ts +26 -0
  225. package/dist/cjs/utils/wrap.d.ts.map +1 -1
  226. package/dist/cjs/utils/wrap.js +47 -10
  227. package/dist/cjs/utils/wrap.js.map +1 -1
  228. package/dist/esm/app/application.d.ts +36 -1
  229. package/dist/esm/app/application.d.ts.map +1 -1
  230. package/dist/esm/app/application.js +49 -2
  231. package/dist/esm/app/application.js.map +1 -1
  232. package/dist/esm/app/boot.d.ts +56 -1
  233. package/dist/esm/app/boot.d.ts.map +1 -1
  234. package/dist/esm/app/boot.js +74 -11
  235. package/dist/esm/app/boot.js.map +1 -1
  236. package/dist/esm/app/dir.d.ts +10 -0
  237. package/dist/esm/app/dir.d.ts.map +1 -1
  238. package/dist/esm/app/dir.js +71 -10
  239. package/dist/esm/app/dir.js.map +1 -1
  240. package/dist/esm/app/events.d.ts +58 -2
  241. package/dist/esm/app/events.d.ts.map +1 -1
  242. package/dist/esm/app/events.js +92 -12
  243. package/dist/esm/app/events.js.map +1 -1
  244. package/dist/esm/config/config_loader.d.ts +44 -0
  245. package/dist/esm/config/config_loader.d.ts.map +1 -1
  246. package/dist/esm/config/config_loader.js +82 -1
  247. package/dist/esm/config/config_loader.js.map +1 -1
  248. package/dist/esm/config/default_config.d.ts +5 -0
  249. package/dist/esm/config/default_config.d.ts.map +1 -1
  250. package/dist/esm/config/default_config.js +98 -11
  251. package/dist/esm/config/default_config.js.map +1 -1
  252. package/dist/esm/config/index.d.ts +31 -1
  253. package/dist/esm/config/index.d.ts.map +1 -1
  254. package/dist/esm/config/index.js +52 -0
  255. package/dist/esm/config/index.js.map +1 -1
  256. package/dist/esm/const/channel.d.ts +17 -0
  257. package/dist/esm/const/channel.d.ts.map +1 -1
  258. package/dist/esm/const/channel.js +17 -0
  259. package/dist/esm/const/channel.js.map +1 -1
  260. package/dist/esm/controller/controller_loader.d.ts +20 -1
  261. package/dist/esm/controller/controller_loader.d.ts.map +1 -1
  262. package/dist/esm/controller/controller_loader.js +89 -9
  263. package/dist/esm/controller/controller_loader.js.map +1 -1
  264. package/dist/esm/controller/index.d.ts +32 -0
  265. package/dist/esm/controller/index.d.ts.map +1 -1
  266. package/dist/esm/controller/index.js +66 -0
  267. package/dist/esm/controller/index.js.map +1 -1
  268. package/dist/esm/core/loader/file_loader.d.ts +77 -27
  269. package/dist/esm/core/loader/file_loader.d.ts.map +1 -1
  270. package/dist/esm/core/loader/file_loader.js +239 -75
  271. package/dist/esm/core/loader/file_loader.js.map +1 -1
  272. package/dist/esm/core/utils/index.d.ts +57 -2
  273. package/dist/esm/core/utils/index.d.ts.map +1 -1
  274. package/dist/esm/core/utils/index.js +87 -12
  275. package/dist/esm/core/utils/index.js.map +1 -1
  276. package/dist/esm/core/utils/timing.d.ts +47 -0
  277. package/dist/esm/core/utils/timing.d.ts.map +1 -1
  278. package/dist/esm/core/utils/timing.js +42 -2
  279. package/dist/esm/core/utils/timing.js.map +1 -1
  280. package/dist/esm/cross/cross.d.ts +81 -2
  281. package/dist/esm/cross/cross.d.ts.map +1 -1
  282. package/dist/esm/cross/cross.js +86 -16
  283. package/dist/esm/cross/cross.js.map +1 -1
  284. package/dist/esm/cross/crossProcess.d.ts +85 -14
  285. package/dist/esm/cross/crossProcess.d.ts.map +1 -1
  286. package/dist/esm/cross/crossProcess.js +85 -13
  287. package/dist/esm/cross/crossProcess.js.map +1 -1
  288. package/dist/esm/electron/app/index.d.ts +17 -1
  289. package/dist/esm/electron/app/index.d.ts.map +1 -1
  290. package/dist/esm/electron/app/index.js +27 -3
  291. package/dist/esm/electron/app/index.js.map +1 -1
  292. package/dist/esm/electron/index.d.ts +6 -0
  293. package/dist/esm/electron/index.d.ts.map +1 -1
  294. package/dist/esm/electron/index.js +16 -1
  295. package/dist/esm/electron/index.js.map +1 -1
  296. package/dist/esm/electron/window/index.d.ts +37 -0
  297. package/dist/esm/electron/window/index.d.ts.map +1 -1
  298. package/dist/esm/electron/window/index.js +144 -88
  299. package/dist/esm/electron/window/index.js.map +1 -1
  300. package/dist/esm/exception/index.d.ts +12 -0
  301. package/dist/esm/exception/index.d.ts.map +1 -1
  302. package/dist/esm/exception/index.js +67 -9
  303. package/dist/esm/exception/index.js.map +1 -1
  304. package/dist/esm/html/index.d.ts +19 -0
  305. package/dist/esm/html/index.d.ts.map +1 -1
  306. package/dist/esm/html/index.js +42 -0
  307. package/dist/esm/html/index.js.map +1 -1
  308. package/dist/esm/index.d.ts +35 -7
  309. package/dist/esm/index.d.ts.map +1 -1
  310. package/dist/esm/index.js +127 -80
  311. package/dist/esm/index.js.map +1 -1
  312. package/dist/esm/jobs/child/app.js +86 -25
  313. package/dist/esm/jobs/child/app.js.map +1 -1
  314. package/dist/esm/jobs/child/index.d.ts +5 -5
  315. package/dist/esm/jobs/child/index.js +5 -5
  316. package/dist/esm/jobs/child/jobProcess.d.ts +68 -0
  317. package/dist/esm/jobs/child/jobProcess.d.ts.map +1 -1
  318. package/dist/esm/jobs/child/jobProcess.js +86 -11
  319. package/dist/esm/jobs/child/jobProcess.js.map +1 -1
  320. package/dist/esm/jobs/child-pool/index.d.ts +96 -0
  321. package/dist/esm/jobs/child-pool/index.d.ts.map +1 -1
  322. package/dist/esm/jobs/child-pool/index.js +91 -4
  323. package/dist/esm/jobs/child-pool/index.js.map +1 -1
  324. package/dist/esm/jobs/index.d.ts +10 -0
  325. package/dist/esm/jobs/index.d.ts.map +1 -1
  326. package/dist/esm/jobs/index.js +10 -0
  327. package/dist/esm/jobs/index.js.map +1 -1
  328. package/dist/esm/jobs/load-balancer/algorithm/index.d.ts +2 -0
  329. package/dist/esm/jobs/load-balancer/algorithm/index.d.ts.map +1 -1
  330. package/dist/esm/jobs/load-balancer/algorithm/index.js +6 -0
  331. package/dist/esm/jobs/load-balancer/algorithm/index.js.map +1 -1
  332. package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.d.ts +1 -1
  333. package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.js +1 -1
  334. package/dist/esm/jobs/load-balancer/algorithm/polling.d.ts +1 -1
  335. package/dist/esm/jobs/load-balancer/algorithm/polling.js +1 -1
  336. package/dist/esm/jobs/load-balancer/algorithm/random.d.ts +1 -1
  337. package/dist/esm/jobs/load-balancer/algorithm/random.js +1 -1
  338. package/dist/esm/jobs/load-balancer/algorithm/specify.d.ts +1 -1
  339. package/dist/esm/jobs/load-balancer/algorithm/specify.js +1 -1
  340. package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts +1 -1
  341. package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts.map +1 -1
  342. package/dist/esm/jobs/load-balancer/algorithm/weights.js +4 -8
  343. package/dist/esm/jobs/load-balancer/algorithm/weights.js.map +1 -1
  344. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +1 -1
  345. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -1
  346. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js +6 -11
  347. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -1
  348. package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.d.ts +1 -1
  349. package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.js +1 -1
  350. package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.d.ts +1 -1
  351. package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.js +1 -1
  352. package/dist/esm/jobs/load-balancer/consts.d.ts +22 -0
  353. package/dist/esm/jobs/load-balancer/consts.d.ts.map +1 -1
  354. package/dist/esm/jobs/load-balancer/consts.js +22 -0
  355. package/dist/esm/jobs/load-balancer/consts.js.map +1 -1
  356. package/dist/esm/jobs/load-balancer/index.d.ts +18 -18
  357. package/dist/esm/jobs/load-balancer/index.js +18 -18
  358. package/dist/esm/jobs/load-balancer/scheduler.d.ts +3 -3
  359. package/dist/esm/jobs/load-balancer/scheduler.js +3 -3
  360. package/dist/esm/jobs/load-balancer/types.d.ts +21 -0
  361. package/dist/esm/jobs/load-balancer/types.d.ts.map +1 -1
  362. package/dist/esm/jobs/load-balancer/types.js +4 -0
  363. package/dist/esm/jobs/load-balancer/types.js.map +1 -1
  364. package/dist/esm/jobs/registry.d.ts +24 -0
  365. package/dist/esm/jobs/registry.d.ts.map +1 -0
  366. package/dist/esm/jobs/registry.js +52 -0
  367. package/dist/esm/jobs/registry.js.map +1 -0
  368. package/dist/esm/loader/index.d.ts +52 -0
  369. package/dist/esm/loader/index.d.ts.map +1 -1
  370. package/dist/esm/loader/index.js +79 -10
  371. package/dist/esm/loader/index.js.map +1 -1
  372. package/dist/esm/log/index.d.ts +41 -0
  373. package/dist/esm/log/index.d.ts.map +1 -1
  374. package/dist/esm/log/index.js +59 -20
  375. package/dist/esm/log/index.js.map +1 -1
  376. package/dist/esm/log/logger.d.ts +26 -0
  377. package/dist/esm/log/logger.d.ts.map +1 -1
  378. package/dist/esm/log/logger.js +122 -2
  379. package/dist/esm/log/logger.js.map +1 -1
  380. package/dist/esm/message/childMessage.d.ts +50 -0
  381. package/dist/esm/message/childMessage.d.ts.map +1 -1
  382. package/dist/esm/message/childMessage.js +83 -2
  383. package/dist/esm/message/childMessage.js.map +1 -1
  384. package/dist/esm/ps/index.d.ts +112 -0
  385. package/dist/esm/ps/index.d.ts.map +1 -1
  386. package/dist/esm/ps/index.js +175 -41
  387. package/dist/esm/ps/index.js.map +1 -1
  388. package/dist/esm/socket/httpServer.d.ts +58 -5
  389. package/dist/esm/socket/httpServer.d.ts.map +1 -1
  390. package/dist/esm/socket/httpServer.js +94 -28
  391. package/dist/esm/socket/httpServer.js.map +1 -1
  392. package/dist/esm/socket/index.d.ts +45 -3
  393. package/dist/esm/socket/index.d.ts.map +1 -1
  394. package/dist/esm/socket/index.js +50 -14
  395. package/dist/esm/socket/index.js.map +1 -1
  396. package/dist/esm/socket/ipcServer.d.ts +31 -1
  397. package/dist/esm/socket/ipcServer.d.ts.map +1 -1
  398. package/dist/esm/socket/ipcServer.js +60 -43
  399. package/dist/esm/socket/ipcServer.js.map +1 -1
  400. package/dist/esm/socket/socketServer.d.ts +32 -1
  401. package/dist/esm/socket/socketServer.d.ts.map +1 -1
  402. package/dist/esm/socket/socketServer.js +53 -14
  403. package/dist/esm/socket/socketServer.js.map +1 -1
  404. package/dist/esm/socket/utils.d.ts +13 -0
  405. package/dist/esm/socket/utils.d.ts.map +1 -0
  406. package/dist/esm/socket/utils.js +41 -0
  407. package/dist/esm/socket/utils.js.map +1 -0
  408. package/dist/esm/storage/sqliteStorage.d.ts +93 -4
  409. package/dist/esm/storage/sqliteStorage.d.ts.map +1 -1
  410. package/dist/esm/storage/sqliteStorage.js +121 -9
  411. package/dist/esm/storage/sqliteStorage.js.map +1 -1
  412. package/dist/esm/types/index.d.ts +373 -5
  413. package/dist/esm/types/index.d.ts.map +1 -1
  414. package/dist/esm/utils/extend.d.ts +44 -1
  415. package/dist/esm/utils/extend.d.ts.map +1 -1
  416. package/dist/esm/utils/extend.js +67 -19
  417. package/dist/esm/utils/extend.js.map +1 -1
  418. package/dist/esm/utils/helper.d.ts +154 -1
  419. package/dist/esm/utils/helper.d.ts.map +1 -1
  420. package/dist/esm/utils/helper.js +205 -28
  421. package/dist/esm/utils/helper.js.map +1 -1
  422. package/dist/esm/utils/index.d.ts +93 -0
  423. package/dist/esm/utils/index.d.ts.map +1 -1
  424. package/dist/esm/utils/index.js +136 -12
  425. package/dist/esm/utils/index.js.map +1 -1
  426. package/dist/esm/utils/ip.d.ts +29 -0
  427. package/dist/esm/utils/ip.d.ts.map +1 -1
  428. package/dist/esm/utils/ip.js +95 -4
  429. package/dist/esm/utils/ip.js.map +1 -1
  430. package/dist/esm/utils/is.d.ts +123 -0
  431. package/dist/esm/utils/is.d.ts.map +1 -1
  432. package/dist/esm/utils/is.js +126 -14
  433. package/dist/esm/utils/is.js.map +1 -1
  434. package/dist/esm/utils/json.d.ts +54 -0
  435. package/dist/esm/utils/json.d.ts.map +1 -1
  436. package/dist/esm/utils/json.js +62 -0
  437. package/dist/esm/utils/json.js.map +1 -1
  438. package/dist/esm/utils/pargv.d.ts +51 -0
  439. package/dist/esm/utils/pargv.d.ts.map +1 -1
  440. package/dist/esm/utils/pargv.js +141 -3
  441. package/dist/esm/utils/pargv.js.map +1 -1
  442. package/dist/esm/utils/port/index.d.ts +42 -0
  443. package/dist/esm/utils/port/index.d.ts.map +1 -1
  444. package/dist/esm/utils/port/index.js +130 -7
  445. package/dist/esm/utils/port/index.js.map +1 -1
  446. package/dist/esm/utils/type_check.d.ts +79 -0
  447. package/dist/esm/utils/type_check.d.ts.map +1 -1
  448. package/dist/esm/utils/type_check.js +87 -1
  449. package/dist/esm/utils/type_check.js.map +1 -1
  450. package/dist/esm/utils/wrap.d.ts +26 -0
  451. package/dist/esm/utils/wrap.d.ts.map +1 -1
  452. package/dist/esm/utils/wrap.js +47 -10
  453. package/dist/esm/utils/wrap.js.map +1 -1
  454. package/package.json +12 -13
package/README.md ADDED
@@ -0,0 +1,178 @@
1
+ # ee-core
2
+
3
+ Enterprise-grade Electron application framework core — TypeScript edition with dual CJS + ESM module support.
4
+
5
+ ## Overview
6
+
7
+ `ee-core` provides the runtime foundation for [electron-egg](https://github.com/wallace5303/electron-egg) applications. It handles the complete lifecycle from boot to shutdown: configuration loading, controller registration, IPC communication, window management, logging, storage, background jobs, and cross-process coordination.
8
+
9
+ The package outputs dual module formats (CJS + ESM) via conditional exports in `package.json`, making it compatible with both `require()` and `import` environments.
10
+
11
+ ## Installation
12
+
13
+ ```bash
14
+ npm install ee-core
15
+ ```
16
+
17
+ ## Subpath Exports
18
+
19
+ ee-core exposes fine-grained subpath modules. Each can be imported individually:
20
+
21
+ ```ts
22
+ // Main entry (boot, app, config, etc.)
23
+ import { ElectronEgg } from 'ee-core';
24
+
25
+ // Specific submodules
26
+ import { ControllerLoader } from 'ee-core/controller';
27
+ import { Cross, cross } from 'ee-core/cross';
28
+ import { extend } from 'ee-core/utils';
29
+ import { SqliteStorage } from 'ee-core/storage';
30
+ import { ChildJob, ChildPoolJob, LoadBalancer } from 'ee-core/jobs';
31
+ import type { Config, DevConfig } from 'ee-core/types';
32
+ ```
33
+
34
+ Available subpaths:
35
+
36
+ | Subpath | Description |
37
+ |---|---|
38
+ | `ee-core` | Main entry — boot, application, config, events |
39
+ | `ee-core/app` | Application lifecycle and event bus |
40
+ | `ee-core/config` | Configuration loading and merging |
41
+ | `ee-core/controller` | Controller loader and registry |
42
+ | `ee-core/core` | FileLoader and core utilities |
43
+ | `ee-core/cross` | IPC communication (socket.io, HTTP, Electron IPC) |
44
+ | `ee-core/electron` | Electron app/window management |
45
+ | `ee-core/exception` | Exception handling |
46
+ | `ee-core/html` | HTML static resource path utility |
47
+ | `ee-core/jobs` | Background jobs (ChildJob, ChildPoolJob, LoadBalancer) |
48
+ | `ee-core/loader` | File/module loading utilities |
49
+ | `ee-core/log` | Pino-based logging (pino-roll + pino-pretty) |
50
+ | `ee-core/message` | IPC message routing |
51
+ | `ee-core/ps` | Process/environment utilities (paths, env detection) |
52
+ | `ee-core/socket` | Socket.IO, HTTP, IPC servers |
53
+ | `ee-core/storage` | SQLite storage (better-sqlite3) |
54
+ | `ee-core/types` | TypeScript type definitions |
55
+ | `ee-core/utils` | extend, is, json, helper, pargv, port |
56
+
57
+ ## Architecture
58
+
59
+ ### Lifecycle
60
+
61
+ Boot → loadConfig → loadLog → loadDir → loadController → loadSocket → loadElectron
62
+
63
+ ### Controller Loading Pipeline
64
+
65
+ - **Build time** (ee-bin): `controllerRegistryPlugin` scans `electron/controller/`, generates `ee-core:controller-registry` virtual module with lazy getters.
66
+ - **Runtime** (ee-core): If `globalThis.__EE_CONTROLLER_REGISTRY__` exists (bundle mode), loads from registry. Otherwise falls back to filesystem scanning via globby.
67
+
68
+ ### IPC Communication
69
+
70
+ Main ↔ renderer via `ee-core/cross`, supporting three transport modes:
71
+ - Socket.IO (bidirectional real-time)
72
+ - HTTP server (RESTful)
73
+ - Electron IPC (native)
74
+
75
+ Channels follow pattern `controller/{name}/{method}`.
76
+
77
+ ### Window Loading Strategy
78
+
79
+ - Remote mode → Load remote URL
80
+ - Dev mode → Wait for frontend dev server, show loading page first
81
+ - Prod + cross takeover → Wait for cross-process service
82
+ - Prod (default) → Load local HTML file
83
+
84
+ ## Key APIs
85
+
86
+ ### Boot & Application
87
+
88
+ ```ts
89
+ import { ElectronEgg } from 'ee-core';
90
+
91
+ // Start the framework
92
+ const app = new ElectronEgg();
93
+ ```
94
+
95
+ ### Configuration
96
+
97
+ ```ts
98
+ import { getConfig, setConfig } from 'ee-core/config';
99
+
100
+ const config = getConfig();
101
+ ```
102
+
103
+ ### Controller
104
+
105
+ ```ts
106
+ import { getController } from 'ee-core/controller';
107
+
108
+ const userController = getController('user');
109
+ ```
110
+
111
+ ### Cross-Process Communication
112
+
113
+ ```ts
114
+ import { cross } from 'ee-core/cross';
115
+
116
+ // Send IPC message to renderer
117
+ cross.sendToRenderer('controller/user/info', data);
118
+ ```
119
+
120
+ ### Jobs
121
+
122
+ ```ts
123
+ import { ChildJob, ChildPoolJob, LoadBalancer } from 'ee-core/jobs';
124
+
125
+ const job = new ChildJob();
126
+ const result = await job.exec({ name: 'task', script: './jobs/demo.js' });
127
+ ```
128
+
129
+ ### Storage
130
+
131
+ ```ts
132
+ import { SqliteStorage } from 'ee-core/storage';
133
+
134
+ const db = new SqliteStorage('./data/app.db');
135
+ db.prepare('CREATE TABLE IF NOT EXISTS user (id INTEGER PRIMARY KEY, name TEXT)').run();
136
+ ```
137
+
138
+ ### Logging
139
+
140
+ ```ts
141
+ import { coreLogger, getLoggers } from 'ee-core/log';
142
+
143
+ coreLogger.info('Application started');
144
+ ```
145
+
146
+ ### Process/Environment
147
+
148
+ ```ts
149
+ import { isDev, getBaseDir, env } from 'ee-core/ps';
150
+
151
+ if (isDev()) {
152
+ // Development-specific logic
153
+ }
154
+ ```
155
+
156
+ ## Build
157
+
158
+ ```bash
159
+ npm run build # Build CJS + ESM + generate exports map
160
+ npm run build:cjs # Build CommonJS only
161
+ npm run build:esm # Build ESM only
162
+ npm run typecheck # TypeScript type checking
163
+ npm run test # Run vitest
164
+ ```
165
+
166
+ The `exports` map in `package.json` is auto-generated by `scripts/gen-exports.js`. Do not edit manually — run `npm run gen-exports` after adding new subpath modules.
167
+
168
+ ## Requirements
169
+
170
+ - Node.js >= 20.19.0
171
+ - Electron >= 28
172
+ - Better-sqlite3 requires native rebuild for Electron: use `pnpm re-sqlite` if you see native module errors
173
+
174
+ ## Notes
175
+
176
+ - ESM imports in ee-core source must include `.js` extensions (required by `module: NodeNext`)
177
+ - ee-core is NOT bundled into the Electron main process bundle — it's an esbuild external loaded from `node_modules` at runtime
178
+ - The framework uses the `debug` library for verbose logging. Enable with `DEBUG=ee-*` environment variable
@@ -1,6 +1,41 @@
1
+ /**
2
+ * Application class — Framework startup flow orchestrator
3
+ *
4
+ * Responsibilities:
5
+ * - register(): Register lifecycle event hooks
6
+ * - run(): Synchronous startup flow (CJS controller loading)
7
+ * - runAsync(): Asynchronous startup flow (ESM controller loading)
8
+ *
9
+ * Startup order:
10
+ * 1. Load Controllers — Register all business handler functions
11
+ * 2. Load Communication Services (Socket) — Start IPC/HTTP/SocketIO services
12
+ * 3. Emit Ready lifecycle event
13
+ * 4. Load Electron features — Create windows, register shortcuts, etc.
14
+ */
1
15
  export declare class Application {
16
+ /**
17
+ * Register a lifecycle event handler
18
+ * @param eventName - Event name (e.g. 'ready', 'before-close')
19
+ * @param handler - Event handler function
20
+ */
2
21
  register(eventName: string, handler: (...args: unknown[]) => void): void;
3
- run(): void;
22
+ /**
23
+ * Start the application synchronously
24
+ *
25
+ * Flow:
26
+ * 1. loadController() — Synchronously load controllers (using require())
27
+ * 2. loadSocket() — Start IPC/HTTP/SocketIO communication services
28
+ * 3. emitLifecycle(Ready) — Trigger ready lifecycle event
29
+ * 4. loadElectron() — Initialize Electron main process (create windows, etc.)
30
+ */
31
+ run(): Promise<void>;
32
+ /**
33
+ * Start the application asynchronously
34
+ *
35
+ * Same flow as run(), but controllers are loaded asynchronously using dynamic import(), supporting ESM modules.
36
+ */
37
+ runAsync(): Promise<void>;
4
38
  }
39
+ /** Application singleton */
5
40
  export declare const app: Application;
6
41
  //# sourceMappingURL=application.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../src/app/application.ts"],"names":[],"mappings":"AAKA,qBAAa,WAAW;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI;IAIxE,GAAG,IAAI,IAAI;CAMZ;AAED,eAAO,MAAM,GAAG,aAAoB,CAAC"}
1
+ {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../src/app/application.ts"],"names":[],"mappings":"AAYA;;;;;;;;;;;;;GAaG;AACH,qBAAa,WAAW;IACtB;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI;IAIxE;;;;;;;;OAQG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAO1B;;;;OAIG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAMhC;AAED,4BAA4B;AAC5B,eAAO,MAAM,GAAG,aAAoB,CAAC"}
@@ -1,21 +1,68 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.app = exports.Application = void 0;
4
+ /**
5
+ * @module app/application
6
+ * @description Application core class that orchestrates the framework startup flow.
7
+ * Responsible for sequentially loading controllers, communication services,
8
+ * emitting lifecycle events, and finally loading Electron main process features.
9
+ * Held and invoked by the ElectronEgg class in boot.ts.
10
+ */
4
11
  const index_js_1 = require("../controller/index.js");
5
12
  const events_js_1 = require("./events.js");
6
13
  const index_js_2 = require("../socket/index.js");
7
14
  const index_js_3 = require("../electron/index.js");
15
+ /**
16
+ * Application class — Framework startup flow orchestrator
17
+ *
18
+ * Responsibilities:
19
+ * - register(): Register lifecycle event hooks
20
+ * - run(): Synchronous startup flow (CJS controller loading)
21
+ * - runAsync(): Asynchronous startup flow (ESM controller loading)
22
+ *
23
+ * Startup order:
24
+ * 1. Load Controllers — Register all business handler functions
25
+ * 2. Load Communication Services (Socket) — Start IPC/HTTP/SocketIO services
26
+ * 3. Emit Ready lifecycle event
27
+ * 4. Load Electron features — Create windows, register shortcuts, etc.
28
+ */
8
29
  class Application {
30
+ /**
31
+ * Register a lifecycle event handler
32
+ * @param eventName - Event name (e.g. 'ready', 'before-close')
33
+ * @param handler - Event handler function
34
+ */
9
35
  register(eventName, handler) {
10
36
  events_js_1.eventBus.register(eventName, handler);
11
37
  }
12
- run() {
38
+ /**
39
+ * Start the application synchronously
40
+ *
41
+ * Flow:
42
+ * 1. loadController() — Synchronously load controllers (using require())
43
+ * 2. loadSocket() — Start IPC/HTTP/SocketIO communication services
44
+ * 3. emitLifecycle(Ready) — Trigger ready lifecycle event
45
+ * 4. loadElectron() — Initialize Electron main process (create windows, etc.)
46
+ */
47
+ async run() {
13
48
  (0, index_js_1.loadController)();
14
- (0, index_js_2.loadSocket)();
49
+ await (0, index_js_2.loadSocket)();
50
+ events_js_1.eventBus.emitLifecycle(events_js_1.Ready);
51
+ (0, index_js_3.loadElectron)();
52
+ }
53
+ /**
54
+ * Start the application asynchronously
55
+ *
56
+ * Same flow as run(), but controllers are loaded asynchronously using dynamic import(), supporting ESM modules.
57
+ */
58
+ async runAsync() {
59
+ await (0, index_js_1.loadControllerAsync)();
60
+ await (0, index_js_2.loadSocket)();
15
61
  events_js_1.eventBus.emitLifecycle(events_js_1.Ready);
16
62
  (0, index_js_3.loadElectron)();
17
63
  }
18
64
  }
19
65
  exports.Application = Application;
66
+ /** Application singleton */
20
67
  exports.app = new Application();
21
68
  //# sourceMappingURL=application.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"application.js","sourceRoot":"","sources":["../../../src/app/application.ts"],"names":[],"mappings":";;;AAAA,qDAAwD;AACxD,2CAA8C;AAC9C,iDAAgD;AAChD,mDAAoD;AAEpD,MAAa,WAAW;IACtB,QAAQ,CAAC,SAAiB,EAAE,OAAqC;QAC/D,oBAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,GAAG;QACD,IAAA,yBAAc,GAAE,CAAC;QACjB,IAAA,qBAAU,GAAE,CAAC;QACb,oBAAQ,CAAC,aAAa,CAAC,iBAAK,CAAC,CAAC;QAC9B,IAAA,uBAAY,GAAE,CAAC;IACjB,CAAC;CACF;AAXD,kCAWC;AAEY,QAAA,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"application.js","sourceRoot":"","sources":["../../../src/app/application.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,qDAA6E;AAC7E,2CAA8C;AAC9C,iDAAgD;AAChD,mDAAoD;AAEpD;;;;;;;;;;;;;GAaG;AACH,MAAa,WAAW;IACtB;;;;OAIG;IACH,QAAQ,CAAC,SAAiB,EAAE,OAAqC;QAC/D,oBAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,GAAG;QACP,IAAA,yBAAc,GAAE,CAAC;QACjB,MAAM,IAAA,qBAAU,GAAE,CAAC;QACnB,oBAAQ,CAAC,aAAa,CAAC,iBAAK,CAAC,CAAC;QAC9B,IAAA,uBAAY,GAAE,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAA,8BAAmB,GAAE,CAAC;QAC5B,MAAM,IAAA,qBAAU,GAAE,CAAC;QACnB,oBAAQ,CAAC,aAAa,CAAC,iBAAK,CAAC,CAAC;QAC9B,IAAA,uBAAY,GAAE,CAAC;IACjB,CAAC;CACF;AArCD,kCAqCC;AAED,4BAA4B;AACf,QAAA,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC"}
@@ -1,9 +1,64 @@
1
1
  import type { ElectronEggOptions } from '../types/index.js';
2
+ /**
3
+ * ElectronEgg framework main class
4
+ *
5
+ * Responsibilities:
6
+ * 1. Collect Electron runtime environment info (app name, version, paths, etc.)
7
+ * 2. Set global environment variables (EE_ENV, EE_BASE_DIR, etc.)
8
+ * 3. Initialize framework foundational features (exception handling -> config -> directories -> logging)
9
+ * 4. Provide register() for lifecycle hooks, run()/runAsync() to start the application
10
+ *
11
+ * Usage:
12
+ * ```ts
13
+ * const electronEgg = new ElectronEgg();
14
+ * electronEgg.register('ready', () => { ... });
15
+ * await electronEgg.run();
16
+ * ```
17
+ */
2
18
  export declare class ElectronEgg {
3
19
  options: ElectronEggOptions;
20
+ /**
21
+ * Constructor — Collects environment info and initializes the framework
22
+ *
23
+ * Execution flow:
24
+ * 1. Get Electron app path as baseDir
25
+ * 2. Parse command-line arguments: env (environment) and debugger (debug source flag)
26
+ * 3. Based on debugger flag, decide whether electronDir points to bundle output or source directory
27
+ * 4. Collect application info (name, version, paths, etc.) to build options
28
+ * 5. In production + packaged mode, execDir points to the executable's directory
29
+ * 6. Write key info to process.env for other modules to read
30
+ * 7. Call init() to load foundational features
31
+ */
4
32
  constructor();
33
+ /**
34
+ * Initialize framework foundational features
35
+ *
36
+ * Loading order (must not be changed):
37
+ * 1. loadException — Register global exception handling to ensure subsequent exceptions are caught
38
+ * 2. loadConfig — Load configuration files; subsequent modules depend on configuration
39
+ * 3. loadDir — Create necessary directories for data/logs
40
+ * 4. loadLog — Initialize logging system; depends on configuration and directories
41
+ */
5
42
  init(): void;
43
+ /**
44
+ * Register a lifecycle event handler
45
+ * @param eventName - Lifecycle event name (e.g. 'ready', 'electron-app-ready')
46
+ * @param handler - Event handler function
47
+ */
6
48
  register(eventName: string, handler: (...args: unknown[]) => void): void;
7
- run(): void;
49
+ /**
50
+ * Start the application synchronously
51
+ *
52
+ * Execution flow: loadController -> loadSocket -> emitLifecycle(ready) -> loadElectron
53
+ * Controllers are loaded using synchronous require(), suitable for CJS projects
54
+ */
55
+ run(): Promise<void>;
56
+ /**
57
+ * Start the application asynchronously
58
+ *
59
+ * Execution flow: loadControllerAsync -> loadSocket -> emitLifecycle(ready) -> loadElectron
60
+ * Controllers are loaded using dynamic import(), suitable for ESM projects
61
+ */
62
+ runAsync(): Promise<void>;
8
63
  }
9
64
  //# sourceMappingURL=boot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"boot.d.ts","sourceRoot":"","sources":["../../../src/app/boot.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAI5D,qBAAa,WAAW;IACtB,OAAO,EAAE,kBAAkB,CAAC;;IAkD5B,IAAI,IAAI,IAAI;IAQZ,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI;IAIxE,GAAG,IAAI,IAAI;CAGZ"}
1
+ {"version":3,"file":"boot.d.ts","sourceRoot":"","sources":["../../../src/app/boot.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAI5D;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,WAAW;IACtB,OAAO,EAAE,kBAAkB,CAAC;IAE5B;;;;;;;;;;;OAWG;;IAiDH;;;;;;;;OAQG;IACH,IAAI,IAAI,IAAI;IAOZ;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI;IAIxE;;;;;OAKG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1B;;;;;OAKG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC"}
@@ -4,6 +4,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ElectronEgg = void 0;
7
+ /**
8
+ * @module app/boot
9
+ * @description ElectronEgg framework boot module. Responsible for initializing the runtime environment,
10
+ * collecting application configuration, setting global environment variables, and sequentially
11
+ * loading framework foundational features (exception handling, configuration, directories, logging).
12
+ * This is the entry class of the entire framework, instantiated and started via run() from electron/main.js.
13
+ */
7
14
  const debug_1 = __importDefault(require("debug"));
8
15
  const path_1 = __importDefault(require("path"));
9
16
  const index_js_1 = require("../exception/index.js");
@@ -14,18 +21,46 @@ const index_js_5 = require("../log/index.js");
14
21
  const application_js_1 = require("./application.js");
15
22
  const dir_js_1 = require("./dir.js");
16
23
  const debugLog = (0, debug_1.default)('ee-core:app:boot');
24
+ /**
25
+ * ElectronEgg framework main class
26
+ *
27
+ * Responsibilities:
28
+ * 1. Collect Electron runtime environment info (app name, version, paths, etc.)
29
+ * 2. Set global environment variables (EE_ENV, EE_BASE_DIR, etc.)
30
+ * 3. Initialize framework foundational features (exception handling -> config -> directories -> logging)
31
+ * 4. Provide register() for lifecycle hooks, run()/runAsync() to start the application
32
+ *
33
+ * Usage:
34
+ * ```ts
35
+ * const electronEgg = new ElectronEgg();
36
+ * electronEgg.register('ready', () => { ... });
37
+ * await electronEgg.run();
38
+ * ```
39
+ */
17
40
  class ElectronEgg {
41
+ /**
42
+ * Constructor — Collects environment info and initializes the framework
43
+ *
44
+ * Execution flow:
45
+ * 1. Get Electron app path as baseDir
46
+ * 2. Parse command-line arguments: env (environment) and debugger (debug source flag)
47
+ * 3. Based on debugger flag, decide whether electronDir points to bundle output or source directory
48
+ * 4. Collect application info (name, version, paths, etc.) to build options
49
+ * 5. In production + packaged mode, execDir points to the executable's directory
50
+ * 6. Write key info to process.env for other modules to read
51
+ * 7. Call init() to load foundational features
52
+ */
18
53
  constructor() {
19
54
  const baseDir = index_js_2.electronApp.getAppPath();
20
- const environmet = (0, index_js_3.getArgumentByName)('env') || 'prod';
21
- const debugging = (0, index_js_3.getArgumentByName)('debuger') === 'true';
22
- // Debugging source code
55
+ const environment = (0, index_js_3.getArgumentByName)('env') || 'prod';
56
+ const debugging = (0, index_js_3.getArgumentByName)('debugger') === 'true';
57
+ // In debug mode, point to source directory; otherwise point to bundle output directory
23
58
  let electronDir = (0, index_js_3.getBundleDir)(baseDir);
24
59
  if (debugging) {
25
60
  electronDir = (0, index_js_3.getElectronCodeDir)(baseDir);
26
61
  }
27
62
  const options = {
28
- env: environmet,
63
+ env: environment,
29
64
  baseDir,
30
65
  electronDir,
31
66
  appName: index_js_2.electronApp.getName(),
@@ -36,12 +71,12 @@ class ElectronEgg {
36
71
  isPackaged: index_js_2.electronApp.isPackaged,
37
72
  execDir: baseDir,
38
73
  };
39
- // exec directory (exe dmg dep) for prod
40
- if (environmet === 'prod' && options.isPackaged) {
74
+ // In production and packaged mode, execDir is the directory of the executable (same level as exe/dmg)
75
+ if (environment === 'prod' && options.isPackaged) {
41
76
  options.execDir = path_1.default.dirname(index_js_2.electronApp.getPath('exe'));
42
77
  }
43
- // normalize env
44
- process.env.EE_ENV = environmet;
78
+ // Write runtime environment info to global variables for use by config loading, logging, and other modules
79
+ process.env.EE_ENV = environment;
45
80
  process.env.EE_APP_NAME = options.appName;
46
81
  process.env.EE_APP_VERSION = options.appVersion;
47
82
  process.env.EE_BASE_DIR = options.baseDir;
@@ -57,18 +92,46 @@ class ElectronEgg {
57
92
  this.options = options;
58
93
  this.init();
59
94
  }
95
+ /**
96
+ * Initialize framework foundational features
97
+ *
98
+ * Loading order (must not be changed):
99
+ * 1. loadException — Register global exception handling to ensure subsequent exceptions are caught
100
+ * 2. loadConfig — Load configuration files; subsequent modules depend on configuration
101
+ * 3. loadDir — Create necessary directories for data/logs
102
+ * 4. loadLog — Initialize logging system; depends on configuration and directories
103
+ */
60
104
  init() {
61
- // basic functions
62
105
  (0, index_js_1.loadException)();
63
106
  (0, index_js_4.loadConfig)();
64
107
  (0, dir_js_1.loadDir)();
65
108
  (0, index_js_5.loadLog)();
66
109
  }
110
+ /**
111
+ * Register a lifecycle event handler
112
+ * @param eventName - Lifecycle event name (e.g. 'ready', 'electron-app-ready')
113
+ * @param handler - Event handler function
114
+ */
67
115
  register(eventName, handler) {
68
116
  application_js_1.app.register(eventName, handler);
69
117
  }
70
- run() {
71
- application_js_1.app.run();
118
+ /**
119
+ * Start the application synchronously
120
+ *
121
+ * Execution flow: loadController -> loadSocket -> emitLifecycle(ready) -> loadElectron
122
+ * Controllers are loaded using synchronous require(), suitable for CJS projects
123
+ */
124
+ async run() {
125
+ await application_js_1.app.run();
126
+ }
127
+ /**
128
+ * Start the application asynchronously
129
+ *
130
+ * Execution flow: loadControllerAsync -> loadSocket -> emitLifecycle(ready) -> loadElectron
131
+ * Controllers are loaded using dynamic import(), suitable for ESM projects
132
+ */
133
+ async runAsync() {
134
+ await application_js_1.app.runAsync();
72
135
  }
73
136
  }
74
137
  exports.ElectronEgg = ElectronEgg;
@@ -1 +1 @@
1
- {"version":3,"file":"boot.js","sourceRoot":"","sources":["../../../src/app/boot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"boot.js","sourceRoot":"","sources":["../../../src/app/boot.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,12 @@
1
+ /**
2
+ * Load and initialize directories required for application runtime
3
+ *
4
+ * Creates the following directories (if they don't exist):
5
+ * - Hidden app directory under user home (~/.{appName}/) — Stores app-level configuration and cache
6
+ * - Data directory — Stores business data (e.g. SQLite database files)
7
+ * - Log directory — Stores runtime log files
8
+ *
9
+ * Directory permissions set to 0o755 (owner: read/write/execute; others: read/execute)
10
+ */
1
11
  export declare function loadDir(): void;
2
12
  //# sourceMappingURL=dir.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dir.d.ts","sourceRoot":"","sources":["../../../src/app/dir.ts"],"names":[],"mappings":"AAIA,wBAAgB,OAAO,IAAI,IAAI,CAE9B"}
1
+ {"version":3,"file":"dir.d.ts","sourceRoot":"","sources":["../../../src/app/dir.ts"],"names":[],"mappings":"AAWA;;;;;;;;;GASG;AACH,wBAAgB,OAAO,IAAI,IAAI,CAE9B"}
@@ -1,27 +1,88 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
5
38
  Object.defineProperty(exports, "__esModule", { value: true });
6
39
  exports.loadDir = loadDir;
40
+ /**
41
+ * @module app/dir
42
+ * @description Application directory initialization module. Creates necessary runtime directories
43
+ * at framework startup, including the hidden app directory under the user's home directory
44
+ * (for storing configuration, etc.), data directory, and log directory.
45
+ */
7
46
  const fs_1 = __importDefault(require("fs"));
8
47
  const index_js_1 = require("../ps/index.js");
9
48
  const helper_js_1 = require("../utils/helper.js");
49
+ const is = __importStar(require("../utils/is.js"));
50
+ /**
51
+ * Load and initialize directories required for application runtime
52
+ *
53
+ * Creates the following directories (if they don't exist):
54
+ * - Hidden app directory under user home (~/.{appName}/) — Stores app-level configuration and cache
55
+ * - Data directory — Stores business data (e.g. SQLite database files)
56
+ * - Log directory — Stores runtime log files
57
+ *
58
+ * Directory permissions set to 0o755 (owner: read/write/execute; others: read/execute)
59
+ */
10
60
  function loadDir() {
11
61
  initDir();
12
62
  }
13
63
  function initDir() {
14
- const homeHiddenAppDir = (0, index_js_1.getUserHomeHiddenAppDir)();
15
- if (!fs_1.default.existsSync(homeHiddenAppDir)) {
16
- (0, helper_js_1.mkdir)(homeHiddenAppDir, { mode: 0o755 });
17
- }
18
- const dataDir = (0, index_js_1.getDataDir)();
19
- if (!fs_1.default.existsSync(dataDir)) {
20
- (0, helper_js_1.mkdir)(dataDir, { mode: 0o755 });
64
+ // 在记录日志前,单独捕获异常
65
+ try {
66
+ // 初始化应用自定义数据目录
67
+ let customAppDir = (0, index_js_1.getUserHomeHiddenAppDir)();
68
+ // 权限问题,openharmony 环境下,自定义应用目录
69
+ if (is.openharmony()) {
70
+ customAppDir = (0, index_js_1.getAppCustomDataDir)();
71
+ }
72
+ if (!fs_1.default.existsSync(customAppDir)) {
73
+ (0, helper_js_1.mkdir)(customAppDir, { mode: 0o755 });
74
+ }
75
+ const dataDir = (0, index_js_1.getDataDir)();
76
+ if (!fs_1.default.existsSync(dataDir)) {
77
+ (0, helper_js_1.mkdir)(dataDir, { mode: 0o755 });
78
+ }
79
+ const logDir = (0, index_js_1.getLogDir)();
80
+ if (!fs_1.default.existsSync(logDir)) {
81
+ (0, helper_js_1.mkdir)(logDir, { mode: 0o755 });
82
+ }
21
83
  }
22
- const logDir = (0, index_js_1.getLogDir)();
23
- if (!fs_1.default.existsSync(logDir)) {
24
- (0, helper_js_1.mkdir)(logDir, { mode: 0o755 });
84
+ catch (e) {
85
+ console.error('[dir] initDir error: %s', e instanceof Error ? e.message : String(e));
25
86
  }
26
87
  }
27
88
  //# sourceMappingURL=dir.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dir.js","sourceRoot":"","sources":["../../../src/app/dir.ts"],"names":[],"mappings":";;;;;AAIA,0BAEC;AAND,4CAAoB;AACpB,6CAAgF;AAChF,kDAA2C;AAE3C,SAAgB,OAAO;IACrB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,OAAO;IACd,MAAM,gBAAgB,GAAG,IAAA,kCAAuB,GAAE,CAAC;IACnD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACrC,IAAA,iBAAK,EAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,OAAO,GAAG,IAAA,qBAAU,GAAE,CAAC;IAC7B,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,IAAA,iBAAK,EAAC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,MAAM,GAAG,IAAA,oBAAS,GAAE,CAAC;IAC3B,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,IAAA,iBAAK,EAAC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACjC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"dir.js","sourceRoot":"","sources":["../../../src/app/dir.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,0BAEC;AAvBD;;;;;GAKG;AACH,4CAAoB;AACpB,6CAAqG;AACrG,kDAA2C;AAC3C,mDAAqC;AAErC;;;;;;;;;GASG;AACH,SAAgB,OAAO;IACrB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,OAAO;IACd,gBAAgB;IAChB,IAAI,CAAC;QACH,eAAe;QACf,IAAI,YAAY,GAAG,IAAA,kCAAuB,GAAE,CAAC;QAC7C,+BAA+B;QAC/B,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YACrB,YAAY,GAAG,IAAA,8BAAmB,GAAE,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACjC,IAAA,iBAAK,EAAC,YAAY,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,OAAO,GAAG,IAAA,qBAAU,GAAE,CAAC;QAC7B,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,IAAA,iBAAK,EAAC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,MAAM,GAAG,IAAA,oBAAS,GAAE,CAAC;QAC3B,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,IAAA,iBAAK,EAAC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,CAAC;AACH,CAAC"}