wok-server 0.5.0 → 0.7.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/README.en.md +61 -0
  2. package/README.md +44 -29
  3. package/dist/cache/cache.js +98 -98
  4. package/dist/cache/config.js +19 -19
  5. package/dist/cache/index.js +27 -27
  6. package/dist/cache/purge-task.js +46 -46
  7. package/dist/cache/stat.js +47 -47
  8. package/dist/config/convert.js +36 -36
  9. package/dist/config/exception.js +14 -14
  10. package/dist/config/index.js +81 -81
  11. package/dist/http-client/index.js +136 -136
  12. package/dist/i18n/ar.js +17 -17
  13. package/dist/i18n/de.js +17 -17
  14. package/dist/i18n/en-us.js +17 -17
  15. package/dist/i18n/es.js +17 -17
  16. package/dist/i18n/fr.js +17 -17
  17. package/dist/i18n/i18n.js +231 -231
  18. package/dist/i18n/index.js +52 -52
  19. package/dist/i18n/ja.js +17 -17
  20. package/dist/i18n/ko.js +17 -17
  21. package/dist/i18n/msg.js +2 -2
  22. package/dist/i18n/pt.js +17 -17
  23. package/dist/i18n/ru.js +17 -17
  24. package/dist/i18n/tag.js +18 -18
  25. package/dist/i18n/zh-HK.js +17 -17
  26. package/dist/i18n/zh-TW.js +17 -17
  27. package/dist/i18n/zh-cn.js +17 -17
  28. package/dist/index.js +14 -14
  29. package/dist/lock/index.js +114 -114
  30. package/dist/log/config.js +35 -35
  31. package/dist/log/date.js +21 -21
  32. package/dist/log/file.js +198 -198
  33. package/dist/log/index.js +135 -135
  34. package/dist/log/level.js +33 -33
  35. package/dist/log/log.js +56 -56
  36. package/dist/log/store.js +19 -19
  37. package/dist/mongodb/collection.js +2 -2
  38. package/dist/mongodb/config.js +34 -34
  39. package/dist/mongodb/doc.js +2 -2
  40. package/dist/mongodb/exception.js +14 -14
  41. package/dist/mongodb/index.js +58 -58
  42. package/dist/mongodb/manager/base.js +563 -563
  43. package/dist/mongodb/manager/index.js +63 -63
  44. package/dist/mongodb/manager/tx-strict.js +84 -84
  45. package/dist/mongodb/manager/tx.js +30 -30
  46. package/dist/mongodb/migration.js +52 -52
  47. package/dist/mvc/access-log.js +33 -33
  48. package/dist/mvc/config.js +27 -27
  49. package/dist/mvc/exchange.js +113 -113
  50. package/dist/mvc/handler/index.js +7 -6
  51. package/dist/mvc/handler/json.js +65 -65
  52. package/dist/mvc/handler/restful.js +35 -35
  53. package/dist/mvc/handler/sse.js +65 -0
  54. package/dist/mvc/handler/upload.js +31 -31
  55. package/dist/mvc/index.js +50 -50
  56. package/dist/mvc/interceptor.js +2 -2
  57. package/dist/mvc/query.js +43 -43
  58. package/dist/mvc/render/file.js +132 -132
  59. package/dist/mvc/render/html/html.js +90 -90
  60. package/dist/mvc/render/html/index.js +18 -18
  61. package/dist/mvc/render/html/style.js +2 -2
  62. package/dist/mvc/render/index.js +7 -7
  63. package/dist/mvc/render/json.js +26 -26
  64. package/dist/mvc/render/text.js +16 -16
  65. package/dist/mvc/router.js +2 -2
  66. package/dist/mvc/server.js +272 -272
  67. package/dist/mvc/static/header.js +67 -67
  68. package/dist/mvc/static/index.js +6 -6
  69. package/dist/mvc/static/mime-type.js +84 -84
  70. package/dist/mvc/static/server-cache-config.js +66 -66
  71. package/dist/mvc/static/server-cache.js +133 -133
  72. package/dist/mvc/static/static-handler.js +372 -372
  73. package/dist/mysql/config.js +51 -51
  74. package/dist/mysql/exception.js +14 -14
  75. package/dist/mysql/index.js +87 -87
  76. package/dist/mysql/manager/base.js +278 -239
  77. package/dist/mysql/manager/index.js +107 -107
  78. package/dist/mysql/manager/ops/count.js +20 -20
  79. package/dist/mysql/manager/ops/criteria.js +381 -356
  80. package/dist/mysql/manager/ops/delete.js +59 -65
  81. package/dist/mysql/manager/ops/exist.js +26 -26
  82. package/dist/mysql/manager/ops/find.js +149 -169
  83. package/dist/mysql/manager/ops/index.js +16 -14
  84. package/dist/mysql/manager/ops/insert.js +132 -106
  85. package/dist/mysql/manager/ops/modify.js +10 -10
  86. package/dist/mysql/manager/ops/order-by.js +28 -0
  87. package/dist/mysql/manager/ops/paginate.js +48 -23
  88. package/dist/mysql/manager/ops/query.js +9 -9
  89. package/dist/mysql/manager/ops/update.js +222 -216
  90. package/dist/mysql/manager/ops/upsert.js +178 -0
  91. package/dist/mysql/manager/ops/utils.js +28 -24
  92. package/dist/mysql/manager/tx-strict.js +103 -103
  93. package/dist/mysql/manager/tx.js +30 -30
  94. package/dist/mysql/manager/utils.js +56 -56
  95. package/dist/mysql/migration.js +136 -136
  96. package/dist/mysql/table-info.js +8 -8
  97. package/dist/task/daily.js +59 -59
  98. package/dist/task/fixed-delay.js +38 -38
  99. package/dist/task/fixed-rate.js +42 -42
  100. package/dist/task/index.js +9 -9
  101. package/dist/task/task.js +56 -56
  102. package/dist/validation/exception.js +36 -36
  103. package/dist/validation/index.js +40 -40
  104. package/dist/validation/validator/array.js +34 -34
  105. package/dist/validation/validator/enum.js +28 -28
  106. package/dist/validation/validator/index.js +14 -14
  107. package/dist/validation/validator/length.js +40 -40
  108. package/dist/validation/validator/max-length.js +35 -35
  109. package/dist/validation/validator/max.js +29 -29
  110. package/dist/validation/validator/min-length.js +33 -33
  111. package/dist/validation/validator/min.js +29 -29
  112. package/dist/validation/validator/not-blank.js +33 -33
  113. package/dist/validation/validator/not-null.js +21 -21
  114. package/dist/validation/validator/plain-obj.js +32 -32
  115. package/dist/validation/validator/regexp.js +34 -34
  116. package/documentation/en/cache.md +56 -0
  117. package/documentation/en/config.md +96 -0
  118. package/documentation/en/engineering.md +256 -0
  119. package/documentation/en/http-client.md +32 -0
  120. package/documentation/en/i18n.md +143 -0
  121. package/documentation/en/index.md +24 -0
  122. package/documentation/en/lock.md +51 -0
  123. package/documentation/en/log.md +109 -0
  124. package/documentation/en/mongodb.md +256 -0
  125. package/documentation/en/mvc.md +688 -0
  126. package/documentation/en/mysql.md +682 -0
  127. package/documentation/en/task.md +45 -0
  128. package/documentation/en/test.md +56 -0
  129. package/documentation/en/validate.md +130 -0
  130. package/documentation/zh-cn/mvc.md +66 -24
  131. package/documentation/zh-cn/mysql.md +146 -17
  132. package/package.json +4 -1
  133. package/skills/wok-server-api-rules/SKILL.md +350 -0
  134. package/skills/wok-server-cache/SKILL.md +216 -0
  135. package/skills/wok-server-code-navigation/SKILL.md +153 -0
  136. package/skills/wok-server-config/SKILL.md +200 -0
  137. package/skills/wok-server-getting-started/SKILL.md +123 -0
  138. package/skills/wok-server-getting-started/references/engineering.md +169 -0
  139. package/skills/wok-server-http-client/SKILL.md +164 -0
  140. package/skills/wok-server-i18n/SKILL.md +214 -0
  141. package/skills/wok-server-lock/SKILL.md +144 -0
  142. package/skills/wok-server-log/SKILL.md +218 -0
  143. package/skills/wok-server-mongodb/SKILL.md +235 -0
  144. package/skills/wok-server-mvc/SKILL.md +251 -0
  145. package/skills/wok-server-mvc/references/respond-html.md +157 -0
  146. package/skills/wok-server-mvc/references/sse.md +121 -0
  147. package/skills/wok-server-mvc/references/static-files.md +47 -0
  148. package/skills/wok-server-mvc/references/upload.md +62 -0
  149. package/skills/wok-server-mvc/references/websocket.md +30 -0
  150. package/skills/wok-server-mysql/SKILL.md +388 -0
  151. package/skills/wok-server-mysql/references/multi-datasource.md +76 -0
  152. package/skills/wok-server-mysql/references/version-control.md +22 -0
  153. package/skills/wok-server-task/SKILL.md +158 -0
  154. package/skills/wok-server-validate/SKILL.md +167 -0
  155. package/src/cache/cache.ts +118 -0
  156. package/src/cache/config.ts +53 -0
  157. package/src/cache/index.ts +27 -0
  158. package/src/cache/purge-task.ts +53 -0
  159. package/src/cache/stat.ts +47 -0
  160. package/src/config/convert.ts +27 -0
  161. package/src/config/exception.ts +8 -0
  162. package/src/config/index.ts +92 -0
  163. package/src/http-client/index.ts +202 -0
  164. package/src/i18n/ar.ts +16 -0
  165. package/src/i18n/de.ts +16 -0
  166. package/src/i18n/en-us.ts +16 -0
  167. package/src/i18n/es.ts +16 -0
  168. package/src/i18n/fr.ts +16 -0
  169. package/src/i18n/i18n.ts +230 -0
  170. package/src/i18n/index.ts +50 -0
  171. package/src/i18n/ja.ts +16 -0
  172. package/src/i18n/ko.ts +16 -0
  173. package/src/i18n/msg.ts +50 -0
  174. package/src/i18n/pt.ts +16 -0
  175. package/src/i18n/ru.ts +16 -0
  176. package/src/i18n/tag.ts +18 -0
  177. package/src/i18n/zh-HK.ts +16 -0
  178. package/src/i18n/zh-TW.ts +16 -0
  179. package/src/i18n/zh-cn.ts +16 -0
  180. package/src/index.ts +11 -0
  181. package/src/lock/index.ts +164 -0
  182. package/src/log/config.ts +71 -0
  183. package/src/log/date.ts +19 -0
  184. package/src/log/file.ts +215 -0
  185. package/src/log/index.ts +136 -0
  186. package/src/log/level.ts +29 -0
  187. package/src/log/log.ts +77 -0
  188. package/src/log/store.ts +31 -0
  189. package/src/mongodb/collection.ts +25 -0
  190. package/src/mongodb/config.ts +69 -0
  191. package/src/mongodb/doc.ts +12 -0
  192. package/src/mongodb/exception.ts +8 -0
  193. package/src/mongodb/index.ts +71 -0
  194. package/src/mongodb/manager/base.ts +674 -0
  195. package/src/mongodb/manager/index.ts +80 -0
  196. package/src/mongodb/manager/tx-strict.ts +153 -0
  197. package/src/mongodb/manager/tx.ts +34 -0
  198. package/src/mongodb/migration.ts +66 -0
  199. package/src/mvc/access-log.ts +33 -0
  200. package/src/mvc/config.ts +70 -0
  201. package/src/mvc/exchange.ts +126 -0
  202. package/src/mvc/handler/index.ts +4 -0
  203. package/src/mvc/handler/json.ts +96 -0
  204. package/src/mvc/handler/restful.ts +39 -0
  205. package/src/mvc/handler/sse.ts +90 -0
  206. package/src/mvc/handler/upload.ts +54 -0
  207. package/src/mvc/index.ts +48 -0
  208. package/src/mvc/interceptor.ts +12 -0
  209. package/src/mvc/query.ts +36 -0
  210. package/src/mvc/render/file.ts +148 -0
  211. package/src/mvc/render/html/html.ts +187 -0
  212. package/src/mvc/render/html/index.ts +16 -0
  213. package/src/mvc/render/html/style.ts +1201 -0
  214. package/src/mvc/render/index.ts +4 -0
  215. package/src/mvc/render/json.ts +24 -0
  216. package/src/mvc/render/text.ts +14 -0
  217. package/src/mvc/router.ts +13 -0
  218. package/src/mvc/server.ts +315 -0
  219. package/src/mvc/static/header.ts +86 -0
  220. package/src/mvc/static/index.ts +3 -0
  221. package/src/mvc/static/mime-type.ts +81 -0
  222. package/src/mvc/static/server-cache-config.ts +92 -0
  223. package/src/mvc/static/server-cache.ts +171 -0
  224. package/src/mvc/static/static-handler.ts +445 -0
  225. package/src/mysql/config.ts +130 -0
  226. package/src/mysql/exception.ts +8 -0
  227. package/src/mysql/index.ts +88 -0
  228. package/src/mysql/manager/base.ts +332 -0
  229. package/src/mysql/manager/index.ts +112 -0
  230. package/src/mysql/manager/ops/count.ts +30 -0
  231. package/src/mysql/manager/ops/criteria.ts +446 -0
  232. package/src/mysql/manager/ops/delete.ts +91 -0
  233. package/src/mysql/manager/ops/exist.ts +41 -0
  234. package/src/mysql/manager/ops/find.ts +209 -0
  235. package/src/mysql/manager/ops/index.ts +13 -0
  236. package/src/mysql/manager/ops/insert.ts +158 -0
  237. package/src/mysql/manager/ops/modify.ts +14 -0
  238. package/src/mysql/manager/ops/order-by.ts +58 -0
  239. package/src/mysql/manager/ops/paginate.ts +100 -0
  240. package/src/mysql/manager/ops/query.ts +13 -0
  241. package/src/mysql/manager/ops/update.ts +318 -0
  242. package/src/mysql/manager/ops/upsert.ts +224 -0
  243. package/src/mysql/manager/ops/utils.ts +24 -0
  244. package/src/mysql/manager/tx-strict.ts +138 -0
  245. package/src/mysql/manager/tx.ts +31 -0
  246. package/src/mysql/manager/utils.ts +75 -0
  247. package/src/mysql/migration.ts +149 -0
  248. package/src/mysql/table-info.ts +41 -0
  249. package/src/task/daily.ts +70 -0
  250. package/src/task/fixed-delay.ts +45 -0
  251. package/src/task/fixed-rate.ts +49 -0
  252. package/src/task/index.ts +4 -0
  253. package/src/task/task.ts +70 -0
  254. package/src/validation/exception.ts +27 -0
  255. package/src/validation/index.ts +61 -0
  256. package/src/validation/validator/array.ts +32 -0
  257. package/src/validation/validator/enum.ts +25 -0
  258. package/src/validation/validator/index.ts +11 -0
  259. package/src/validation/validator/length.ts +42 -0
  260. package/src/validation/validator/max-length.ts +33 -0
  261. package/src/validation/validator/max.ts +26 -0
  262. package/src/validation/validator/min-length.ts +31 -0
  263. package/src/validation/validator/min.ts +26 -0
  264. package/src/validation/validator/not-blank.ts +31 -0
  265. package/src/validation/validator/not-null.ts +19 -0
  266. package/src/validation/validator/plain-obj.ts +30 -0
  267. package/src/validation/validator/regexp.ts +32 -0
  268. package/types/cache/cache.d.ts +52 -52
  269. package/types/cache/config.d.ts +32 -32
  270. package/types/cache/index.d.ts +2 -2
  271. package/types/cache/purge-task.d.ts +11 -11
  272. package/types/cache/stat.d.ts +26 -26
  273. package/types/config/convert.d.ts +6 -6
  274. package/types/config/exception.d.ts +7 -7
  275. package/types/config/index.d.ts +25 -25
  276. package/types/http-client/index.d.ts +71 -71
  277. package/types/i18n/ar.d.ts +2 -2
  278. package/types/i18n/de.d.ts +2 -2
  279. package/types/i18n/en-us.d.ts +2 -2
  280. package/types/i18n/es.d.ts +2 -2
  281. package/types/i18n/fr.d.ts +2 -2
  282. package/types/i18n/i18n.d.ts +102 -102
  283. package/types/i18n/index.d.ts +9 -9
  284. package/types/i18n/ja.d.ts +2 -2
  285. package/types/i18n/ko.d.ts +2 -2
  286. package/types/i18n/msg.d.ts +50 -50
  287. package/types/i18n/pt.d.ts +2 -2
  288. package/types/i18n/ru.d.ts +2 -2
  289. package/types/i18n/tag.d.ts +11 -11
  290. package/types/i18n/zh-HK.d.ts +2 -2
  291. package/types/i18n/zh-TW.d.ts +2 -2
  292. package/types/i18n/zh-cn.d.ts +2 -2
  293. package/types/index.d.ts +11 -11
  294. package/types/lock/index.d.ts +64 -64
  295. package/types/log/config.d.ts +35 -35
  296. package/types/log/date.d.ts +2 -2
  297. package/types/log/file.d.ts +13 -13
  298. package/types/log/index.d.ts +53 -53
  299. package/types/log/level.d.ts +14 -14
  300. package/types/log/log.d.ts +40 -40
  301. package/types/log/store.d.ts +19 -19
  302. package/types/mongodb/collection.d.ts +25 -25
  303. package/types/mongodb/config.d.ts +45 -45
  304. package/types/mongodb/doc.d.ts +11 -11
  305. package/types/mongodb/exception.d.ts +7 -7
  306. package/types/mongodb/index.d.ts +29 -29
  307. package/types/mongodb/manager/base.d.ts +188 -188
  308. package/types/mongodb/manager/index.d.ts +38 -38
  309. package/types/mongodb/manager/tx-strict.d.ts +41 -41
  310. package/types/mongodb/manager/tx.d.ts +21 -21
  311. package/types/mongodb/migration.d.ts +12 -12
  312. package/types/mvc/access-log.d.ts +7 -7
  313. package/types/mvc/config.d.ts +42 -42
  314. package/types/mvc/exchange.d.ts +72 -72
  315. package/types/mvc/handler/index.d.ts +4 -3
  316. package/types/mvc/handler/json.d.ts +44 -44
  317. package/types/mvc/handler/restful.d.ts +11 -11
  318. package/types/mvc/handler/sse.d.ts +34 -0
  319. package/types/mvc/handler/upload.d.ts +36 -36
  320. package/types/mvc/index.d.ts +22 -22
  321. package/types/mvc/interceptor.d.ts +11 -11
  322. package/types/mvc/query.d.ts +13 -13
  323. package/types/mvc/render/file.d.ts +10 -10
  324. package/types/mvc/render/html/html.d.ts +98 -98
  325. package/types/mvc/render/html/index.d.ts +11 -11
  326. package/types/mvc/render/html/style.d.ts +1201 -1201
  327. package/types/mvc/render/index.d.ts +4 -4
  328. package/types/mvc/render/json.d.ts +17 -17
  329. package/types/mvc/render/text.d.ts +10 -10
  330. package/types/mvc/router.d.ts +11 -11
  331. package/types/mvc/server.d.ts +90 -90
  332. package/types/mvc/static/header.d.ts +27 -27
  333. package/types/mvc/static/index.d.ts +3 -3
  334. package/types/mvc/static/mime-type.d.ts +2 -2
  335. package/types/mvc/static/server-cache-config.d.ts +30 -30
  336. package/types/mvc/static/server-cache.d.ts +76 -76
  337. package/types/mvc/static/static-handler.d.ts +77 -77
  338. package/types/mysql/config.d.ts +90 -90
  339. package/types/mysql/exception.d.ts +7 -7
  340. package/types/mysql/index.d.ts +16 -16
  341. package/types/mysql/manager/base.d.ts +196 -165
  342. package/types/mysql/manager/index.d.ts +36 -36
  343. package/types/mysql/manager/ops/count.d.ts +13 -13
  344. package/types/mysql/manager/ops/criteria.d.ts +144 -134
  345. package/types/mysql/manager/ops/delete.d.ts +47 -46
  346. package/types/mysql/manager/ops/exist.d.ts +6 -6
  347. package/types/mysql/manager/ops/find.d.ts +87 -86
  348. package/types/mysql/manager/ops/index.d.ts +12 -10
  349. package/types/mysql/manager/ops/insert.d.ts +32 -18
  350. package/types/mysql/manager/ops/modify.d.ts +3 -3
  351. package/types/mysql/manager/ops/order-by.d.ts +38 -0
  352. package/types/mysql/manager/ops/paginate.d.ts +53 -36
  353. package/types/mysql/manager/ops/query.d.ts +3 -3
  354. package/types/mysql/manager/ops/update.d.ts +99 -76
  355. package/types/mysql/manager/ops/upsert.d.ts +36 -0
  356. package/types/mysql/manager/ops/utils.d.ts +5 -5
  357. package/types/mysql/manager/tx-strict.d.ts +36 -36
  358. package/types/mysql/manager/tx.d.ts +15 -15
  359. package/types/mysql/manager/utils.d.ts +17 -17
  360. package/types/mysql/migration.d.ts +8 -8
  361. package/types/mysql/table-info.d.ts +36 -36
  362. package/types/task/daily.d.ts +16 -16
  363. package/types/task/fixed-delay.d.ts +9 -9
  364. package/types/task/fixed-rate.d.ts +9 -9
  365. package/types/task/index.d.ts +4 -4
  366. package/types/task/task.d.ts +34 -34
  367. package/types/validation/exception.d.ts +38 -38
  368. package/types/validation/index.d.ts +32 -32
  369. package/types/validation/validator/array.d.ts +5 -5
  370. package/types/validation/validator/enum.d.ts +8 -8
  371. package/types/validation/validator/index.d.ts +11 -11
  372. package/types/validation/validator/length.d.ts +10 -10
  373. package/types/validation/validator/max-length.d.ts +8 -8
  374. package/types/validation/validator/max.d.ts +7 -7
  375. package/types/validation/validator/min-length.d.ts +6 -6
  376. package/types/validation/validator/min.d.ts +7 -7
  377. package/types/validation/validator/not-blank.d.ts +7 -7
  378. package/types/validation/validator/not-null.d.ts +6 -6
  379. package/types/validation/validator/plain-obj.d.ts +7 -7
  380. package/types/validation/validator/regexp.d.ts +8 -8
@@ -1,64 +1,64 @@
1
- export interface LockInfo {
2
- /**
3
- * 一个随机值,用于验证锁是否为当前程序所拥有
4
- */
5
- value: string;
6
- /**
7
- * 锁过期的时间
8
- */
9
- expiresAt: number;
10
- }
11
- /**
12
- * 锁管理器,主要用于将不确定的顺序且有冲突的异步操作顺序执行,
13
- * 防止异步流程庞大穿插执行造成的数据混乱和错误,常见于请求的处理。
14
- */
15
- declare class ServerLockManager {
16
- /**
17
- * 存储锁信息的表,值是一个随机值,用于验证锁是否为当前程序所拥有
18
- */
19
- private lockMap;
20
- constructor();
21
- /**
22
- * 尝试竞争锁,如果成功获取到锁,则执行 run 函数
23
- * @param opts
24
- * @returns 是否获取到锁
25
- */
26
- tryLock(opts: {
27
- /**
28
- * 竞争锁的标识,相同的 key 会处于竞争关系,从而按顺序执行
29
- */
30
- key: string;
31
- /**
32
- * 等待秒数,如果没有获取锁,要等待的时间,单位秒。
33
- * 不设置的情况下则不会等待,获取不到锁就立即返回。
34
- */
35
- waitSeconds?: number;
36
- /**
37
- * 运行函数,成功获取锁就会执行
38
- * @returns
39
- */
40
- run: () => Promise<void>;
41
- /**
42
- * 过期时间,单位秒。目的是防止一个程序长期占用锁,导致其它程序获取不到锁一直不能被执行
43
- * 导致的死锁问题。锁一旦过期,当前程序就不再拥有锁,其它程序就可以获取到锁。默认 60 秒。
44
- */
45
- expiresInSeconds?: number;
46
- }): Promise<boolean>;
47
- /**
48
- * 等待锁
49
- * @param opts
50
- */
51
- private waitLock;
52
- /**
53
- * 沉睡
54
- * @returns
55
- */
56
- private sleep;
57
- }
58
- /**
59
- * 获取锁管理器。锁管理器提供一个简单的异步并发控制,用于将不确定的顺序的有冲突的异步操作顺序执行,
60
- * 防止异步流程庞大穿插执行造成的数据混乱和错误,常见于请求的处理。
61
- * @returns
62
- */
63
- export declare function getLockManager(): ServerLockManager;
64
- export {};
1
+ export interface LockInfo {
2
+ /**
3
+ * 一个随机值,用于验证锁是否为当前程序所拥有
4
+ */
5
+ value: string;
6
+ /**
7
+ * 锁过期的时间
8
+ */
9
+ expiresAt: number;
10
+ }
11
+ /**
12
+ * 锁管理器,主要用于将不确定的顺序且有冲突的异步操作顺序执行,
13
+ * 防止异步流程庞大穿插执行造成的数据混乱和错误,常见于请求的处理。
14
+ */
15
+ declare class ServerLockManager {
16
+ /**
17
+ * 存储锁信息的表,值是一个随机值,用于验证锁是否为当前程序所拥有
18
+ */
19
+ private lockMap;
20
+ constructor();
21
+ /**
22
+ * 尝试竞争锁,如果成功获取到锁,则执行 run 函数
23
+ * @param opts
24
+ * @returns 是否获取到锁
25
+ */
26
+ tryLock(opts: {
27
+ /**
28
+ * 竞争锁的标识,相同的 key 会处于竞争关系,从而按顺序执行
29
+ */
30
+ key: string;
31
+ /**
32
+ * 等待秒数,如果没有获取锁,要等待的时间,单位秒。
33
+ * 不设置的情况下则不会等待,获取不到锁就立即返回。
34
+ */
35
+ waitSeconds?: number;
36
+ /**
37
+ * 运行函数,成功获取锁就会执行
38
+ * @returns
39
+ */
40
+ run: () => Promise<void>;
41
+ /**
42
+ * 过期时间,单位秒。目的是防止一个程序长期占用锁,导致其它程序获取不到锁一直不能被执行
43
+ * 导致的死锁问题。锁一旦过期,当前程序就不再拥有锁,其它程序就可以获取到锁。默认 60 秒。
44
+ */
45
+ expiresInSeconds?: number;
46
+ }): Promise<boolean>;
47
+ /**
48
+ * 等待锁
49
+ * @param opts
50
+ */
51
+ private waitLock;
52
+ /**
53
+ * 沉睡
54
+ * @returns
55
+ */
56
+ private sleep;
57
+ }
58
+ /**
59
+ * 获取锁管理器。锁管理器提供一个简单的异步并发控制,用于将不确定的顺序的有冲突的异步操作顺序执行,
60
+ * 防止异步流程庞大穿插执行造成的数据混乱和错误,常见于请求的处理。
61
+ * @returns
62
+ */
63
+ export declare function getLockManager(): ServerLockManager;
64
+ export {};
@@ -1,35 +1,35 @@
1
- import { LogLevel } from './level';
2
- /**
3
- * 日志配置的定义
4
- */
5
- interface EnvConfig {
6
- /**
7
- * 是否输出日志到控制台
8
- */
9
- console: boolean;
10
- /**
11
- * 输出日志的格式
12
- */
13
- format: 'text' | 'json';
14
- /**
15
- * 是否输出到文件,如果为 true ,则会在根目录下生成 logs 目录存放日志文件.
16
- */
17
- file: boolean;
18
- /**
19
- * 文件目录
20
- */
21
- fileDir: string;
22
- /**
23
- * 文件最大保存天数.需要开启文件才有效.
24
- */
25
- fileMaxDays: number;
26
- /**
27
- * 要输出的日志级别.
28
- */
29
- level: string;
30
- }
31
- export type LogConfig = Omit<EnvConfig, 'level'> & {
32
- level: LogLevel;
33
- };
34
- export declare const config: LogConfig;
35
- export {};
1
+ import { LogLevel } from './level';
2
+ /**
3
+ * 日志配置的定义
4
+ */
5
+ interface EnvConfig {
6
+ /**
7
+ * 是否输出日志到控制台
8
+ */
9
+ console: boolean;
10
+ /**
11
+ * 输出日志的格式
12
+ */
13
+ format: 'text' | 'json';
14
+ /**
15
+ * 是否输出到文件,如果为 true ,则会在根目录下生成 logs 目录存放日志文件.
16
+ */
17
+ file: boolean;
18
+ /**
19
+ * 文件目录
20
+ */
21
+ fileDir: string;
22
+ /**
23
+ * 文件最大保存天数.需要开启文件才有效.
24
+ */
25
+ fileMaxDays: number;
26
+ /**
27
+ * 要输出的日志级别.
28
+ */
29
+ level: string;
30
+ }
31
+ export type LogConfig = Omit<EnvConfig, 'level'> & {
32
+ level: LogLevel;
33
+ };
34
+ export declare const config: LogConfig;
35
+ export {};
@@ -1,2 +1,2 @@
1
- export declare function currentDateTimeStr(): string;
2
- export declare function formatDateTime(date: Date): string;
1
+ export declare function currentDateTimeStr(): string;
2
+ export declare function formatDateTime(date: Date): string;
@@ -1,13 +1,13 @@
1
- import { LogConfig } from './config';
2
- import { Log } from './log';
3
- /**
4
- * 文件存储.
5
- * @param log 日志对象
6
- * @param logConfig 日志配置
7
- */
8
- export declare function fileStore(log: Log, logConfig: LogConfig): void;
9
- /**
10
- * 确保所有日志都被写入文件
11
- * 可以在应用程序关闭时调用
12
- */
13
- export declare function flushLogsToFile(): Promise<void>;
1
+ import { LogConfig } from './config';
2
+ import { Log } from './log';
3
+ /**
4
+ * 文件存储.
5
+ * @param log 日志对象
6
+ * @param logConfig 日志配置
7
+ */
8
+ export declare function fileStore(log: Log, logConfig: LogConfig): void;
9
+ /**
10
+ * 确保所有日志都被写入文件
11
+ * 可以在应用程序关闭时调用
12
+ */
13
+ export declare function flushLogsToFile(): Promise<void>;
@@ -1,53 +1,53 @@
1
- declare class Logger {
2
- private prefix?;
3
- constructor(prefix?: string | undefined);
4
- /**
5
- * 输出日志
6
- * @param level
7
- * @param message
8
- * @param error
9
- */
10
- private log;
11
- /**
12
- * debug 日志
13
- */
14
- debug(message: string): void;
15
- isDebugEnabled(): boolean;
16
- /**
17
- * info 日志
18
- * @param message
19
- */
20
- info(message: string): void;
21
- isInfoEnabled(): boolean;
22
- /**
23
- * 警告日志
24
- * @param message
25
- * @param error
26
- */
27
- warn(message: string, error?: any): void;
28
- /**
29
- * 等同于 warn
30
- * @param message
31
- * @param error
32
- */
33
- warning(message: string, error?: any): void;
34
- isWarnEnabled(): boolean;
35
- /**
36
- * 错误日志
37
- * @param message
38
- * @param error
39
- */
40
- error(message: string, error?: any): void;
41
- isErrorEnabled(): boolean;
42
- }
43
- /**
44
- * 获取日志对象.
45
- *
46
- * @param prefix 日志前缀,如果有值,每条日志前都会加上前缀信息
47
- * @returns
48
- */
49
- export declare function getLogger(prefix?: string): Logger;
50
- export * from './config';
51
- export * from './level';
52
- export * from './log';
53
- export { setLogStore } from './store';
1
+ declare class Logger {
2
+ private prefix?;
3
+ constructor(prefix?: string | undefined);
4
+ /**
5
+ * 输出日志
6
+ * @param level
7
+ * @param message
8
+ * @param error
9
+ */
10
+ private log;
11
+ /**
12
+ * debug 日志
13
+ */
14
+ debug(message: string): void;
15
+ isDebugEnabled(): boolean;
16
+ /**
17
+ * info 日志
18
+ * @param message
19
+ */
20
+ info(message: string): void;
21
+ isInfoEnabled(): boolean;
22
+ /**
23
+ * 警告日志
24
+ * @param message
25
+ * @param error
26
+ */
27
+ warn(message: string, error?: any): void;
28
+ /**
29
+ * 等同于 warn
30
+ * @param message
31
+ * @param error
32
+ */
33
+ warning(message: string, error?: any): void;
34
+ isWarnEnabled(): boolean;
35
+ /**
36
+ * 错误日志
37
+ * @param message
38
+ * @param error
39
+ */
40
+ error(message: string, error?: any): void;
41
+ isErrorEnabled(): boolean;
42
+ }
43
+ /**
44
+ * 获取日志对象.
45
+ *
46
+ * @param prefix 日志前缀,如果有值,每条日志前都会加上前缀信息
47
+ * @returns
48
+ */
49
+ export declare function getLogger(prefix?: string): Logger;
50
+ export * from './config';
51
+ export * from './level';
52
+ export * from './log';
53
+ export { setLogStore } from './store';
@@ -1,14 +1,14 @@
1
- /**
2
- * 日志级别.
3
- */
4
- export declare enum LogLevel {
5
- DEBUG = 1,
6
- INFO = 2,
7
- WARN = 3,
8
- ERROR = 4
9
- }
10
- /**
11
- * 解析日志级别
12
- * @param level
13
- */
14
- export declare function parseLogLevel(level: string): LogLevel;
1
+ /**
2
+ * 日志级别.
3
+ */
4
+ export declare enum LogLevel {
5
+ DEBUG = 1,
6
+ INFO = 2,
7
+ WARN = 3,
8
+ ERROR = 4
9
+ }
10
+ /**
11
+ * 解析日志级别
12
+ * @param level
13
+ */
14
+ export declare function parseLogLevel(level: string): LogLevel;
@@ -1,40 +1,40 @@
1
- import { LogLevel } from './level';
2
- /**
3
- * 单条日志的信息
4
- */
5
- export interface Log {
6
- /**
7
- * 日志的时间
8
- */
9
- time: Date;
10
- /**
11
- * 日志的等级
12
- */
13
- level: LogLevel;
14
- /**
15
- * 日志的内容
16
- */
17
- content: string;
18
- /**
19
- * 异常信息
20
- */
21
- error?: any;
22
- /**
23
- * 前缀信息
24
- */
25
- prefix?: string;
26
- }
27
- /**
28
- * 将日志格式化为简单的文本
29
- * @param log
30
- * @param ignoreError 忽略异常信息
31
- * @returns
32
- */
33
- export declare function formatLogText(log: Log, ignoreError?: boolean): string;
34
- /**
35
- * 将日志格式化为 json
36
- * @param log
37
- * @param ignoreError 忽略异常信息
38
- * @returns
39
- */
40
- export declare function formatLogJson(log: Log, ignoreError?: boolean): string;
1
+ import { LogLevel } from './level';
2
+ /**
3
+ * 单条日志的信息
4
+ */
5
+ export interface Log {
6
+ /**
7
+ * 日志的时间
8
+ */
9
+ time: Date;
10
+ /**
11
+ * 日志的等级
12
+ */
13
+ level: LogLevel;
14
+ /**
15
+ * 日志的内容
16
+ */
17
+ content: string;
18
+ /**
19
+ * 异常信息
20
+ */
21
+ error?: any;
22
+ /**
23
+ * 前缀信息
24
+ */
25
+ prefix?: string;
26
+ }
27
+ /**
28
+ * 将日志格式化为简单的文本
29
+ * @param log
30
+ * @param ignoreError 忽略异常信息
31
+ * @returns
32
+ */
33
+ export declare function formatLogText(log: Log, ignoreError?: boolean): string;
34
+ /**
35
+ * 将日志格式化为 json
36
+ * @param log
37
+ * @param ignoreError 忽略异常信息
38
+ * @returns
39
+ */
40
+ export declare function formatLogJson(log: Log, ignoreError?: boolean): string;
@@ -1,19 +1,19 @@
1
- import { LogConfig } from './config';
2
- import { Log } from './log';
3
- /**
4
- * 日志存储函数
5
- */
6
- export interface LogStore {
7
- /**
8
- * 日志存储函数
9
- * @param log 日志
10
- * @param config 日志配置
11
- */
12
- (log: Log, config: LogConfig): void;
13
- }
14
- /**
15
- * 设置日志存储.
16
- * @param store
17
- */
18
- export declare function setLogStore(store: LogStore): void;
19
- export declare function getLogStore(): LogStore | undefined;
1
+ import { LogConfig } from './config';
2
+ import { Log } from './log';
3
+ /**
4
+ * 日志存储函数
5
+ */
6
+ export interface LogStore {
7
+ /**
8
+ * 日志存储函数
9
+ * @param log 日志
10
+ * @param config 日志配置
11
+ */
12
+ (log: Log, config: LogConfig): void;
13
+ }
14
+ /**
15
+ * 设置日志存储.
16
+ * @param store
17
+ */
18
+ export declare function setLogStore(store: LogStore): void;
19
+ export declare function getLogStore(): LogStore | undefined;
@@ -1,25 +1,25 @@
1
- /**
2
- * mogodb 集合信息
3
- *
4
- * <T> 数据类型,不能包含有 _id 字段,主键字段名称固定,不可以设置
5
- */
6
- export interface MongoCollection<T> {
7
- /**
8
- * 集合名称.
9
- */
10
- collectionName: string;
11
- /**
12
- * 创建时间字段信息,设置后在创建时会自动更新该字段
13
- */
14
- createdDate?: {
15
- field: keyof T;
16
- type: 'number' | 'date';
17
- };
18
- /**
19
- * 更新时间字段信息,设置后在更新记录时会自动维护该字段
20
- */
21
- updatedDate?: {
22
- field: keyof T;
23
- type: 'number' | 'date';
24
- };
25
- }
1
+ /**
2
+ * mogodb 集合信息
3
+ *
4
+ * <T> 数据类型,不能包含有 _id 字段,主键字段名称固定,不可以设置
5
+ */
6
+ export interface MongoCollection<T> {
7
+ /**
8
+ * 集合名称.
9
+ */
10
+ collectionName: string;
11
+ /**
12
+ * 创建时间字段信息,设置后在创建时会自动更新该字段
13
+ */
14
+ createdDate?: {
15
+ field: keyof T;
16
+ type: 'number' | 'date';
17
+ };
18
+ /**
19
+ * 更新时间字段信息,设置后在更新记录时会自动维护该字段
20
+ */
21
+ updatedDate?: {
22
+ field: keyof T;
23
+ type: 'number' | 'date';
24
+ };
25
+ }
@@ -1,45 +1,45 @@
1
- import { ValidationOpts } from '../validation';
2
- /**
3
- * MongoDB 配置.
4
- */
5
- export interface MongoDBConfig {
6
- /**
7
- * 连接地址.
8
- * 示例:mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority
9
- */
10
- uri: string;
11
- /** The maximum number of connections in the connection pool. */
12
- maxPoolSize: number;
13
- /** The minimum number of connections in the connection pool. */
14
- minPoolSize: number;
15
- /** The maximum number of connections that may be in the process of being established concurrently by the connection pool. */
16
- maxConnecting: number;
17
- /** The maximum number of milliseconds that a connection can remain idle in the pool before being removed and closed. */
18
- maxIdleTimeMS: number;
19
- /** The maximum time in milliseconds that a thread can wait for a connection to become available. */
20
- waitQueueTimeoutMS: number;
21
- /**
22
- * 开启慢查询警告,默认开启
23
- */
24
- slowQueryWarn: boolean;
25
- /**
26
- * 慢查询毫秒数,默认 200
27
- */
28
- slowQueryMs: number;
29
- /**
30
- *事务超时时间,单位毫秒,默认 5000,设置为0的值表示不限制
31
- */
32
- transactionTimeout: number;
33
- /**
34
- * 事务严格模式
35
- */
36
- transactionStrict: boolean;
37
- }
38
- /**
39
- * 默认配置.
40
- */
41
- export declare const defaultConfig: MongoDBConfig;
42
- /**
43
- * 配置校验
44
- */
45
- export declare const configValidation: ValidationOpts<MongoDBConfig>;
1
+ import { ValidationOpts } from '../validation';
2
+ /**
3
+ * MongoDB 配置.
4
+ */
5
+ export interface MongoDBConfig {
6
+ /**
7
+ * 连接地址.
8
+ * 示例:mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority
9
+ */
10
+ uri: string;
11
+ /** The maximum number of connections in the connection pool. */
12
+ maxPoolSize: number;
13
+ /** The minimum number of connections in the connection pool. */
14
+ minPoolSize: number;
15
+ /** The maximum number of connections that may be in the process of being established concurrently by the connection pool. */
16
+ maxConnecting: number;
17
+ /** The maximum number of milliseconds that a connection can remain idle in the pool before being removed and closed. */
18
+ maxIdleTimeMS: number;
19
+ /** The maximum time in milliseconds that a thread can wait for a connection to become available. */
20
+ waitQueueTimeoutMS: number;
21
+ /**
22
+ * 开启慢查询警告,默认开启
23
+ */
24
+ slowQueryWarn: boolean;
25
+ /**
26
+ * 慢查询毫秒数,默认 200
27
+ */
28
+ slowQueryMs: number;
29
+ /**
30
+ *事务超时时间,单位毫秒,默认 5000,设置为0的值表示不限制
31
+ */
32
+ transactionTimeout: number;
33
+ /**
34
+ * 事务严格模式
35
+ */
36
+ transactionStrict: boolean;
37
+ }
38
+ /**
39
+ * 默认配置.
40
+ */
41
+ export declare const defaultConfig: MongoDBConfig;
42
+ /**
43
+ * 配置校验
44
+ */
45
+ export declare const configValidation: ValidationOpts<MongoDBConfig>;
@@ -1,11 +1,11 @@
1
- import { ObjectId } from 'mongodb';
2
- /**
3
- * 文档 id
4
- */
5
- export type MongoDocId = string | ObjectId;
6
- /**
7
- * 带 id 的文档。<T> 是自定义的集合类型,不包含主键字段。
8
- */
9
- export type MongoDocWithId<T> = T & {
10
- _id: MongoDocId;
11
- };
1
+ import { ObjectId } from 'mongodb';
2
+ /**
3
+ * 文档 id
4
+ */
5
+ export type MongoDocId = string | ObjectId;
6
+ /**
7
+ * 带 id 的文档。<T> 是自定义的集合类型,不包含主键字段。
8
+ */
9
+ export type MongoDocWithId<T> = T & {
10
+ _id: MongoDocId;
11
+ };
@@ -1,7 +1,7 @@
1
- /**
2
- * MongoDB 异常.
3
- */
4
- export declare class MongoDBException extends Error {
5
- readonly message: string;
6
- constructor(message: string);
7
- }
1
+ /**
2
+ * MongoDB 异常.
3
+ */
4
+ export declare class MongoDBException extends Error {
5
+ readonly message: string;
6
+ constructor(message: string);
7
+ }