ee-core 4.1.5 → 5.0.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (651) hide show
  1. package/dist/cjs/app/application.d.ts +41 -0
  2. package/dist/cjs/app/application.d.ts.map +1 -0
  3. package/dist/cjs/app/application.js +68 -0
  4. package/dist/cjs/app/application.js.map +1 -0
  5. package/dist/cjs/app/boot.d.ts +64 -0
  6. package/dist/cjs/app/boot.d.ts.map +1 -0
  7. package/dist/cjs/app/boot.js +138 -0
  8. package/dist/cjs/app/boot.js.map +1 -0
  9. package/dist/cjs/app/dir.d.ts +12 -0
  10. package/dist/cjs/app/dir.d.ts.map +1 -0
  11. package/dist/cjs/app/dir.js +88 -0
  12. package/dist/cjs/app/dir.js.map +1 -0
  13. package/dist/cjs/app/events.d.ts +71 -0
  14. package/dist/cjs/app/events.d.ts.map +1 -0
  15. package/dist/cjs/app/events.js +124 -0
  16. package/dist/cjs/app/events.js.map +1 -0
  17. package/dist/cjs/config/config_loader.d.ts +54 -0
  18. package/dist/cjs/config/config_loader.d.ts.map +1 -0
  19. package/dist/cjs/config/config_loader.js +137 -0
  20. package/dist/cjs/config/config_loader.js.map +1 -0
  21. package/dist/cjs/config/default_config.d.ts +8 -0
  22. package/dist/cjs/config/default_config.d.ts.map +1 -0
  23. package/dist/cjs/config/default_config.js +196 -0
  24. package/dist/cjs/config/default_config.js.map +1 -0
  25. package/dist/cjs/config/index.d.ts +34 -0
  26. package/dist/cjs/config/index.d.ts.map +1 -0
  27. package/dist/cjs/config/index.js +69 -0
  28. package/dist/cjs/config/index.js.map +1 -0
  29. package/dist/cjs/const/channel.d.ts +34 -0
  30. package/dist/cjs/const/channel.d.ts.map +1 -0
  31. package/dist/cjs/const/channel.js +37 -0
  32. package/dist/cjs/const/channel.js.map +1 -0
  33. package/dist/cjs/controller/controller_loader.d.ts +29 -0
  34. package/dist/cjs/controller/controller_loader.d.ts.map +1 -0
  35. package/dist/cjs/controller/controller_loader.js +158 -0
  36. package/dist/cjs/controller/controller_loader.js.map +1 -0
  37. package/dist/cjs/controller/index.d.ts +36 -0
  38. package/dist/cjs/controller/index.d.ts.map +1 -0
  39. package/dist/cjs/controller/index.js +88 -0
  40. package/dist/cjs/controller/index.js.map +1 -0
  41. package/dist/cjs/core/loader/file_loader.d.ts +112 -0
  42. package/dist/cjs/core/loader/file_loader.d.ts.map +1 -0
  43. package/dist/cjs/core/loader/file_loader.js +283 -0
  44. package/dist/cjs/core/loader/file_loader.js.map +1 -0
  45. package/dist/cjs/core/utils/index.d.ts +70 -0
  46. package/dist/cjs/core/utils/index.d.ts.map +1 -0
  47. package/dist/cjs/core/utils/index.js +181 -0
  48. package/dist/cjs/core/utils/index.js.map +1 -0
  49. package/dist/cjs/core/utils/timing.d.ts +65 -0
  50. package/dist/cjs/core/utils/timing.d.ts.map +1 -0
  51. package/dist/cjs/core/utils/timing.js +107 -0
  52. package/dist/cjs/core/utils/timing.js.map +1 -0
  53. package/dist/cjs/cross/cross.d.ts +104 -0
  54. package/dist/cjs/cross/cross.d.ts.map +1 -0
  55. package/dist/cjs/cross/cross.js +202 -0
  56. package/dist/cjs/cross/cross.js.map +1 -0
  57. package/dist/cjs/cross/crossProcess.d.ts +118 -0
  58. package/dist/cjs/cross/crossProcess.d.ts.map +1 -0
  59. package/dist/cjs/cross/crossProcess.js +262 -0
  60. package/dist/cjs/cross/crossProcess.js.map +1 -0
  61. package/dist/cjs/cross/index.d.ts +4 -0
  62. package/dist/cjs/cross/index.d.ts.map +1 -0
  63. package/dist/cjs/cross/index.js +9 -0
  64. package/dist/cjs/cross/index.js.map +1 -0
  65. package/dist/cjs/electron/app/index.d.ts +23 -0
  66. package/dist/cjs/electron/app/index.d.ts.map +1 -0
  67. package/dist/cjs/electron/app/index.js +99 -0
  68. package/dist/cjs/electron/app/index.js.map +1 -0
  69. package/dist/cjs/electron/index.d.ts +10 -0
  70. package/dist/cjs/electron/index.d.ts.map +1 -0
  71. package/dist/cjs/electron/index.js +35 -0
  72. package/dist/cjs/electron/index.js.map +1 -0
  73. package/dist/cjs/electron/window/index.d.ts +45 -0
  74. package/dist/cjs/electron/window/index.d.ts.map +1 -0
  75. package/dist/cjs/electron/window/index.js +311 -0
  76. package/dist/cjs/electron/window/index.js.map +1 -0
  77. package/dist/cjs/exception/index.d.ts +15 -0
  78. package/dist/cjs/exception/index.d.ts.map +1 -0
  79. package/dist/cjs/exception/index.js +145 -0
  80. package/dist/cjs/exception/index.js.map +1 -0
  81. package/dist/cjs/html/index.d.ts +21 -0
  82. package/dist/cjs/html/index.d.ts.map +1 -0
  83. package/dist/cjs/html/index.js +59 -0
  84. package/dist/cjs/html/index.js.map +1 -0
  85. package/dist/cjs/index.d.ts +60 -0
  86. package/dist/cjs/index.d.ts.map +1 -0
  87. package/dist/cjs/index.js +245 -0
  88. package/dist/cjs/index.js.map +1 -0
  89. package/dist/cjs/jobs/child/app.d.ts +2 -0
  90. package/dist/cjs/jobs/child/app.d.ts.map +1 -0
  91. package/dist/cjs/jobs/child/app.js +132 -0
  92. package/dist/cjs/jobs/child/app.js.map +1 -0
  93. package/dist/cjs/jobs/child/index.d.ts +29 -0
  94. package/dist/cjs/jobs/child/index.d.ts.map +1 -0
  95. package/dist/cjs/jobs/child/index.js +78 -0
  96. package/dist/cjs/jobs/child/index.js.map +1 -0
  97. package/dist/cjs/jobs/child/jobProcess.d.ts +102 -0
  98. package/dist/cjs/jobs/child/jobProcess.d.ts.map +1 -0
  99. package/dist/cjs/jobs/child/jobProcess.js +196 -0
  100. package/dist/cjs/jobs/child/jobProcess.js.map +1 -0
  101. package/dist/cjs/jobs/child-pool/index.d.ts +126 -0
  102. package/dist/cjs/jobs/child-pool/index.d.ts.map +1 -0
  103. package/dist/cjs/jobs/child-pool/index.js +252 -0
  104. package/dist/cjs/jobs/child-pool/index.js.map +1 -0
  105. package/dist/cjs/jobs/index.d.ts +18 -0
  106. package/dist/cjs/jobs/index.d.ts.map +1 -0
  107. package/dist/cjs/jobs/index.js +22 -0
  108. package/dist/cjs/jobs/index.js.map +1 -0
  109. package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts +7 -0
  110. package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts.map +1 -0
  111. package/dist/cjs/jobs/load-balancer/algorithm/index.js +32 -0
  112. package/dist/cjs/jobs/load-balancer/algorithm/index.js.map +1 -0
  113. package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.d.ts +6 -0
  114. package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.d.ts.map +1 -0
  115. package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.js +27 -0
  116. package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.js.map +1 -0
  117. package/dist/cjs/jobs/load-balancer/algorithm/polling.d.ts +6 -0
  118. package/dist/cjs/jobs/load-balancer/algorithm/polling.d.ts.map +1 -0
  119. package/dist/cjs/jobs/load-balancer/algorithm/polling.js +15 -0
  120. package/dist/cjs/jobs/load-balancer/algorithm/polling.js.map +1 -0
  121. package/dist/cjs/jobs/load-balancer/algorithm/random.d.ts +6 -0
  122. package/dist/cjs/jobs/load-balancer/algorithm/random.d.ts.map +1 -0
  123. package/dist/cjs/jobs/load-balancer/algorithm/random.js +12 -0
  124. package/dist/cjs/jobs/load-balancer/algorithm/random.js.map +1 -0
  125. package/dist/cjs/jobs/load-balancer/algorithm/specify.d.ts +6 -0
  126. package/dist/cjs/jobs/load-balancer/algorithm/specify.d.ts.map +1 -0
  127. package/dist/cjs/jobs/load-balancer/algorithm/specify.js +18 -0
  128. package/dist/cjs/jobs/load-balancer/algorithm/specify.js.map +1 -0
  129. package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts +6 -0
  130. package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts.map +1 -0
  131. package/dist/cjs/jobs/load-balancer/algorithm/weights.js +26 -0
  132. package/dist/cjs/jobs/load-balancer/algorithm/weights.js.map +1 -0
  133. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +6 -0
  134. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -0
  135. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js +32 -0
  136. package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -0
  137. package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.d.ts +6 -0
  138. package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.d.ts.map +1 -0
  139. package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.js +26 -0
  140. package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.js.map +1 -0
  141. package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.d.ts +6 -0
  142. package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.d.ts.map +1 -0
  143. package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.js +22 -0
  144. package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.js.map +1 -0
  145. package/dist/cjs/jobs/load-balancer/consts.d.ts +35 -0
  146. package/dist/cjs/jobs/load-balancer/consts.d.ts.map +1 -0
  147. package/dist/cjs/jobs/load-balancer/consts.js +36 -0
  148. package/dist/cjs/jobs/load-balancer/consts.js.map +1 -0
  149. package/dist/cjs/jobs/load-balancer/index.d.ts +84 -0
  150. package/dist/cjs/jobs/load-balancer/index.d.ts.map +1 -0
  151. package/dist/cjs/jobs/load-balancer/index.js +195 -0
  152. package/dist/cjs/jobs/load-balancer/index.js.map +1 -0
  153. package/dist/cjs/jobs/load-balancer/scheduler.d.ts +17 -0
  154. package/dist/cjs/jobs/load-balancer/scheduler.d.ts.map +1 -0
  155. package/dist/cjs/jobs/load-balancer/scheduler.js +36 -0
  156. package/dist/cjs/jobs/load-balancer/scheduler.js.map +1 -0
  157. package/dist/cjs/jobs/load-balancer/types.d.ts +43 -0
  158. package/dist/cjs/jobs/load-balancer/types.d.ts.map +1 -0
  159. package/dist/cjs/jobs/load-balancer/types.js +7 -0
  160. package/dist/cjs/jobs/load-balancer/types.js.map +1 -0
  161. package/dist/cjs/jobs/registry.d.ts +24 -0
  162. package/dist/cjs/jobs/registry.d.ts.map +1 -0
  163. package/dist/cjs/jobs/registry.js +52 -0
  164. package/dist/cjs/jobs/registry.js.map +1 -0
  165. package/dist/cjs/loader/index.d.ts +58 -0
  166. package/dist/cjs/loader/index.d.ts.map +1 -0
  167. package/dist/cjs/loader/index.js +151 -0
  168. package/dist/cjs/loader/index.js.map +1 -0
  169. package/dist/cjs/log/index.d.ts +59 -0
  170. package/dist/cjs/log/index.d.ts.map +1 -0
  171. package/dist/cjs/log/index.js +123 -0
  172. package/dist/cjs/log/index.js.map +1 -0
  173. package/dist/cjs/log/logger.d.ts +35 -0
  174. package/dist/cjs/log/logger.d.ts.map +1 -0
  175. package/dist/cjs/log/logger.js +246 -0
  176. package/dist/cjs/log/logger.js.map +1 -0
  177. package/dist/cjs/message/childMessage.d.ts +58 -0
  178. package/dist/cjs/message/childMessage.d.ts.map +1 -0
  179. package/dist/cjs/message/childMessage.js +118 -0
  180. package/dist/cjs/message/childMessage.js.map +1 -0
  181. package/dist/cjs/message/index.d.ts +2 -0
  182. package/dist/cjs/message/index.d.ts.map +1 -0
  183. package/dist/cjs/message/index.js +7 -0
  184. package/dist/cjs/message/index.js.map +1 -0
  185. package/dist/cjs/ps/index.d.ts +155 -0
  186. package/dist/cjs/ps/index.d.ts.map +1 -0
  187. package/dist/cjs/ps/index.js +369 -0
  188. package/dist/cjs/ps/index.js.map +1 -0
  189. package/dist/cjs/socket/httpServer.d.ts +74 -0
  190. package/dist/cjs/socket/httpServer.d.ts.map +1 -0
  191. package/dist/cjs/socket/httpServer.js +240 -0
  192. package/dist/cjs/socket/httpServer.js.map +1 -0
  193. package/dist/cjs/socket/index.d.ts +60 -0
  194. package/dist/cjs/socket/index.d.ts.map +1 -0
  195. package/dist/cjs/socket/index.js +103 -0
  196. package/dist/cjs/socket/index.js.map +1 -0
  197. package/dist/cjs/socket/ipcServer.d.ts +40 -0
  198. package/dist/cjs/socket/ipcServer.d.ts.map +1 -0
  199. package/dist/cjs/socket/ipcServer.js +124 -0
  200. package/dist/cjs/socket/ipcServer.js.map +1 -0
  201. package/dist/cjs/socket/socketServer.d.ts +43 -0
  202. package/dist/cjs/socket/socketServer.d.ts.map +1 -0
  203. package/dist/cjs/socket/socketServer.js +116 -0
  204. package/dist/cjs/socket/socketServer.js.map +1 -0
  205. package/dist/cjs/socket/utils.d.ts +13 -0
  206. package/dist/cjs/socket/utils.d.ts.map +1 -0
  207. package/dist/cjs/socket/utils.js +41 -0
  208. package/dist/cjs/socket/utils.js.map +1 -0
  209. package/dist/cjs/storage/index.d.ts +2 -0
  210. package/dist/cjs/storage/index.d.ts.map +1 -0
  211. package/dist/cjs/storage/index.js +6 -0
  212. package/dist/cjs/storage/index.js.map +1 -0
  213. package/dist/cjs/storage/sqliteStorage.d.ts +117 -0
  214. package/dist/cjs/storage/sqliteStorage.d.ts.map +1 -0
  215. package/dist/cjs/storage/sqliteStorage.js +197 -0
  216. package/dist/cjs/storage/sqliteStorage.js.map +1 -0
  217. package/dist/cjs/types/index.d.ts +524 -0
  218. package/dist/cjs/types/index.d.ts.map +1 -0
  219. package/dist/cjs/types/index.js +3 -0
  220. package/dist/cjs/types/index.js.map +1 -0
  221. package/dist/cjs/utils/extend.d.ts +46 -0
  222. package/dist/cjs/utils/extend.d.ts.map +1 -0
  223. package/dist/cjs/utils/extend.js +105 -0
  224. package/dist/cjs/utils/extend.js.map +1 -0
  225. package/dist/cjs/utils/helper.d.ts +169 -0
  226. package/dist/cjs/utils/helper.d.ts.map +1 -0
  227. package/dist/cjs/utils/helper.js +351 -0
  228. package/dist/cjs/utils/helper.js.map +1 -0
  229. package/dist/cjs/utils/index.d.ts +113 -0
  230. package/dist/cjs/utils/index.d.ts.map +1 -0
  231. package/dist/cjs/utils/index.js +344 -0
  232. package/dist/cjs/utils/index.js.map +1 -0
  233. package/dist/cjs/utils/ip.d.ts +42 -0
  234. package/dist/cjs/utils/ip.d.ts.map +1 -0
  235. package/dist/cjs/utils/ip.js +276 -0
  236. package/dist/cjs/utils/ip.js.map +1 -0
  237. package/dist/cjs/utils/is.d.ts +138 -0
  238. package/dist/cjs/utils/is.d.ts.map +1 -0
  239. package/dist/cjs/utils/is.js +203 -0
  240. package/dist/cjs/utils/is.js.map +1 -0
  241. package/dist/cjs/utils/json.d.ts +64 -0
  242. package/dist/cjs/utils/json.d.ts.map +1 -0
  243. package/dist/cjs/utils/json.js +122 -0
  244. package/dist/cjs/utils/json.js.map +1 -0
  245. package/dist/cjs/utils/pargv.d.ts +67 -0
  246. package/dist/cjs/utils/pargv.d.ts.map +1 -0
  247. package/dist/cjs/utils/pargv.js +406 -0
  248. package/dist/cjs/utils/pargv.js.map +1 -0
  249. package/dist/cjs/utils/port/index.d.ts +48 -0
  250. package/dist/cjs/utils/port/index.d.ts.map +1 -0
  251. package/dist/cjs/utils/port/index.js +235 -0
  252. package/dist/cjs/utils/port/index.js.map +1 -0
  253. package/dist/cjs/utils/type_check.d.ts +88 -0
  254. package/dist/cjs/utils/type_check.d.ts.map +1 -0
  255. package/dist/cjs/utils/type_check.js +121 -0
  256. package/dist/cjs/utils/type_check.js.map +1 -0
  257. package/dist/cjs/utils/wrap.d.ts +31 -0
  258. package/dist/cjs/utils/wrap.d.ts.map +1 -0
  259. package/dist/cjs/utils/wrap.js +88 -0
  260. package/dist/cjs/utils/wrap.js.map +1 -0
  261. package/dist/esm/app/application.d.ts +41 -0
  262. package/dist/esm/app/application.d.ts.map +1 -0
  263. package/dist/esm/app/application.js +68 -0
  264. package/dist/esm/app/application.js.map +1 -0
  265. package/dist/esm/app/boot.d.ts +64 -0
  266. package/dist/esm/app/boot.d.ts.map +1 -0
  267. package/dist/esm/app/boot.js +138 -0
  268. package/dist/esm/app/boot.js.map +1 -0
  269. package/dist/esm/app/dir.d.ts +12 -0
  270. package/dist/esm/app/dir.d.ts.map +1 -0
  271. package/dist/esm/app/dir.js +88 -0
  272. package/dist/esm/app/dir.js.map +1 -0
  273. package/dist/esm/app/events.d.ts +71 -0
  274. package/dist/esm/app/events.d.ts.map +1 -0
  275. package/dist/esm/app/events.js +124 -0
  276. package/dist/esm/app/events.js.map +1 -0
  277. package/dist/esm/config/config_loader.d.ts +54 -0
  278. package/dist/esm/config/config_loader.d.ts.map +1 -0
  279. package/dist/esm/config/config_loader.js +137 -0
  280. package/dist/esm/config/config_loader.js.map +1 -0
  281. package/dist/esm/config/default_config.d.ts +8 -0
  282. package/dist/esm/config/default_config.d.ts.map +1 -0
  283. package/dist/esm/config/default_config.js +196 -0
  284. package/dist/esm/config/default_config.js.map +1 -0
  285. package/dist/esm/config/index.d.ts +34 -0
  286. package/dist/esm/config/index.d.ts.map +1 -0
  287. package/dist/esm/config/index.js +69 -0
  288. package/dist/esm/config/index.js.map +1 -0
  289. package/dist/esm/const/channel.d.ts +34 -0
  290. package/dist/esm/const/channel.d.ts.map +1 -0
  291. package/dist/esm/const/channel.js +37 -0
  292. package/dist/esm/const/channel.js.map +1 -0
  293. package/dist/esm/controller/controller_loader.d.ts +29 -0
  294. package/dist/esm/controller/controller_loader.d.ts.map +1 -0
  295. package/dist/esm/controller/controller_loader.js +158 -0
  296. package/dist/esm/controller/controller_loader.js.map +1 -0
  297. package/dist/esm/controller/index.d.ts +36 -0
  298. package/dist/esm/controller/index.d.ts.map +1 -0
  299. package/dist/esm/controller/index.js +88 -0
  300. package/dist/esm/controller/index.js.map +1 -0
  301. package/dist/esm/core/loader/file_loader.d.ts +112 -0
  302. package/dist/esm/core/loader/file_loader.d.ts.map +1 -0
  303. package/dist/esm/core/loader/file_loader.js +283 -0
  304. package/dist/esm/core/loader/file_loader.js.map +1 -0
  305. package/dist/esm/core/utils/index.d.ts +70 -0
  306. package/dist/esm/core/utils/index.d.ts.map +1 -0
  307. package/dist/esm/core/utils/index.js +148 -0
  308. package/dist/esm/core/utils/index.js.map +1 -0
  309. package/dist/esm/core/utils/timing.d.ts +65 -0
  310. package/dist/esm/core/utils/timing.d.ts.map +1 -0
  311. package/dist/esm/core/utils/timing.js +107 -0
  312. package/dist/esm/core/utils/timing.js.map +1 -0
  313. package/dist/esm/cross/cross.d.ts +104 -0
  314. package/dist/esm/cross/cross.d.ts.map +1 -0
  315. package/dist/esm/cross/cross.js +202 -0
  316. package/dist/esm/cross/cross.js.map +1 -0
  317. package/dist/esm/cross/crossProcess.d.ts +118 -0
  318. package/dist/esm/cross/crossProcess.d.ts.map +1 -0
  319. package/dist/esm/cross/crossProcess.js +262 -0
  320. package/dist/esm/cross/crossProcess.js.map +1 -0
  321. package/dist/esm/cross/index.d.ts +4 -0
  322. package/dist/esm/cross/index.d.ts.map +1 -0
  323. package/dist/esm/cross/index.js +9 -0
  324. package/dist/esm/cross/index.js.map +1 -0
  325. package/dist/esm/electron/app/index.d.ts +23 -0
  326. package/dist/esm/electron/app/index.d.ts.map +1 -0
  327. package/dist/esm/electron/app/index.js +99 -0
  328. package/dist/esm/electron/app/index.js.map +1 -0
  329. package/dist/esm/electron/index.d.ts +10 -0
  330. package/dist/esm/electron/index.d.ts.map +1 -0
  331. package/dist/esm/electron/index.js +35 -0
  332. package/dist/esm/electron/index.js.map +1 -0
  333. package/dist/esm/electron/window/index.d.ts +45 -0
  334. package/dist/esm/electron/window/index.d.ts.map +1 -0
  335. package/dist/esm/electron/window/index.js +311 -0
  336. package/dist/esm/electron/window/index.js.map +1 -0
  337. package/dist/esm/exception/index.d.ts +15 -0
  338. package/dist/esm/exception/index.d.ts.map +1 -0
  339. package/dist/esm/exception/index.js +145 -0
  340. package/dist/esm/exception/index.js.map +1 -0
  341. package/dist/esm/html/index.d.ts +21 -0
  342. package/dist/esm/html/index.d.ts.map +1 -0
  343. package/dist/esm/html/index.js +59 -0
  344. package/dist/esm/html/index.js.map +1 -0
  345. package/dist/esm/index.d.ts +60 -0
  346. package/dist/esm/index.d.ts.map +1 -0
  347. package/dist/esm/index.js +245 -0
  348. package/dist/esm/index.js.map +1 -0
  349. package/dist/esm/jobs/child/app.d.ts +2 -0
  350. package/dist/esm/jobs/child/app.d.ts.map +1 -0
  351. package/dist/esm/jobs/child/app.js +132 -0
  352. package/dist/esm/jobs/child/app.js.map +1 -0
  353. package/dist/esm/jobs/child/index.d.ts +29 -0
  354. package/dist/esm/jobs/child/index.d.ts.map +1 -0
  355. package/dist/esm/jobs/child/index.js +78 -0
  356. package/dist/esm/jobs/child/index.js.map +1 -0
  357. package/dist/esm/jobs/child/jobProcess.d.ts +102 -0
  358. package/dist/esm/jobs/child/jobProcess.d.ts.map +1 -0
  359. package/dist/esm/jobs/child/jobProcess.js +196 -0
  360. package/dist/esm/jobs/child/jobProcess.js.map +1 -0
  361. package/dist/esm/jobs/child-pool/index.d.ts +126 -0
  362. package/dist/esm/jobs/child-pool/index.d.ts.map +1 -0
  363. package/dist/esm/jobs/child-pool/index.js +252 -0
  364. package/dist/esm/jobs/child-pool/index.js.map +1 -0
  365. package/dist/esm/jobs/index.d.ts +18 -0
  366. package/dist/esm/jobs/index.d.ts.map +1 -0
  367. package/dist/esm/jobs/index.js +22 -0
  368. package/dist/esm/jobs/index.js.map +1 -0
  369. package/dist/esm/jobs/load-balancer/algorithm/index.d.ts +7 -0
  370. package/dist/esm/jobs/load-balancer/algorithm/index.d.ts.map +1 -0
  371. package/dist/esm/jobs/load-balancer/algorithm/index.js +32 -0
  372. package/dist/esm/jobs/load-balancer/algorithm/index.js.map +1 -0
  373. package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.d.ts +6 -0
  374. package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.d.ts.map +1 -0
  375. package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.js +27 -0
  376. package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.js.map +1 -0
  377. package/dist/esm/jobs/load-balancer/algorithm/polling.d.ts +6 -0
  378. package/dist/esm/jobs/load-balancer/algorithm/polling.d.ts.map +1 -0
  379. package/dist/esm/jobs/load-balancer/algorithm/polling.js +15 -0
  380. package/dist/esm/jobs/load-balancer/algorithm/polling.js.map +1 -0
  381. package/dist/esm/jobs/load-balancer/algorithm/random.d.ts +6 -0
  382. package/dist/esm/jobs/load-balancer/algorithm/random.d.ts.map +1 -0
  383. package/dist/esm/jobs/load-balancer/algorithm/random.js +12 -0
  384. package/dist/esm/jobs/load-balancer/algorithm/random.js.map +1 -0
  385. package/dist/esm/jobs/load-balancer/algorithm/specify.d.ts +6 -0
  386. package/dist/esm/jobs/load-balancer/algorithm/specify.d.ts.map +1 -0
  387. package/dist/esm/jobs/load-balancer/algorithm/specify.js +18 -0
  388. package/dist/esm/jobs/load-balancer/algorithm/specify.js.map +1 -0
  389. package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts +6 -0
  390. package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts.map +1 -0
  391. package/dist/esm/jobs/load-balancer/algorithm/weights.js +26 -0
  392. package/dist/esm/jobs/load-balancer/algorithm/weights.js.map +1 -0
  393. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +6 -0
  394. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -0
  395. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js +32 -0
  396. package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -0
  397. package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.d.ts +6 -0
  398. package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.d.ts.map +1 -0
  399. package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.js +26 -0
  400. package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.js.map +1 -0
  401. package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.d.ts +6 -0
  402. package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.d.ts.map +1 -0
  403. package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.js +22 -0
  404. package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.js.map +1 -0
  405. package/dist/esm/jobs/load-balancer/consts.d.ts +35 -0
  406. package/dist/esm/jobs/load-balancer/consts.d.ts.map +1 -0
  407. package/dist/esm/jobs/load-balancer/consts.js +36 -0
  408. package/dist/esm/jobs/load-balancer/consts.js.map +1 -0
  409. package/dist/esm/jobs/load-balancer/index.d.ts +84 -0
  410. package/dist/esm/jobs/load-balancer/index.d.ts.map +1 -0
  411. package/dist/esm/jobs/load-balancer/index.js +195 -0
  412. package/dist/esm/jobs/load-balancer/index.js.map +1 -0
  413. package/dist/esm/jobs/load-balancer/scheduler.d.ts +17 -0
  414. package/dist/esm/jobs/load-balancer/scheduler.d.ts.map +1 -0
  415. package/dist/esm/jobs/load-balancer/scheduler.js +36 -0
  416. package/dist/esm/jobs/load-balancer/scheduler.js.map +1 -0
  417. package/dist/esm/jobs/load-balancer/types.d.ts +43 -0
  418. package/dist/esm/jobs/load-balancer/types.d.ts.map +1 -0
  419. package/dist/esm/jobs/load-balancer/types.js +7 -0
  420. package/dist/esm/jobs/load-balancer/types.js.map +1 -0
  421. package/dist/esm/jobs/registry.d.ts +24 -0
  422. package/dist/esm/jobs/registry.d.ts.map +1 -0
  423. package/dist/esm/jobs/registry.js +52 -0
  424. package/dist/esm/jobs/registry.js.map +1 -0
  425. package/dist/esm/loader/index.d.ts +58 -0
  426. package/dist/esm/loader/index.d.ts.map +1 -0
  427. package/dist/esm/loader/index.js +151 -0
  428. package/dist/esm/loader/index.js.map +1 -0
  429. package/dist/esm/log/index.d.ts +59 -0
  430. package/dist/esm/log/index.d.ts.map +1 -0
  431. package/dist/esm/log/index.js +123 -0
  432. package/dist/esm/log/index.js.map +1 -0
  433. package/dist/esm/log/logger.d.ts +35 -0
  434. package/dist/esm/log/logger.d.ts.map +1 -0
  435. package/dist/esm/log/logger.js +246 -0
  436. package/dist/esm/log/logger.js.map +1 -0
  437. package/dist/esm/message/childMessage.d.ts +58 -0
  438. package/dist/esm/message/childMessage.d.ts.map +1 -0
  439. package/dist/esm/message/childMessage.js +118 -0
  440. package/dist/esm/message/childMessage.js.map +1 -0
  441. package/dist/esm/message/index.d.ts +2 -0
  442. package/dist/esm/message/index.d.ts.map +1 -0
  443. package/dist/esm/message/index.js +7 -0
  444. package/dist/esm/message/index.js.map +1 -0
  445. package/dist/esm/ps/index.d.ts +155 -0
  446. package/dist/esm/ps/index.d.ts.map +1 -0
  447. package/dist/esm/ps/index.js +369 -0
  448. package/dist/esm/ps/index.js.map +1 -0
  449. package/dist/esm/socket/httpServer.d.ts +74 -0
  450. package/dist/esm/socket/httpServer.d.ts.map +1 -0
  451. package/dist/esm/socket/httpServer.js +240 -0
  452. package/dist/esm/socket/httpServer.js.map +1 -0
  453. package/dist/esm/socket/index.d.ts +60 -0
  454. package/dist/esm/socket/index.d.ts.map +1 -0
  455. package/dist/esm/socket/index.js +103 -0
  456. package/dist/esm/socket/index.js.map +1 -0
  457. package/dist/esm/socket/ipcServer.d.ts +40 -0
  458. package/dist/esm/socket/ipcServer.d.ts.map +1 -0
  459. package/dist/esm/socket/ipcServer.js +124 -0
  460. package/dist/esm/socket/ipcServer.js.map +1 -0
  461. package/dist/esm/socket/socketServer.d.ts +43 -0
  462. package/dist/esm/socket/socketServer.d.ts.map +1 -0
  463. package/dist/esm/socket/socketServer.js +116 -0
  464. package/dist/esm/socket/socketServer.js.map +1 -0
  465. package/dist/esm/socket/utils.d.ts +13 -0
  466. package/dist/esm/socket/utils.d.ts.map +1 -0
  467. package/dist/esm/socket/utils.js +41 -0
  468. package/dist/esm/socket/utils.js.map +1 -0
  469. package/dist/esm/storage/index.d.ts +2 -0
  470. package/dist/esm/storage/index.d.ts.map +1 -0
  471. package/dist/esm/storage/index.js +6 -0
  472. package/dist/esm/storage/index.js.map +1 -0
  473. package/dist/esm/storage/sqliteStorage.d.ts +117 -0
  474. package/dist/esm/storage/sqliteStorage.d.ts.map +1 -0
  475. package/dist/esm/storage/sqliteStorage.js +197 -0
  476. package/dist/esm/storage/sqliteStorage.js.map +1 -0
  477. package/dist/esm/types/index.d.ts +524 -0
  478. package/dist/esm/types/index.d.ts.map +1 -0
  479. package/dist/esm/types/index.js +3 -0
  480. package/dist/esm/types/index.js.map +1 -0
  481. package/dist/esm/utils/extend.d.ts +46 -0
  482. package/dist/esm/utils/extend.d.ts.map +1 -0
  483. package/dist/esm/utils/extend.js +105 -0
  484. package/dist/esm/utils/extend.js.map +1 -0
  485. package/dist/esm/utils/helper.d.ts +169 -0
  486. package/dist/esm/utils/helper.d.ts.map +1 -0
  487. package/dist/esm/utils/helper.js +351 -0
  488. package/dist/esm/utils/helper.js.map +1 -0
  489. package/dist/esm/utils/index.d.ts +113 -0
  490. package/dist/esm/utils/index.d.ts.map +1 -0
  491. package/dist/esm/utils/index.js +344 -0
  492. package/dist/esm/utils/index.js.map +1 -0
  493. package/dist/esm/utils/ip.d.ts +42 -0
  494. package/dist/esm/utils/ip.d.ts.map +1 -0
  495. package/dist/esm/utils/ip.js +276 -0
  496. package/dist/esm/utils/ip.js.map +1 -0
  497. package/dist/esm/utils/is.d.ts +138 -0
  498. package/dist/esm/utils/is.d.ts.map +1 -0
  499. package/dist/esm/utils/is.js +203 -0
  500. package/dist/esm/utils/is.js.map +1 -0
  501. package/dist/esm/utils/json.d.ts +64 -0
  502. package/dist/esm/utils/json.d.ts.map +1 -0
  503. package/dist/esm/utils/json.js +122 -0
  504. package/dist/esm/utils/json.js.map +1 -0
  505. package/dist/esm/utils/pargv.d.ts +67 -0
  506. package/dist/esm/utils/pargv.d.ts.map +1 -0
  507. package/dist/esm/utils/pargv.js +406 -0
  508. package/dist/esm/utils/pargv.js.map +1 -0
  509. package/dist/esm/utils/port/index.d.ts +48 -0
  510. package/dist/esm/utils/port/index.d.ts.map +1 -0
  511. package/dist/esm/utils/port/index.js +235 -0
  512. package/dist/esm/utils/port/index.js.map +1 -0
  513. package/dist/esm/utils/type_check.d.ts +88 -0
  514. package/dist/esm/utils/type_check.d.ts.map +1 -0
  515. package/dist/esm/utils/type_check.js +121 -0
  516. package/dist/esm/utils/type_check.js.map +1 -0
  517. package/dist/esm/utils/wrap.d.ts +31 -0
  518. package/dist/esm/utils/wrap.d.ts.map +1 -0
  519. package/dist/esm/utils/wrap.js +88 -0
  520. package/dist/esm/utils/wrap.js.map +1 -0
  521. package/package.json +424 -27
  522. package/LICENSE +0 -21
  523. package/README.md +0 -66
  524. package/app/application.d.ts +0 -5
  525. package/app/application.js +0 -31
  526. package/app/boot.d.ts +0 -5
  527. package/app/boot.js +0 -81
  528. package/app/dir.d.ts +0 -1
  529. package/app/dir.js +0 -27
  530. package/app/events.d.ts +0 -14
  531. package/app/events.js +0 -56
  532. package/app/index.d.ts +0 -2
  533. package/app/index.js +0 -7
  534. package/config/config_loader.d.ts +0 -13
  535. package/config/config_loader.js +0 -66
  536. package/config/default_config.d.ts +0 -95
  537. package/config/default_config.js +0 -111
  538. package/config/index.d.ts +0 -28
  539. package/config/index.js +0 -25
  540. package/const/channel.d.ts +0 -16
  541. package/const/channel.js +0 -28
  542. package/controller/controller_loader.d.ts +0 -9
  543. package/controller/controller_loader.js +0 -78
  544. package/controller/index.d.ts +0 -2
  545. package/controller/index.js +0 -24
  546. package/core/index.d.ts +0 -2
  547. package/core/index.js +0 -12
  548. package/core/loader/file_loader.d.ts +0 -66
  549. package/core/loader/file_loader.js +0 -212
  550. package/core/utils/index.d.ts +0 -12
  551. package/core/utils/index.js +0 -83
  552. package/core/utils/timing.d.ts +0 -22
  553. package/core/utils/timing.js +0 -78
  554. package/cross/cross.d.ts +0 -19
  555. package/cross/cross.js +0 -153
  556. package/cross/crossProcess.d.ts +0 -29
  557. package/cross/crossProcess.js +0 -173
  558. package/cross/index.d.ts +0 -2
  559. package/cross/index.js +0 -8
  560. package/electron/app/index.d.ts +0 -5
  561. package/electron/app/index.js +0 -48
  562. package/electron/index.d.ts +0 -3
  563. package/electron/index.js +0 -16
  564. package/electron/window/index.d.ts +0 -6
  565. package/electron/window/index.js +0 -269
  566. package/exception/index.d.ts +0 -9
  567. package/exception/index.js +0 -101
  568. package/html/boot.html +0 -98
  569. package/html/cross-failure.html +0 -28
  570. package/html/failure.html +0 -28
  571. package/html/index.d.ts +0 -1
  572. package/html/index.js +0 -11
  573. package/index.d.ts +0 -2
  574. package/index.js +0 -7
  575. package/jobs/child/app.d.ts +0 -1
  576. package/jobs/child/app.js +0 -70
  577. package/jobs/child/index.d.ts +0 -13
  578. package/jobs/child/index.js +0 -85
  579. package/jobs/child/jobProcess.d.ts +0 -16
  580. package/jobs/child/jobProcess.js +0 -134
  581. package/jobs/child-pool/index.d.ts +0 -26
  582. package/jobs/child-pool/index.js +0 -190
  583. package/jobs/index.d.ts +0 -3
  584. package/jobs/index.js +0 -7
  585. package/jobs/load-balancer/algorithm/index.d.ts +0 -4
  586. package/jobs/load-balancer/algorithm/index.js +0 -12
  587. package/jobs/load-balancer/algorithm/minimumConnection.d.ts +0 -2
  588. package/jobs/load-balancer/algorithm/minimumConnection.js +0 -19
  589. package/jobs/load-balancer/algorithm/polling.d.ts +0 -2
  590. package/jobs/load-balancer/algorithm/polling.js +0 -12
  591. package/jobs/load-balancer/algorithm/random.d.ts +0 -2
  592. package/jobs/load-balancer/algorithm/random.js +0 -10
  593. package/jobs/load-balancer/algorithm/specify.d.ts +0 -2
  594. package/jobs/load-balancer/algorithm/specify.js +0 -15
  595. package/jobs/load-balancer/algorithm/weights.d.ts +0 -2
  596. package/jobs/load-balancer/algorithm/weights.js +0 -22
  597. package/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +0 -2
  598. package/jobs/load-balancer/algorithm/weightsMinimumConnection.js +0 -30
  599. package/jobs/load-balancer/algorithm/weightsPolling.d.ts +0 -2
  600. package/jobs/load-balancer/algorithm/weightsPolling.js +0 -23
  601. package/jobs/load-balancer/algorithm/weightsRandom.d.ts +0 -2
  602. package/jobs/load-balancer/algorithm/weightsRandom.js +0 -17
  603. package/jobs/load-balancer/consts.d.ts +0 -8
  604. package/jobs/load-balancer/consts.js +0 -10
  605. package/jobs/load-balancer/index.d.ts +0 -96
  606. package/jobs/load-balancer/index.js +0 -202
  607. package/jobs/load-balancer/scheduler.d.ts +0 -16
  608. package/jobs/load-balancer/scheduler.js +0 -32
  609. package/loader/index.d.ts +0 -9
  610. package/loader/index.js +0 -99
  611. package/log/index.d.ts +0 -5
  612. package/log/index.js +0 -86
  613. package/log/logger.d.ts +0 -2
  614. package/log/logger.js +0 -95
  615. package/message/childMessage.d.ts +0 -10
  616. package/message/childMessage.js +0 -43
  617. package/message/index.d.ts +0 -3
  618. package/message/index.js +0 -10
  619. package/ps/index.d.ts +0 -39
  620. package/ps/index.js +0 -295
  621. package/socket/httpServer.d.ts +0 -8
  622. package/socket/httpServer.js +0 -199
  623. package/socket/index.d.ts +0 -10
  624. package/socket/index.js +0 -65
  625. package/socket/ipcServer.d.ts +0 -9
  626. package/socket/ipcServer.js +0 -106
  627. package/socket/socketServer.d.ts +0 -10
  628. package/socket/socketServer.js +0 -82
  629. package/storage/index.d.ts +0 -5
  630. package/storage/index.js +0 -7
  631. package/storage/sqliteStorage.d.ts +0 -16
  632. package/storage/sqliteStorage.js +0 -124
  633. package/tsconfig.json +0 -14
  634. package/utils/extend.d.ts +0 -2
  635. package/utils/extend.js +0 -78
  636. package/utils/helper.d.ts +0 -14
  637. package/utils/helper.js +0 -207
  638. package/utils/index.d.ts +0 -11
  639. package/utils/index.js +0 -198
  640. package/utils/ip.d.ts +0 -2
  641. package/utils/ip.js +0 -221
  642. package/utils/is.d.ts +0 -14
  643. package/utils/is.js +0 -112
  644. package/utils/json.d.ts +0 -5
  645. package/utils/json.js +0 -80
  646. package/utils/pargv.d.ts +0 -3
  647. package/utils/pargv.js +0 -267
  648. package/utils/port/index.d.ts +0 -1
  649. package/utils/port/index.js +0 -126
  650. package/utils/wrap.d.ts +0 -4
  651. package/utils/wrap.js +0 -41
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LoadBalancer = void 0;
4
+ const consts_js_1 = require("./consts.js");
5
+ const scheduler_js_1 = require("./scheduler.js");
6
+ /**
7
+ * Load Balancer
8
+ * @intro Based on the electron-re project with some modifications
9
+ * @since 1.0.0
10
+ */
11
+ class LoadBalancer {
12
+ /**
13
+ * @param options - Configuration options
14
+ * @param options.targets - Load balancing target list [{id: 1, weight: 1}, {id: 2, weight: 2}]
15
+ * @param options.algorithm - Algorithm name
16
+ */
17
+ constructor(options) {
18
+ this.targets = options.targets;
19
+ this.algorithm = options.algorithm || consts_js_1.AlgorithmType.polling;
20
+ this.params = {
21
+ currentIndex: 0,
22
+ weightIndex: 0,
23
+ weightTotal: 0,
24
+ connectionsMap: {},
25
+ cpuOccupancyMap: {},
26
+ memoryOccupancyMap: {},
27
+ };
28
+ this.scheduler = new scheduler_js_1.Scheduler(this.algorithm);
29
+ this.memoParams = this.memorizedParams();
30
+ this.calculateWeightIndex();
31
+ }
32
+ /**
33
+ * Algorithm parameters
34
+ */
35
+ memorizedParams() {
36
+ return {
37
+ [consts_js_1.AlgorithmType.random]: () => [],
38
+ [consts_js_1.AlgorithmType.polling]: () => [this.params.currentIndex, this.params],
39
+ [consts_js_1.AlgorithmType.weights]: () => [this.params.weightTotal, this.params],
40
+ [consts_js_1.AlgorithmType.specify]: (id) => [id],
41
+ [consts_js_1.AlgorithmType.weightsRandom]: () => [this.params.weightTotal],
42
+ [consts_js_1.AlgorithmType.weightsPolling]: () => [this.params.weightIndex, this.params.weightTotal, this.params],
43
+ [consts_js_1.AlgorithmType.minimumConnection]: () => [this.params.connectionsMap],
44
+ [consts_js_1.AlgorithmType.weightsMinimumConnection]: () => [this.params.weightTotal, this.params.connectionsMap, this.params],
45
+ };
46
+ }
47
+ /**
48
+ * Refresh parameters
49
+ */
50
+ refreshParams(pidMap) {
51
+ const infos = Object.values(pidMap);
52
+ for (const info of infos) {
53
+ this.params.cpuOccupancyMap[info.pid] = info.cpu;
54
+ this.params.memoryOccupancyMap[info.pid] = info.memory;
55
+ }
56
+ }
57
+ /**
58
+ * Elect a single process
59
+ */
60
+ pickOne(...params) {
61
+ const memoFn = this.memoParams[this.algorithm];
62
+ if (!memoFn) {
63
+ throw new Error(`No memoized params function for algorithm: ${this.algorithm}`);
64
+ }
65
+ return this.scheduler.calculate(this.targets, memoFn(...params));
66
+ }
67
+ /**
68
+ * Elect multiple processes
69
+ */
70
+ pickMulti(count = 1, ...params) {
71
+ return new Array(count).fill(null).map(() => this.pickOne(...params));
72
+ }
73
+ /**
74
+ * Calculate weights
75
+ */
76
+ calculateWeightIndex() {
77
+ this.params.weightTotal = this.targets.reduce((total, cur) => total + (cur.weight || 0), 0);
78
+ if (this.params.weightIndex > this.params.weightTotal) {
79
+ this.params.weightIndex = this.params.weightTotal;
80
+ }
81
+ }
82
+ /**
83
+ * Calculate index
84
+ */
85
+ calculateIndex() {
86
+ if (this.params.currentIndex >= this.targets.length) {
87
+ this.params.currentIndex = this.params.currentIndex - 1 >= 0 ? this.params.currentIndex - 1 : 0;
88
+ }
89
+ }
90
+ /**
91
+ * Clean data
92
+ */
93
+ clean(id) {
94
+ if (id !== undefined) {
95
+ delete this.params.connectionsMap[id];
96
+ delete this.params.cpuOccupancyMap[id];
97
+ delete this.params.memoryOccupancyMap[id];
98
+ }
99
+ else {
100
+ this.params = {
101
+ currentIndex: 0,
102
+ weightIndex: this.params.weightIndex,
103
+ weightTotal: this.params.weightTotal,
104
+ connectionsMap: {},
105
+ cpuOccupancyMap: {},
106
+ memoryOccupancyMap: {},
107
+ };
108
+ }
109
+ }
110
+ /**
111
+ * Add a process entry
112
+ */
113
+ add(task) {
114
+ if (this.targets.find(target => target.id === task.id)) {
115
+ console.warn(`Add Operation: the task ${task.id} already exists.`);
116
+ return;
117
+ }
118
+ this.targets.push(task);
119
+ this.calculateWeightIndex();
120
+ }
121
+ /**
122
+ * Delete a process entry
123
+ */
124
+ del(target) {
125
+ let found = false;
126
+ for (let i = 0; i < this.targets.length; i++) {
127
+ const t = this.targets[i];
128
+ if (t && t.id === target.id) {
129
+ this.targets.splice(i, 1);
130
+ this.clean(target.id);
131
+ this.calculateIndex();
132
+ found = true;
133
+ break;
134
+ }
135
+ }
136
+ if (found) {
137
+ this.calculateWeightIndex();
138
+ }
139
+ else {
140
+ console.warn(`Del Operation: the task ${target.id} is not found.`, this.targets);
141
+ }
142
+ }
143
+ /**
144
+ * Wipe all data
145
+ */
146
+ wipe() {
147
+ this.targets = [];
148
+ this.calculateWeightIndex();
149
+ this.clean();
150
+ }
151
+ /**
152
+ * Update calculation parameters
153
+ */
154
+ updateParams(object) {
155
+ Object.entries(object).forEach(([key, value]) => {
156
+ if (key in this.params) {
157
+ this.params[key] = value;
158
+ }
159
+ });
160
+ }
161
+ /**
162
+ * Set targets
163
+ */
164
+ setTargets(targets) {
165
+ const targetsMap = targets.reduce((total, cur) => {
166
+ total[cur.id] = 1;
167
+ return total;
168
+ }, {});
169
+ this.targets.forEach(target => {
170
+ if (!(target.id in targetsMap)) {
171
+ this.clean(target.id);
172
+ this.calculateIndex();
173
+ }
174
+ });
175
+ this.targets = targets;
176
+ this.calculateWeightIndex();
177
+ }
178
+ /**
179
+ * Set algorithm
180
+ */
181
+ setAlgorithm(algorithm) {
182
+ if (algorithm in consts_js_1.AlgorithmType) {
183
+ this.algorithm = algorithm;
184
+ this.params.weightIndex = 0;
185
+ this.scheduler.setAlgorithm(this.algorithm);
186
+ }
187
+ else {
188
+ throw new Error(`Invalid algorithm: ${algorithm}, pick from ${Object.keys(consts_js_1.AlgorithmType).join('|')}`);
189
+ }
190
+ }
191
+ }
192
+ exports.LoadBalancer = LoadBalancer;
193
+ LoadBalancer.Algorithm = consts_js_1.AlgorithmType;
194
+ exports.default = LoadBalancer;
195
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/jobs/load-balancer/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { LoadBalancerTarget } from './types.js';
2
+ /**
3
+ * Algorithm scheduler
4
+ */
5
+ export declare class Scheduler {
6
+ private algorithm;
7
+ constructor(algorithm?: string);
8
+ /**
9
+ * Calculate
10
+ */
11
+ calculate(tasks: LoadBalancerTarget[], params: unknown[]): LoadBalancerTarget | null;
12
+ /**
13
+ * Set algorithm
14
+ */
15
+ setAlgorithm(algorithm: string): void;
16
+ }
17
+ //# sourceMappingURL=scheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../../../src/jobs/load-balancer/scheduler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,SAAS,CAAS;gBAEd,SAAS,CAAC,EAAE,MAAM;IAI9B;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,kBAAkB,GAAG,IAAI;IAKpF;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;CAOtC"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Scheduler = void 0;
7
+ const consts_js_1 = require("./consts.js");
8
+ const index_js_1 = __importDefault(require("./algorithm/index.js"));
9
+ /**
10
+ * Algorithm scheduler
11
+ */
12
+ class Scheduler {
13
+ constructor(algorithm) {
14
+ this.algorithm = algorithm || consts_js_1.AlgorithmType.polling;
15
+ }
16
+ /**
17
+ * Calculate
18
+ */
19
+ calculate(tasks, params) {
20
+ const algo = index_js_1.default[this.algorithm];
21
+ return algo(tasks, ...params);
22
+ }
23
+ /**
24
+ * Set algorithm
25
+ */
26
+ setAlgorithm(algorithm) {
27
+ if (algorithm in consts_js_1.AlgorithmType) {
28
+ this.algorithm = algorithm;
29
+ }
30
+ else {
31
+ throw new Error(`Invalid algorithm: ${algorithm}, pick from ${Object.keys(consts_js_1.AlgorithmType).join('|')}`);
32
+ }
33
+ }
34
+ }
35
+ exports.Scheduler = Scheduler;
36
+ //# sourceMappingURL=scheduler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../../src/jobs/load-balancer/scheduler.ts"],"names":[],"mappings":";;;;;;AAAA,2CAA4C;AAC5C,oEAA8C;AAI9C;;GAEG;AACH,MAAa,SAAS;IAGpB,YAAY,SAAkB;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,yBAAa,CAAC,OAAO,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,KAA2B,EAAE,MAAiB;QACtD,MAAM,IAAI,GAAG,kBAAU,CAAC,IAAI,CAAC,SAAS,CAAgB,CAAC;QACvD,OAAO,IAAI,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,SAAiB;QAC5B,IAAI,SAAS,IAAI,yBAAa,EAAE,CAAC;YAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,eAAe,MAAM,CAAC,IAAI,CAAC,yBAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxG,CAAC;IACH,CAAC;CACF;AAzBD,8BAyBC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * @module jobs/load-balancer/types
3
+ * @description Load balancer type definitions.
4
+ */
5
+ /** Load balancer target (child process) */
6
+ export interface LoadBalancerTarget {
7
+ /** Target identifier (usually child process PID) */
8
+ id: string | number;
9
+ /** Weight value (used by weighted algorithms) */
10
+ weight?: number;
11
+ }
12
+ /** Load balancer runtime parameters */
13
+ export interface LoadBalancerParams {
14
+ /** Current polling index */
15
+ currentIndex: number;
16
+ /** Current weight index (for weighted round-robin) */
17
+ weightIndex: number;
18
+ /** Sum of all weights */
19
+ weightTotal: number;
20
+ /** Connections map: pid -> current connection count */
21
+ connectionsMap: Record<string | number, number>;
22
+ /** CPU occupancy map: pid -> CPU usage */
23
+ cpuOccupancyMap: Record<string | number, number>;
24
+ /** Memory occupancy map: pid -> memory usage */
25
+ memoryOccupancyMap: Record<string | number, number>;
26
+ }
27
+ /** Load balancer configuration options */
28
+ export interface LoadBalancerOptions {
29
+ /** Target list */
30
+ targets: LoadBalancerTarget[];
31
+ /** Algorithm name (default: polling) */
32
+ algorithm?: string;
33
+ }
34
+ /** Process info (CPU/memory) */
35
+ export interface PidInfo {
36
+ /** Process ID */
37
+ pid: string | number;
38
+ /** CPU usage */
39
+ cpu: number;
40
+ /** Memory usage */
41
+ memory: number;
42
+ }
43
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/jobs/load-balancer/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,2CAA2C;AAC3C,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IACjC,4BAA4B;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,0CAA0C;IAC1C,eAAe,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,gDAAgD;IAChD,kBAAkB,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC;CACrD;AAED,0CAA0C;AAC1C,MAAM,WAAW,mBAAmB;IAClC,kBAAkB;IAClB,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,gCAAgC;AAChC,MAAM,WAAW,OAAO;IACtB,iBAAiB;IACjB,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,gBAAgB;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * @module jobs/load-balancer/types
4
+ * @description Load balancer type definitions.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/jobs/load-balancer/types.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -0,0 +1,24 @@
1
+ /** Killable job manager interface */
2
+ type Killable = {
3
+ killAll: () => void;
4
+ } | {
5
+ getPids: () => string[];
6
+ kill: (pid: string | number) => void;
7
+ };
8
+ /**
9
+ * Register a job manager
10
+ *
11
+ * Called after creating a ChildJob or ChildPoolJob to ensure cleanup on application exit.
12
+ *
13
+ * @param job - Job manager instance (ChildJob or ChildPoolJob)
14
+ */
15
+ export declare function registerJobManager(job: Killable): void;
16
+ /**
17
+ * Kill all registered job managers
18
+ *
19
+ * Called in the Electron before-quit event to ensure all child processes are properly terminated.
20
+ * Prefers killAll(), falls back to killing individual processes.
21
+ */
22
+ export declare function killAllJobs(): void;
23
+ export {};
24
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/jobs/registry.ts"],"names":[],"mappings":"AAOA,qCAAqC;AACrC,KAAK,QAAQ,GAAG;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,MAAM,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAA;CAAE,CAAC;AAK5G;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,CAEtD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAoBlC"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerJobManager = registerJobManager;
4
+ exports.killAllJobs = killAllJobs;
5
+ /**
6
+ * @module jobs/registry
7
+ * @description Job manager registry. Centrally manages all ChildJob and ChildPoolJob instances,
8
+ * terminating all child processes on application exit (before-quit) to prevent process leaks.
9
+ */
10
+ const index_js_1 = require("../log/index.js");
11
+ /** List of registered job managers */
12
+ const registeredJobs = [];
13
+ /**
14
+ * Register a job manager
15
+ *
16
+ * Called after creating a ChildJob or ChildPoolJob to ensure cleanup on application exit.
17
+ *
18
+ * @param job - Job manager instance (ChildJob or ChildPoolJob)
19
+ */
20
+ function registerJobManager(job) {
21
+ registeredJobs.push(job);
22
+ }
23
+ /**
24
+ * Kill all registered job managers
25
+ *
26
+ * Called in the Electron before-quit event to ensure all child processes are properly terminated.
27
+ * Prefers killAll(), falls back to killing individual processes.
28
+ */
29
+ function killAllJobs() {
30
+ const failed = [];
31
+ for (const job of registeredJobs) {
32
+ try {
33
+ if ('killAll' in job && typeof job.killAll === 'function') {
34
+ job.killAll();
35
+ }
36
+ else if ('getPids' in job && 'kill' in job) {
37
+ const pids = job.getPids();
38
+ for (const pid of pids) {
39
+ job.kill(typeof pid === 'string' ? parseInt(pid, 10) : pid);
40
+ }
41
+ }
42
+ }
43
+ catch (err) {
44
+ index_js_1.coreLogger.error('[jobs/registry] error killing job manager:', err);
45
+ failed.push(err);
46
+ }
47
+ }
48
+ if (failed.length > 0) {
49
+ index_js_1.coreLogger.error(`[jobs/registry] ${failed.length} job manager(s) failed to kill, processes may be orphaned`);
50
+ }
51
+ }
52
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/jobs/registry.ts"],"names":[],"mappings":";;AAoBA,gDAEC;AAQD,kCAoBC;AAlDD;;;;GAIG;AACH,8CAA6C;AAK7C,sCAAsC;AACtC,MAAM,cAAc,GAAe,EAAE,CAAC;AAEtC;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAAC,GAAa;IAC9C,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,WAAW;IACzB,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,IAAI,SAAS,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC1D,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,CAAC;iBAAM,IAAI,SAAS,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;gBAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;oBACvB,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,qBAAU,CAAC,KAAK,CAAC,4CAA4C,EAAE,GAAG,CAAC,CAAC;YACpE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,qBAAU,CAAC,KAAK,CAAC,mBAAmB,MAAM,CAAC,MAAM,2DAA2D,CAAC,CAAC;IAChH,CAAC;AACH,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Load a file and automatically execute function exports
3
+ *
4
+ * If the file exports a plain function (not a class or bytecode class), automatically calls that function
5
+ * and returns the execution result. Suitable for config files that need to dynamically return content based on appInfo.
6
+ *
7
+ * @param filepath - File path (relative paths are based on electronDir)
8
+ * @param inject - Arguments passed to the function export (spread into the call)
9
+ * @returns File export content or function execution result
10
+ * @throws Throws an error if the file does not exist
11
+ */
12
+ export declare function loadFile(filepath: string, ...inject: unknown[]): unknown;
13
+ /**
14
+ * Load a file (without auto-execution)
15
+ *
16
+ * Returns the module export content directly, without any processing.
17
+ * Suitable for scenarios where the original module reference is needed (e.g. child process task loading).
18
+ *
19
+ * @param filepath - Absolute file path
20
+ * @returns Module export content
21
+ */
22
+ export declare function requireFile(filepath: string): unknown;
23
+ /**
24
+ * Load and run a file
25
+ *
26
+ * Determines execution method based on export type:
27
+ * - Class/bytecode class -> Instantiate with new, inject as constructor arguments
28
+ * - Plain function -> Call directly, inject as function arguments
29
+ * - Other -> Return as-is
30
+ *
31
+ * @param filepath - Absolute file path
32
+ * @param inject - Arguments passed to the constructor or function (spread into the call)
33
+ * @returns Instantiated class object or function execution result
34
+ */
35
+ export declare function execFile(filepath: string, ...inject: unknown[]): unknown;
36
+ /**
37
+ * Resolve the absolute path of a module
38
+ *
39
+ * First tries require.resolve(), then falls back to suffix-based rules:
40
+ * - .default / .prod -> Try .jsc (bytecode version)
41
+ * - .js -> Try .jsc
42
+ * - No suffix -> Try .js and .jsc
43
+ *
44
+ * @param filepath - Module path
45
+ * @returns Absolute path of the module, or undefined if it cannot be resolved
46
+ */
47
+ export declare function resolveModule(filepath: string): string | undefined;
48
+ /**
49
+ * Get the absolute path of a file under the electron directory
50
+ *
51
+ * Relative paths are resolved based on electronDir, and resolveModule is also attempted to find the actual file.
52
+ *
53
+ * @param filepath - File path (relative or absolute)
54
+ * @returns Absolute path of the file
55
+ * @throws Throws an error if the file does not exist
56
+ */
57
+ export declare function getFullpath(filepath: string): string;
58
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/loader/index.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAkBxE;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAQxE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA4BlE;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAYpD"}
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.loadFile = loadFile;
7
+ exports.requireFile = requireFile;
8
+ exports.execFile = execFile;
9
+ exports.resolveModule = resolveModule;
10
+ exports.getFullpath = getFullpath;
11
+ /**
12
+ * @module loader
13
+ * @description File loading module. Provides multiple file loading and execution methods,
14
+ * serving as the foundational dependency for controller loading, config loading, and task execution.
15
+ *
16
+ * Core functions:
17
+ * - loadFile: Load a file, automatically execute if the export is a function
18
+ * - requireFile: Load a file without auto-execution
19
+ * - execFile: Load a file, instantiate if class, execute if function
20
+ * - resolveModule: Resolve the absolute path of a module
21
+ * - getFullpath: Get the absolute path of a file under the electron directory
22
+ */
23
+ const type_check_js_1 = require("../utils/type_check.js");
24
+ const fs_1 = __importDefault(require("fs"));
25
+ const path_1 = __importDefault(require("path"));
26
+ const index_js_1 = require("../core/utils/index.js");
27
+ const index_js_2 = require("../ps/index.js");
28
+ /**
29
+ * Load a file and automatically execute function exports
30
+ *
31
+ * If the file exports a plain function (not a class or bytecode class), automatically calls that function
32
+ * and returns the execution result. Suitable for config files that need to dynamically return content based on appInfo.
33
+ *
34
+ * @param filepath - File path (relative paths are based on electronDir)
35
+ * @param inject - Arguments passed to the function export (spread into the call)
36
+ * @returns File export content or function execution result
37
+ * @throws Throws an error if the file does not exist
38
+ */
39
+ function loadFile(filepath, ...inject) {
40
+ let fullpath = filepath;
41
+ const isAbsolute = path_1.default.isAbsolute(fullpath);
42
+ if (!isAbsolute) {
43
+ fullpath = path_1.default.join((0, index_js_2.getElectronDir)(), fullpath);
44
+ }
45
+ fullpath = resolveModule(fullpath) || fullpath;
46
+ if (!fs_1.default.existsSync(fullpath)) {
47
+ throw new Error(`[ee-core] [loader/index] loadFile ${filepath} does not exist`);
48
+ }
49
+ let ret = (0, index_js_1.loadFile)(fullpath);
50
+ // Plain function export: auto-execute, inject arguments (e.g. appInfo)
51
+ if ((0, type_check_js_1.isFunction)(ret) && !(0, type_check_js_1.isClass)(ret) && !(0, index_js_1.isBytecodeClass)(ret)) {
52
+ ret = ret(...inject);
53
+ }
54
+ return ret;
55
+ }
56
+ /**
57
+ * Load a file (without auto-execution)
58
+ *
59
+ * Returns the module export content directly, without any processing.
60
+ * Suitable for scenarios where the original module reference is needed (e.g. child process task loading).
61
+ *
62
+ * @param filepath - Absolute file path
63
+ * @returns Module export content
64
+ */
65
+ function requireFile(filepath) {
66
+ return (0, index_js_1.loadFile)(filepath);
67
+ }
68
+ /**
69
+ * Load and run a file
70
+ *
71
+ * Determines execution method based on export type:
72
+ * - Class/bytecode class -> Instantiate with new, inject as constructor arguments
73
+ * - Plain function -> Call directly, inject as function arguments
74
+ * - Other -> Return as-is
75
+ *
76
+ * @param filepath - Absolute file path
77
+ * @param inject - Arguments passed to the constructor or function (spread into the call)
78
+ * @returns Instantiated class object or function execution result
79
+ */
80
+ function execFile(filepath, ...inject) {
81
+ let ret = (0, index_js_1.loadFile)(filepath);
82
+ if ((0, type_check_js_1.isClass)(ret) || (0, index_js_1.isBytecodeClass)(ret)) {
83
+ ret = new ret(...inject);
84
+ }
85
+ else if ((0, type_check_js_1.isFunction)(ret)) {
86
+ ret = ret(...inject);
87
+ }
88
+ return ret;
89
+ }
90
+ /**
91
+ * Resolve the absolute path of a module
92
+ *
93
+ * First tries require.resolve(), then falls back to suffix-based rules:
94
+ * - .default / .prod -> Try .jsc (bytecode version)
95
+ * - .js -> Try .jsc
96
+ * - No suffix -> Try .js and .jsc
97
+ *
98
+ * @param filepath - Module path
99
+ * @returns Absolute path of the module, or undefined if it cannot be resolved
100
+ */
101
+ function resolveModule(filepath) {
102
+ let fullpath;
103
+ try {
104
+ fullpath = require.resolve(filepath);
105
+ }
106
+ catch {
107
+ // Special suffix handling: config filenames like config.default, config.prod
108
+ if (filepath && (filepath.endsWith('.default') || filepath.endsWith('.prod'))) {
109
+ fullpath = filepath + '.jsc';
110
+ }
111
+ else if (filepath && filepath.endsWith('.js')) {
112
+ fullpath = filepath + 'c'; // .js → .jsc
113
+ }
114
+ // In packaged mode, require.resolve may fail; try checking if the file exists directly
115
+ if (!fullpath || !fs_1.default.existsSync(fullpath)) {
116
+ if (fs_1.default.existsSync(filepath + '.js')) {
117
+ fullpath = filepath + '.js';
118
+ }
119
+ else if (fs_1.default.existsSync(filepath + '.jsc')) {
120
+ fullpath = filepath + '.jsc';
121
+ }
122
+ }
123
+ if (!fs_1.default.existsSync(filepath) && (!fullpath || !fs_1.default.existsSync(fullpath))) {
124
+ console.warn(`[ee-core] [loader] resolveModule unknow filepath: ${JSON.stringify({ filepath, fullpath })}`);
125
+ return undefined;
126
+ }
127
+ }
128
+ return fullpath;
129
+ }
130
+ /**
131
+ * Get the absolute path of a file under the electron directory
132
+ *
133
+ * Relative paths are resolved based on electronDir, and resolveModule is also attempted to find the actual file.
134
+ *
135
+ * @param filepath - File path (relative or absolute)
136
+ * @returns Absolute path of the file
137
+ * @throws Throws an error if the file does not exist
138
+ */
139
+ function getFullpath(filepath) {
140
+ let fullpath;
141
+ const isAbsolute = path_1.default.isAbsolute(filepath);
142
+ if (!isAbsolute) {
143
+ filepath = path_1.default.join((0, index_js_2.getElectronDir)(), filepath);
144
+ }
145
+ fullpath = resolveModule(filepath);
146
+ if (!fullpath || !fs_1.default.existsSync(fullpath)) {
147
+ throw new Error(`[ee-core] [loader] getFullpath filepath ${filepath} not exists`);
148
+ }
149
+ return fullpath;
150
+ }
151
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/loader/index.ts"],"names":[],"mappings":"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"}