mm_os 3.3.0 → 4.0.0

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 (380) hide show
  1. package/LICENSE +21 -201
  2. package/README.md +491 -99
  3. package/README_EN.md +498 -0
  4. package/adapter/adapter.js +431 -0
  5. package/adapter/custom_persistence.js +660 -0
  6. package/adapter/mqtt.js +273 -0
  7. package/adapter/socket.js +113 -0
  8. package/adapter/web.js +67 -0
  9. package/adapter/websocket.js +146 -0
  10. package/com/api/com.json +5 -0
  11. package/{core/com → com}/api/config.tpl.json +8 -8
  12. package/com/api/drive.js +708 -0
  13. package/com/api/index.js +198 -0
  14. package/com/api/oauth.js +200 -0
  15. package/com/api/script.tpl.js +32 -0
  16. package/com/cmd/README.md +11 -0
  17. package/com/cmd/com.json +5 -0
  18. package/com/cmd/config.tpl.json +122 -0
  19. package/com/cmd/drive.js +1548 -0
  20. package/com/cmd/index.js +1066 -0
  21. package/com/cmd/msg.json +48 -0
  22. package/com/cmd/nlp.js +525 -0
  23. package/com/cmd/script.tpl.js +32 -0
  24. package/com/db/com.json +5 -0
  25. package/com/db/drive.js +1999 -0
  26. package/com/db/index.js +242 -0
  27. package/com/event/com.json +5 -0
  28. package/{core/com → com}/event/config.tpl.json +8 -8
  29. package/com/event/drive.js +59 -0
  30. package/com/event/index.js +409 -0
  31. package/com/event/script.tpl.js +23 -0
  32. package/com/mqtt/com.json +5 -0
  33. package/{core/com → com}/mqtt/config.tpl.json +3 -5
  34. package/com/mqtt/drive.js +676 -0
  35. package/com/mqtt/index.js +822 -0
  36. package/com/mqtt/mm_mqtt.js +425 -0
  37. package/com/mqtt/script.tpl.js +723 -0
  38. package/com/nav/com.json +5 -0
  39. package/com/nav/config.tpl.json +84 -0
  40. package/com/nav/drive.js +702 -0
  41. package/com/nav/index.js +231 -0
  42. package/{core/com → com}/nav/tpl/admin_pc/page_config.vue +280 -280
  43. package/{core/com → com}/nav/tpl/admin_pc/page_config_form.vue +194 -194
  44. package/com/nav/tpl/admin_pc/page_form.vue +180 -0
  45. package/com/nav/tpl/admin_pc/page_view.vue +124 -0
  46. package/com/nav/tpl/dev_pc/page_default.vue +247 -0
  47. package/com/nav/tpl/dev_pc/page_type.vue +313 -0
  48. package/com/nav/tpl/home_pc/page_default.vue +234 -0
  49. package/com/nav/tpl/home_pc/page_form.vue +137 -0
  50. package/com/nav/tpl/home_pc/page_list.vue +234 -0
  51. package/com/nav/tpl/home_pc/page_nav.vue +221 -0
  52. package/com/nav/tpl/home_pc/page_type.vue +234 -0
  53. package/com/nav/tpl/home_pc/page_view.vue +125 -0
  54. package/com/nav/tpl/home_phone/page_channel.vue +234 -0
  55. package/com/nav/tpl/home_phone/page_default.vue +234 -0
  56. package/com/nav/tpl/home_phone/page_form.vue +137 -0
  57. package/com/nav/tpl/home_phone/page_nav.vue +237 -0
  58. package/com/nav/tpl/home_phone/page_type.vue +234 -0
  59. package/com/nav/tpl/home_phone/page_view.vue +125 -0
  60. package/com/nav/viewmodel.js +446 -0
  61. package/com/param/com.json +5 -0
  62. package/{core/com → com}/param/config.tpl.json +7 -1
  63. package/com/param/drive.js +502 -0
  64. package/com/param/index.js +155 -0
  65. package/com/param/script.tpl.js +12 -0
  66. package/com/pendant/com.json +5 -0
  67. package/{core/com/component → com/pendant}/config.tpl.json +15 -13
  68. package/com/pendant/drive.js +204 -0
  69. package/com/pendant/index.js +441 -0
  70. package/com/pendant/pendant.html +16 -0
  71. package/com/pendant/script.tpl.js +18 -0
  72. package/com/socket/com.json +5 -0
  73. package/com/socket/config.tpl.json +12 -0
  74. package/com/socket/drive.js +651 -0
  75. package/com/socket/index.js +351 -0
  76. package/com/socket/script.tpl.js +41 -0
  77. package/com/sql/com.json +5 -0
  78. package/{core/com → com}/sql/config.tpl.json +13 -9
  79. package/com/sql/drive.js +1259 -0
  80. package/com/sql/index.js +150 -0
  81. package/com/sql/script.tpl.js +47 -0
  82. package/com/static/com.json +5 -0
  83. package/{core/com → com}/static/config.tpl.json +10 -6
  84. package/com/static/drive.js +194 -0
  85. package/com/static/index.js +226 -0
  86. package/com/static/script.tpl.js +28 -0
  87. package/com/task/com.json +5 -0
  88. package/{core/com → com}/task/config.tpl.json +4 -6
  89. package/com/task/drive.js +405 -0
  90. package/com/task/index.js +148 -0
  91. package/com/task/script.tpl.js +37 -0
  92. package/com/template/com.json +5 -0
  93. package/com/template/config.tpl.json +16 -0
  94. package/com/template/drive.js +80 -0
  95. package/com/template/index.js +141 -0
  96. package/com.js +156 -0
  97. package/common/README.md +2 -0
  98. package/common/handler/msg/handler.json +22 -0
  99. package/common/handler/msg/index.js +23 -0
  100. package/common/handler/player/handler.json +22 -0
  101. package/common/handler/player/index.js +287 -0
  102. package/common/handler/user/handler.json +22 -0
  103. package/common/handler/user/index.js +23 -0
  104. package/common/middleware/web_after/index.js +29 -0
  105. package/common/middleware/web_after/middleware.json +9 -0
  106. package/common/middleware/web_base/index.js +113 -0
  107. package/common/middleware/web_base/middleware.json +19 -0
  108. package/common/middleware/web_before/index.js +33 -0
  109. package/common/middleware/web_before/middleware.json +9 -0
  110. package/common/middleware/web_cors/index.js +87 -0
  111. package/common/middleware/web_cors/middleware.json +24 -0
  112. package/common/middleware/web_error/index.js +119 -0
  113. package/common/middleware/web_error/middleware.json +18 -0
  114. package/common/middleware/web_ip/index.js +15 -0
  115. package/common/middleware/web_ip/middleware.json +14 -0
  116. package/common/middleware/web_logger/index.js +156 -0
  117. package/common/middleware/web_logger/middleware.json +14 -0
  118. package/common/middleware/web_main/index.js +24 -0
  119. package/common/middleware/web_main/middleware.json +9 -0
  120. package/common/middleware/web_static/index.js +73 -0
  121. package/common/middleware/web_static/middleware.json +54 -0
  122. package/common/middleware/web_waf/index.js +385 -0
  123. package/common/middleware/web_waf/middleware.json +13 -0
  124. package/common/model/msg/index.js +88 -0
  125. package/common/model/msg/model.json +401 -0
  126. package/common/model/player/index.js +63 -0
  127. package/common/model/player/model.json +185 -0
  128. package/common/model/user/index.js +11 -0
  129. package/common/model/user/model.json +219 -0
  130. package/core/app/config.tpl.json +67 -0
  131. package/core/app/index.js +632 -0
  132. package/core/app/script.tpl.js +52 -0
  133. package/core/channel/index.js +899 -0
  134. package/core/channel/matcher.js +585 -0
  135. package/core/com/config.tpl.json +16 -0
  136. package/core/com/index.js +74 -0
  137. package/core/com/script.tpl.js +5 -0
  138. package/core/component/component.js +42 -0
  139. package/core/component/config.tpl.json +63 -0
  140. package/core/component/index.js +273 -0
  141. package/core/component/script.tpl.js +19 -0
  142. package/core/controller/config.tpl.json +14 -0
  143. package/core/controller/index.js +373 -0
  144. package/core/controller/script.tpl.js +27 -0
  145. package/core/factory/config.tpl.json +14 -0
  146. package/core/factory/entity.js +275 -0
  147. package/core/factory/index.js +241 -0
  148. package/core/factory/script.tpl.js +16 -0
  149. package/core/game/bat/index.js +137 -0
  150. package/core/game/bat/world.js +622 -0
  151. package/core/game/config.tpl.json +16 -0
  152. package/core/game/entity_admin.js +230 -0
  153. package/core/game/index.js +186 -0
  154. package/core/handler/config.tpl.json +22 -0
  155. package/core/handler/index.js +181 -0
  156. package/core/handler/script.tpl.js +23 -0
  157. package/core/logic/config.tpl.json +14 -0
  158. package/core/logic/index.js +59 -0
  159. package/core/logic/script.tpl.js +19 -0
  160. package/core/middleware/config.tpl.json +16 -0
  161. package/core/middleware/index.js +125 -0
  162. package/core/middleware/script.tpl.js +37 -0
  163. package/core/mod/config.tpl.json +22 -0
  164. package/core/mod/index.js +130 -0
  165. package/core/mod/script.tpl.js +34 -0
  166. package/core/model/config.tpl.json +219 -0
  167. package/core/model/index.js +272 -0
  168. package/core/model/model.js +27 -0
  169. package/core/model/script.tpl.js +20 -0
  170. package/core/notifier/config.tpl.json +14 -0
  171. package/core/notifier/index.js +77 -0
  172. package/core/notifier/script.tpl.js +20 -0
  173. package/core/plugin/config.tpl.json +24 -0
  174. package/core/plugin/index.js +232 -0
  175. package/core/plugin/script.tpl.js +51 -0
  176. package/core/pusher/config.tpl.json +14 -0
  177. package/core/pusher/index.js +161 -0
  178. package/core/pusher/script.tpl.js +20 -0
  179. package/core/room/bat/index.js +170 -0
  180. package/core/room/bat/room.js +524 -0
  181. package/core/room/config.tpl.json +20 -0
  182. package/core/room/index.js +249 -0
  183. package/core/room/room.js +61 -0
  184. package/core/scene/config.tpl.json +14 -0
  185. package/core/scene/index.js +466 -0
  186. package/core/scene/loop.js +1255 -0
  187. package/core/scene/map.js +28 -0
  188. package/core/scene/script.tpl.js +22 -0
  189. package/core/sender/config.tpl.json +14 -0
  190. package/core/sender/index.js +79 -0
  191. package/core/sender/script.tpl.js +20 -0
  192. package/core/service/config.tpl.json +14 -0
  193. package/core/service/index.js +100 -0
  194. package/core/service/script.tpl.js +25 -0
  195. package/core/store/config.tpl.json +26 -0
  196. package/core/store/index.js +1755 -0
  197. package/core/store/script.tpl.js +22 -0
  198. package/core/store/sql.js +1464 -0
  199. package/core/system/config.tpl.json +18 -0
  200. package/core/system/index.js +312 -0
  201. package/core/system/script.tpl.js +77 -0
  202. package/core/view/config.tpl.json +14 -0
  203. package/core/view/index.js +91 -0
  204. package/core/view/script.tpl.js +20 -0
  205. package/core/zone/bat/index.js +725 -0
  206. package/core/zone/config.tpl.json +54 -0
  207. package/core/zone/index.js +614 -0
  208. package/core/zone/script.tpl.js +10 -0
  209. package/core/zone/zone_bat.js +136 -0
  210. package/core//345/237/272/347/261/273/346/250/241/345/235/227/346/270/205/345/215/225.md +24 -0
  211. package/index.js +17 -314
  212. package/os.js +57 -0
  213. package/package.json +60 -58
  214. package/server.js +598 -0
  215. package/README.en.md +0 -36
  216. package/conf.json +0 -3
  217. package/core/base/mqtt/index.js +0 -1107
  218. package/core/base/mqtt/lib.js +0 -40
  219. package/core/base/web/index.js +0 -243
  220. package/core/com/api/com.json +0 -4
  221. package/core/com/api/drive.js +0 -668
  222. package/core/com/api/index.js +0 -108
  223. package/core/com/api/oauth.js +0 -158
  224. package/core/com/api/script.js +0 -32
  225. package/core/com/app/README.md +0 -3
  226. package/core/com/app/com.json +0 -4
  227. package/core/com/app/config.tpl.json +0 -16
  228. package/core/com/app/drive.js +0 -309
  229. package/core/com/app/index.js +0 -211
  230. package/core/com/app/script.js +0 -155
  231. package/core/com/cmd/com.json +0 -4
  232. package/core/com/cmd/config.tpl.json +0 -66
  233. package/core/com/cmd/drive.js +0 -513
  234. package/core/com/cmd/index.js +0 -354
  235. package/core/com/cmd/old/5w2h.js +0 -54
  236. package/core/com/cmd/old/drive.js +0 -423
  237. package/core/com/cmd/script.js +0 -11
  238. package/core/com/component/README.md +0 -3
  239. package/core/com/component/com.json +0 -4
  240. package/core/com/component/component.html +0 -16
  241. package/core/com/component/drive.js +0 -197
  242. package/core/com/component/index.js +0 -312
  243. package/core/com/component/script.js +0 -18
  244. package/core/com/db/com.json +0 -4
  245. package/core/com/db/drive.js +0 -1160
  246. package/core/com/db/index.js +0 -176
  247. package/core/com/event/com.json +0 -4
  248. package/core/com/event/drive.js +0 -133
  249. package/core/com/event/index.js +0 -345
  250. package/core/com/event/script.js +0 -26
  251. package/core/com/eventer/com.js +0 -477
  252. package/core/com/eventer/com.json +0 -4
  253. package/core/com/middleware/com.js +0 -153
  254. package/core/com/middleware/com.json +0 -4
  255. package/core/com/middleware/config.tpl.json +0 -8
  256. package/core/com/middleware/script.js +0 -9
  257. package/core/com/mqtt/com.json +0 -4
  258. package/core/com/mqtt/drive.js +0 -600
  259. package/core/com/mqtt/index.js +0 -572
  260. package/core/com/mqtt/mm_mqtt.js +0 -330
  261. package/core/com/mqtt/script.js +0 -604
  262. package/core/com/msg/com.js +0 -296
  263. package/core/com/msg/com.json +0 -4
  264. package/core/com/nav/com.json +0 -4
  265. package/core/com/nav/config.tpl.json +0 -75
  266. package/core/com/nav/drive.js +0 -549
  267. package/core/com/nav/index.js +0 -182
  268. package/core/com/nav/tpl/admin_pc/page_form.vue +0 -180
  269. package/core/com/nav/tpl/admin_pc/page_view.vue +0 -124
  270. package/core/com/nav/tpl/dev_pc/page_default.vue +0 -247
  271. package/core/com/nav/tpl/dev_pc/page_type.vue +0 -313
  272. package/core/com/nav/tpl/home_pc/page_default.vue +0 -234
  273. package/core/com/nav/tpl/home_pc/page_form.vue +0 -137
  274. package/core/com/nav/tpl/home_pc/page_list.vue +0 -234
  275. package/core/com/nav/tpl/home_pc/page_nav.vue +0 -221
  276. package/core/com/nav/tpl/home_pc/page_type.vue +0 -234
  277. package/core/com/nav/tpl/home_pc/page_view.vue +0 -125
  278. package/core/com/nav/tpl/home_phone/page_channel.vue +0 -234
  279. package/core/com/nav/tpl/home_phone/page_default.vue +0 -234
  280. package/core/com/nav/tpl/home_phone/page_form.vue +0 -137
  281. package/core/com/nav/tpl/home_phone/page_nav.vue +0 -237
  282. package/core/com/nav/tpl/home_phone/page_type.vue +0 -234
  283. package/core/com/nav/tpl/home_phone/page_view.vue +0 -125
  284. package/core/com/nav/viewmodel.js +0 -296
  285. package/core/com/param/drive.js +0 -366
  286. package/core/com/param/index.js +0 -80
  287. package/core/com/param/script.js +0 -12
  288. package/core/com/param/test.js +0 -98
  289. package/core/com/plugin/README.md +0 -3
  290. package/core/com/plugin/com.json +0 -4
  291. package/core/com/plugin/config.tpl.json +0 -26
  292. package/core/com/plugin/drive.js +0 -536
  293. package/core/com/plugin/index.js +0 -259
  294. package/core/com/plugin/script.js +0 -213
  295. package/core/com/rpc/com.json +0 -4
  296. package/core/com/rpc/drive.js +0 -160
  297. package/core/com/rpc/index.js +0 -87
  298. package/core/com/rpc/rpc.js +0 -118
  299. package/core/com/socket/com.json +0 -4
  300. package/core/com/socket/config.tpl.json +0 -14
  301. package/core/com/socket/drive.js +0 -403
  302. package/core/com/socket/index.js +0 -62
  303. package/core/com/socket/script.js +0 -42
  304. package/core/com/sql/drive.js +0 -1087
  305. package/core/com/sql/index.js +0 -83
  306. package/core/com/sql/script.js +0 -48
  307. package/core/com/static/com.json +0 -4
  308. package/core/com/static/drive.js +0 -220
  309. package/core/com/static/index.js +0 -149
  310. package/core/com/static/script.js +0 -28
  311. package/core/com/task/com.json +0 -4
  312. package/core/com/task/drive.js +0 -403
  313. package/core/com/task/index.js +0 -110
  314. package/core/com/task/script.js +0 -37
  315. package/core/com/timer/com.js +0 -217
  316. package/core/com/timer/com.json +0 -4
  317. package/core/com/tpl/com.js +0 -19
  318. package/core/com/tpl/com.json +0 -4
  319. package/lib/actions.js +0 -50
  320. package/lib/base.js +0 -361
  321. package/lib/com.js +0 -29
  322. package/lib/ref.js +0 -121
  323. package/middleware/mqtt_base/index.js +0 -10
  324. package/middleware/mqtt_base/middleware.json +0 -10
  325. package/middleware/performance/index.js +0 -151
  326. package/middleware/performance/middleware.json +0 -16
  327. package/middleware/security_audit/index.js +0 -549
  328. package/middleware/security_audit/middleware.json +0 -48
  329. package/middleware/security_headers/index.js +0 -487
  330. package/middleware/security_headers/middleware.json +0 -45
  331. package/middleware/waf/index.js +0 -348
  332. package/middleware/waf/middleware.json +0 -10
  333. package/middleware/waf_ddos/index.js +0 -520
  334. package/middleware/waf_ddos/middleware.json +0 -38
  335. package/middleware/waf_ip/index.js +0 -379
  336. package/middleware/waf_ip/middleware.json +0 -49
  337. package/middleware/waf_xss/index.js +0 -269
  338. package/middleware/waf_xss/middleware.json +0 -18
  339. package/middleware/web_after/index.js +0 -33
  340. package/middleware/web_after/middleware.json +0 -9
  341. package/middleware/web_base/index.js +0 -90
  342. package/middleware/web_base/middleware.json +0 -9
  343. package/middleware/web_before/index.js +0 -27
  344. package/middleware/web_before/middleware.json +0 -9
  345. package/middleware/web_check/index.js +0 -28
  346. package/middleware/web_check/middleware.json +0 -9
  347. package/middleware/web_main/index.js +0 -28
  348. package/middleware/web_main/middleware.json +0 -9
  349. package/middleware/web_proxy/index.js +0 -37
  350. package/middleware/web_proxy/middleware.json +0 -9
  351. package/middleware/web_render/index.js +0 -87
  352. package/middleware/web_render/middleware.json +0 -9
  353. package/middleware/web_socket/index.js +0 -34
  354. package/middleware/web_socket/middleware.json +0 -9
  355. package/middleware/web_static/index.js +0 -115
  356. package/middleware/web_static/middleware.json +0 -9
  357. /package/{core/com → com}/api/README.md +0 -0
  358. /package/{core/com → com}/db/README.md +0 -0
  359. /package/{core/com → com}/event/README.md +0 -0
  360. /package/{core/com → com}/mqtt/README.md +0 -0
  361. /package/{core/com → com}/nav/README.md +0 -0
  362. /package/{core/com → com}/nav/tpl/admin_pc/page_channel.vue +0 -0
  363. /package/{core/com → com}/nav/tpl/admin_pc/page_default.vue +0 -0
  364. /package/{core/com → com}/nav/tpl/admin_pc/page_lang.vue +0 -0
  365. /package/{core/com → com}/nav/tpl/admin_pc/page_nav.vue +0 -0
  366. /package/{core/com → com}/nav/tpl/admin_pc/page_table.vue +0 -0
  367. /package/{core/com → com}/nav/tpl/admin_pc/page_type.vue +0 -0
  368. /package/{core/com → com}/nav/tpl/dev_pc/page_channel.vue +0 -0
  369. /package/{core/com → com}/nav/tpl/dev_pc/page_config.vue +0 -0
  370. /package/{core/com → com}/nav/tpl/dev_pc/page_form.vue +0 -0
  371. /package/{core/com → com}/nav/tpl/dev_pc/page_nav.vue +0 -0
  372. /package/{core/com → com}/nav/tpl/dev_pc/page_table.vue +0 -0
  373. /package/{core/com → com}/nav/tpl/home_pc/page_channel.vue +0 -0
  374. /package/{core/com → com}/nav/tpl/home_phone/page_list.vue +0 -0
  375. /package/{core/com → com}/param/README.md +0 -0
  376. /package/{core/com/cmd → com/pendant}/README.md +0 -0
  377. /package/{core/com → com}/socket/README.md +0 -0
  378. /package/{core/com → com}/sql/README.md +0 -0
  379. /package/{core/com → com}/static/README.md +0 -0
  380. /package/{core/com → com}/task/README.md +0 -0
@@ -1,217 +0,0 @@
1
- /**
2
- * 计时器
3
- */
4
- class Timer {
5
- /**
6
- * 构造函数
7
- * @param {Object} config 配置参数
8
- */
9
- constructor(config) {
10
- this.list = [];
11
- this.list_add = [];
12
- this.list_del = [];
13
- this.autoId = 1;
14
- }
15
- }
16
-
17
- /**
18
- * 模型
19
- */
20
- Timer.prototype.model = function() {
21
- return {
22
- // 定时器ID
23
- id: 0,
24
- // 总执行次数 -1为无限次
25
- count: 0,
26
- // 执行次数
27
- num: 0,
28
- // 执行间隔时长
29
- interval: 1000,
30
- // 等待执行事件
31
- wait: 1000,
32
- // 经过的时间
33
- passedTime: 0,
34
- // 状态 1启用,2暂停,0结束
35
- state: 1,
36
- // 参数
37
- param: {},
38
- // 回调函数
39
- func: function() {}
40
- }
41
- }
42
-
43
- /**
44
- * 添加定时器
45
- * @param {Function} func 回调函数
46
- * @param {Object} param 参数
47
- * @param {Function} interval 每次执行间隔时长
48
- * @param {Function} count 执行次数 -1为不限次数
49
- * @param {Function} wait 延迟执行
50
- */
51
- Timer.prototype.add = function(func, param = {}, interval = 1000, count = -1, wait = 0) {
52
- var id = this.autoId;
53
- var info = {
54
- id,
55
- count,
56
- num: 0,
57
- state: 1,
58
- interval,
59
- wait,
60
- passedTime: 0,
61
- param,
62
- func
63
- };
64
- this.list_add.push(info);
65
- this.autoId++;
66
- return id;
67
- }
68
-
69
- /**
70
- * 删除定时器
71
- * @param {Number|String} id 名称或ID
72
- */
73
- Timer.prototype.del = function(id) {
74
- this.list_del.push(id);
75
- }
76
-
77
- /**
78
- * 删除定时器
79
- * @param {Object} query 查询条件
80
- */
81
- Timer.prototype.delOf = function(query) {
82
- if (typeof(query) == "name") {
83
- query = {
84
- name: query
85
- }
86
- }
87
- var lt = [];
88
- var list = this.list;
89
- for (var i = 0; i < list.length; i++) {
90
- var o = list[i];
91
- if (o.param && $.as(o.param, query)) {
92
- lt.push(o.id);
93
- }
94
- }
95
- this.list_del.addList(lt);
96
- }
97
-
98
- /**
99
- * 执行定时器后
100
- */
101
- Timer.prototype.do_after = function() {
102
- var list = this.list_del;
103
- for (var i = 0; i < list.length; i++) {
104
- var id = list[i];
105
- this.list.del({
106
- id
107
- });
108
- }
109
-
110
- this.list_del.clear();
111
- this.list.addList(this.list_add);
112
- this.list_add.clear();
113
- }
114
-
115
-
116
- /**
117
- * 执行定时器
118
- */
119
- Timer.prototype.doing = async function(o) {
120
- o.passedTime = 0;
121
- o.num++;
122
- try {
123
- await o.func(o.param, o.num);
124
- } catch (err) {
125
- $.log.error("定时器执行失败!", err);
126
- }
127
- if (o.num === o.count) {
128
- this.list_del.push(o.id);
129
- }
130
- }
131
-
132
- /**
133
- * 执行定时器
134
- */
135
- Timer.prototype.do = async function(millisecond) {
136
- var list = this.list;
137
- for (var i = 0; i < list.length; i++) {
138
- var o = list[i];
139
- // 判断是否启用状态
140
- if (o.state == 1) {
141
- // 判断是否还需要执行
142
- if (o.count < 0 || o.num < o.count) {
143
- o.passedTime += millisecond;
144
- // 判断是否有延迟,消除延迟
145
- if (o.wait) {
146
- // 判断是否到了要执行的时候
147
- if (o.passedTime % o.wait === 0) {
148
- o.wait = 0;
149
- this.doing(o);
150
- }
151
- } else {
152
- // 判断是否到了要执行的时候
153
- if (o.passedTime % o.interval === 0) {
154
- this.doing(o);
155
- }
156
- }
157
- }
158
- } else if (!o.state) {
159
- this.list_del.push(o.id);
160
- }
161
- }
162
- this.do_after();
163
- }
164
-
165
- /**
166
- * 执行定时器
167
- */
168
- Timer.prototype.run = async function(millisecond = 10) {
169
- this.timer = setInterval(() => {
170
- this.do(millisecond);
171
- }, millisecond);
172
- }
173
-
174
- /**
175
- * 开启
176
- * @param {Number|String} id 名称或ID
177
- */
178
- Timer.prototype.start = function(id) {
179
- var obj = this.list.getObj({
180
- id
181
- });
182
- if (obj) {
183
- obj.state = 1;
184
- }
185
- }
186
-
187
- /**
188
- * 暂停
189
- * @param {Number|String} id 名称或ID
190
- */
191
- Timer.prototype.stop = function(id) {
192
- var obj = this.list.getObj({
193
- id
194
- });
195
- if (obj) {
196
- obj.state = 2;
197
- }
198
- }
199
-
200
- /**
201
- * 结束
202
- * @param {Number|String} id 名称或ID
203
- */
204
- Timer.prototype.end = function(id) {
205
- var obj = this.list.getObj({
206
- id
207
- });
208
- if (obj) {
209
- obj.state = 0;
210
- }
211
- }
212
-
213
- if (!$.timer || !$.timer.list) {
214
- $.timer = new Timer();
215
- }
216
-
217
- module.exports = Timer;
@@ -1,4 +0,0 @@
1
- {
2
- "name": "定时器",
3
- "script": "./com.js"
4
- }
@@ -1,19 +0,0 @@
1
- const Base = require("../../../lib/base.js");
2
-
3
- /**
4
- * 控制器
5
- */
6
- class Controller extends Base {
7
- constructor() {
8
- super();
9
-
10
- // 检索的文件路径
11
- this.path = "./app/controller".fullname();
12
- // 文件拓展名
13
- this.extension = "controller.json";
14
- // 文件存放目录
15
- this.dir = "./app";
16
- }
17
- }
18
-
19
- module.exports = new Controller()
@@ -1,4 +0,0 @@
1
- {
2
- "name": "控制器",
3
- "script": "./com.js"
4
- }
package/lib/actions.js DELETED
@@ -1,50 +0,0 @@
1
- const Ref = require("./ref.js");
2
-
3
- class Action {
4
- constructor(obj) {
5
- return this.init(obj);
6
- }
7
- }
8
-
9
- /**
10
- * 实例对象
11
- * @param {Object} obj
12
- */
13
- Action.prototype.ref = function(obj) {
14
- return new Ref(obj);
15
- }
16
-
17
- /**
18
- * 初始化
19
- * @param {Object} obj
20
- */
21
- Action.prototype.init = function(obj) {
22
- var act = this.ref(obj);
23
- return new Proxy(act, {
24
- get: (target, prop) => {
25
- var value = target[prop];
26
- if (value !== undefined) {
27
- return value;
28
- }
29
- value = target.data[prop];
30
- if (value !== undefined) {
31
- return value;
32
- }
33
- return target.methods[prop];
34
- },
35
- set: function(target, prop, value) {
36
- if (target[prop] !== undefined) {
37
- target[prop] = value;
38
- } else if (target.data[prop] !== undefined) {
39
- target.data[prop] = value;
40
- } else if (target.methods[prop] !== undefined) {
41
- target.methods[prop] = value;
42
- } else {
43
- target[prop] = value;
44
- }
45
- return true
46
- }
47
- });
48
- }
49
-
50
- module.exports = Action;
package/lib/base.js DELETED
@@ -1,361 +0,0 @@
1
- const conf = require("mm_config");
2
- const Actions = require("./actions.js");
3
- const fs = require('fs');
4
- const path = require('path');
5
-
6
- function rmdir(dir) {
7
- var list = fs.readdirSync(dir);
8
- for (var i = 0; i < list.length; i++) {
9
- var filename = path.join(dir, list[i]);
10
- var stat = fs.statSync(filename);
11
-
12
- if (filename == "." || filename == "..") {
13
- // pass these files
14
- } else if (stat.isDirectory()) {
15
- // rmdir recursively
16
- rmdir(filename);
17
- } else {
18
- // rm fiilename
19
- fs.unlinkSync(filename);
20
- }
21
- }
22
- fs.rmdirSync(dir);
23
- };
24
-
25
- /**
26
- * 系统基础类
27
- */
28
- class Base {
29
- /**
30
- * 构造函数
31
- */
32
- constructor() {
33
- // 字典
34
- this.dict = {};
35
- // 检索路径
36
- this.path = "";
37
- // 文件拓展名
38
- this.extension = "*.json";
39
- // 重新加载
40
- this.reload = true;
41
- // 识别用的主键
42
- this.key = "name";
43
- }
44
- }
45
-
46
- Base.prototype.init_after = function() {
47
-
48
- }
49
-
50
- /**
51
- * 初始化地区
52
- * @param {Boolean} reset 是否重新初始化,true则全部重新初始化
53
- */
54
- Base.prototype.init = function(reset = false) {
55
- var files = this.getFiles();
56
- for (var i = 0; i < files.length; i++) {
57
- var file = files[i];
58
- this.load(file, reset);
59
- }
60
- this.init_after(reset);
61
- }
62
-
63
- Base.prototype.start_after = function() {
64
-
65
- }
66
-
67
- Base.prototype.start = function() {
68
- this.start_after();
69
- }
70
-
71
- /**
72
- * 获取文件
73
- */
74
- Base.prototype.getFiles = function() {
75
- var files = [];
76
- if (this.path) {
77
- // 模块自带路径
78
- var path = "../core".fullname(__dirname);
79
- files = $.file.getAll(path, this.extension);
80
- // 自定义路径
81
- var path_2 = this.path.fullname(__dirname);
82
- path_2.addDir();
83
- var files_2 = $.file.getAll(path_2, this.extension);
84
- files.addList(files_2);
85
- }
86
- return files;
87
- }
88
-
89
- /**
90
- * 脚本实例
91
- * @param {Object} obj 对象
92
- */
93
- Base.prototype.script = function(obj) {
94
- return new Actions(obj);
95
- }
96
-
97
- /**
98
- * 补全脚本
99
- * @param {Object} action
100
- */
101
- Base.prototype.fullAction = function(action) {
102
- return action;
103
- }
104
-
105
- /**
106
- * 加载配置及脚本程序
107
- * @param {String} jsonFile 配置文件名
108
- * @param {Boolean} reload 是否重载,true为重载
109
- */
110
- Base.prototype.load = function(jsonFile, reload = false) {
111
- if (jsonFile.indexOf($.slash + "tpl") !== -1) {
112
- return
113
- }
114
- // 加载json配置
115
- var m = this.loadJson(jsonFile);
116
- if (m) {
117
- var cache = {};
118
- var methods = {};
119
- var jsFile;
120
- // 加载脚本
121
- if (m.script) {
122
- if (m.script.indexOf("/") === 0) {
123
- jsFile = m.script.fullname($.runPath);
124
- } else {
125
- jsFile = m.script.fullname(jsonFile.dirname());
126
- }
127
- if (!jsFile.hasFile()) {
128
- jsFile = "";
129
- }
130
- var js;
131
- if (reload) {
132
- js = this.reLoadJS(jsFile);
133
- } else {
134
- js = this.loadJS(jsFile);
135
- }
136
- cache = js.cache;
137
- methods = js.methods;
138
- }
139
- var action = this.script({
140
- data: m,
141
- methods
142
- });
143
- for (var k in cache) {
144
- action[k] = cache[k]
145
- }
146
- action.jsonFile = jsonFile;
147
- this.dict[m[this.key]] = this.fullAction(action);
148
- return this.dict[m[this.key]];
149
- }
150
- return null;
151
- }
152
-
153
- /**
154
- * 加载JSON配置
155
- * @param {String} file 文件名
156
- */
157
- Base.prototype.loadJson = function(file) {
158
- return conf(file.loadJson(), file);
159
- }
160
-
161
- /**
162
- * 加载JS
163
- * @param {String} file 文件名
164
- */
165
- Base.prototype.loadJS = function(file) {
166
- var cache = {};
167
- var methods = {};
168
- if (file && file.hasFile()) {
169
- try {
170
- var js = require(file);
171
- if (js) {
172
- for (var k in js) {
173
- var val = js[k];
174
- if (typeof(val) == "function") {
175
- methods[k] = val
176
- } else {
177
- cache[k] = val
178
- }
179
- }
180
- cache.jsFile = file;
181
- }
182
- } catch (err) {
183
- console.error("loadJS error", file);
184
- console.error(err);
185
- }
186
- }
187
- return {
188
- cache,
189
- methods
190
- }
191
- }
192
-
193
- /**
194
- * 卸载JS
195
- * @param {String} file 文件名
196
- */
197
- Base.prototype.unLoadJS = function(file) {
198
- // 用完后卸载模块
199
- var name = require.resolve(file);
200
- delete require.cache[name];
201
- }
202
-
203
- /**
204
- * 重新加载JS
205
- * @param {String} file 文件名
206
- */
207
- Base.prototype.reLoadJS = function(file) {
208
- // 先卸载
209
- this.unLoadJS(file);
210
- // 再加载
211
- return this.loadJS(file);
212
- }
213
-
214
- /**
215
- * 查询索引
216
- */
217
- Base.prototype.index = function() {
218
- var arr = [];
219
- var rx = /[\u4e00-\u9fa5]/g;
220
- for (var k in this.dict) {
221
- if (rx.test(k)) {
222
- arr.push(k);
223
- }
224
- }
225
- return arr;
226
- }
227
-
228
- /**
229
- * 查询
230
- * @param {String} name 名称或ID
231
- * @param {Object} model 默认对象
232
- */
233
- Base.prototype.get = function(name, model) {
234
- var obj = this.dict[name];
235
- if (!obj) {
236
- if (model) {
237
- return this.add(name, model);
238
- } else {
239
- return null;
240
- }
241
- }
242
- return obj;
243
- }
244
-
245
- /**
246
- * 获取类
247
- * @param {String} query 查询条件
248
- */
249
- Base.prototype.getClass = function(query) {
250
- var cs;
251
- for (var k in this.dict) {
252
- var o = this.dict[k];
253
- if ($.as(o, query)) {
254
- cs = o;
255
- break;
256
- }
257
- }
258
- return cs;
259
- }
260
-
261
- /**
262
- * 运行脚本
263
- * @param {String} name 名称
264
- * @param {String} func_name 执行方法
265
- * @param {Object} args 参数集合
266
- * @returns {Object} 返回执行结果
267
- */
268
- Base.prototype.run = function(name, func_name, ...args) {
269
- var tip;
270
- var cs = this.dict[name];
271
- if (cs) {
272
- if (!cs.jsFile) {
273
- return "执行错误!原因:脚本文件不存在!\n" + cs.script;
274
- }
275
- try {
276
- // var act = Object.assign({}, cs);
277
- tip = cs.run(func_name, ...args);
278
- } catch (e) {
279
- console.error(e);
280
- tip = "执行错误!原因:" + e.message;
281
- }
282
-
283
- if (this.reload) {
284
- if (process.env.NODE_ENV == "development" || $.config.mode == "dev") {
285
- // 用完后重载模块
286
- var {
287
- methods,
288
- cache
289
- } = this.reLoadJS(cs.jsFile);
290
- cs.methods = methods;
291
- for (var k in cache) {
292
- cs[k] = cache[k]
293
- }
294
- }
295
- }
296
- } else {
297
- tip = `【${name}】不存在!`
298
- }
299
- return tip;
300
- }
301
-
302
- /**
303
- * 创建
304
- * @param {String} name 名称
305
- * @param {Object} model 数据模型
306
- */
307
- Base.prototype.add = function(name, model) {
308
- var file = ("./" + name + "/" + this.extension).fullname(this.path);
309
- file.addDir();
310
- var f = file.replace($.slash + name + $.slash, $.slash + 'tpl' + $.slash);
311
- var m = f.loadJson();
312
- if (model) {
313
- model = Object.assign(m || {}, model, {
314
- name
315
- });
316
- } else {
317
- model = Object.assign(m || {}, {
318
- name
319
- });
320
- }
321
- file.saveJson(model);
322
- return this.load(file);
323
- };
324
-
325
- /**
326
- * 删除
327
- * @param {String} idOrName
328
- */
329
- Base.prototype.del = function(idOrName) {
330
- var obj = this.dict[idOrName];
331
- if (!obj) {
332
- return idOrName + " 不存在!";
333
- }
334
- try {
335
- var dir = obj.jsonFile.dirname();
336
- rmdir(dir);
337
- delete this.dict[idOrName];
338
- } catch (err) {
339
- $.log.error("删除应用失败", err);
340
- }
341
- }
342
-
343
- /**
344
- * 修改
345
- * @param {String} idOrName 唯一标识或名称
346
- * @param {Object} model 模型
347
- * @returns 返回true或false
348
- */
349
- Base.prototype.set = function(idOrName, model) {
350
- if (model) {
351
- var obj = this.dict[idOrName];
352
- if (obj) {
353
- Object.assign(obj, model);
354
- return null;
355
- }
356
- return `【${idOrName}】不存在!`;
357
- }
358
- return "要修改的数据不能为空!";
359
- }
360
-
361
- module.exports = Base;
package/lib/com.js DELETED
@@ -1,29 +0,0 @@
1
- const Base = require("./base.js");
2
-
3
- /**
4
- * 公共开发
5
- */
6
- class Com extends Base {
7
- constructor() {
8
- super();
9
- this.path = "./com".fullname();
10
- // 文件拓展名
11
- this.extension = "com.json";
12
- // 重新加载
13
- this.reload = false;
14
- this.init();
15
- }
16
- }
17
-
18
- /**
19
- * 公共初始化后
20
- */
21
- Com.prototype.init_after = function() {
22
- for (var k in this.dict) {
23
- var cs = this.dict[k];
24
- var key = cs.jsonFile.dirname().basename();
25
- this[key] = cs;
26
- }
27
- }
28
-
29
- module.exports = Com;