wok-server 0.4.13 → 0.6.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 (376) 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 -29
  31. package/dist/log/date.js +21 -21
  32. package/dist/log/file.js +198 -72
  33. package/dist/log/index.js +135 -105
  34. package/dist/log/level.js +33 -33
  35. package/dist/log/log.js +56 -0
  36. package/dist/log/store.js +19 -16
  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 +239 -231
  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 +356 -356
  80. package/dist/mysql/manager/ops/delete.js +65 -65
  81. package/dist/mysql/manager/ops/exist.js +26 -26
  82. package/dist/mysql/manager/ops/find.js +169 -130
  83. package/dist/mysql/manager/ops/index.js +14 -14
  84. package/dist/mysql/manager/ops/insert.js +106 -106
  85. package/dist/mysql/manager/ops/modify.js +10 -10
  86. package/dist/mysql/manager/ops/paginate.js +23 -23
  87. package/dist/mysql/manager/ops/query.js +9 -9
  88. package/dist/mysql/manager/ops/update.js +216 -216
  89. package/dist/mysql/manager/ops/utils.js +24 -24
  90. package/dist/mysql/manager/tx-strict.js +103 -100
  91. package/dist/mysql/manager/tx.js +30 -30
  92. package/dist/mysql/manager/utils.js +56 -56
  93. package/dist/mysql/migration.js +136 -136
  94. package/dist/mysql/table-info.js +8 -8
  95. package/dist/task/daily.js +59 -59
  96. package/dist/task/fixed-delay.js +38 -38
  97. package/dist/task/fixed-rate.js +42 -42
  98. package/dist/task/index.js +9 -9
  99. package/dist/task/task.js +56 -56
  100. package/dist/validation/exception.js +36 -36
  101. package/dist/validation/index.js +40 -40
  102. package/dist/validation/validator/array.js +34 -34
  103. package/dist/validation/validator/enum.js +28 -28
  104. package/dist/validation/validator/index.js +14 -14
  105. package/dist/validation/validator/length.js +40 -40
  106. package/dist/validation/validator/max-length.js +35 -35
  107. package/dist/validation/validator/max.js +29 -29
  108. package/dist/validation/validator/min-length.js +33 -33
  109. package/dist/validation/validator/min.js +29 -29
  110. package/dist/validation/validator/not-blank.js +33 -33
  111. package/dist/validation/validator/not-null.js +21 -21
  112. package/dist/validation/validator/plain-obj.js +32 -32
  113. package/dist/validation/validator/regexp.js +34 -34
  114. package/documentation/en/cache.md +56 -0
  115. package/documentation/en/config.md +96 -0
  116. package/documentation/en/engineering.md +256 -0
  117. package/documentation/en/http-client.md +32 -0
  118. package/documentation/en/i18n.md +143 -0
  119. package/documentation/en/index.md +24 -0
  120. package/documentation/en/lock.md +51 -0
  121. package/documentation/en/log.md +109 -0
  122. package/documentation/en/mongodb.md +256 -0
  123. package/documentation/en/mvc.md +688 -0
  124. package/documentation/en/mysql.md +552 -0
  125. package/documentation/en/task.md +45 -0
  126. package/documentation/en/test.md +56 -0
  127. package/documentation/en/validate.md +130 -0
  128. package/documentation/zh-cn/engineering.md +1 -1
  129. package/documentation/zh-cn/log.md +81 -8
  130. package/documentation/zh-cn/mvc.md +66 -24
  131. package/documentation/zh-cn/mysql.md +24 -23
  132. package/documentation/zh-cn/validate.md +2 -2
  133. package/package.json +3 -1
  134. package/skills/wok-server-api-rules/SKILL.md +350 -0
  135. package/skills/wok-server-cache/SKILL.md +216 -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 +315 -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 +285 -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 +412 -0
  232. package/src/mysql/manager/ops/delete.ts +96 -0
  233. package/src/mysql/manager/ops/exist.ts +41 -0
  234. package/src/mysql/manager/ops/find.ts +226 -0
  235. package/src/mysql/manager/ops/index.ts +11 -0
  236. package/src/mysql/manager/ops/insert.ts +120 -0
  237. package/src/mysql/manager/ops/modify.ts +14 -0
  238. package/src/mysql/manager/ops/paginate.ts +60 -0
  239. package/src/mysql/manager/ops/query.ts +13 -0
  240. package/src/mysql/manager/ops/update.ts +294 -0
  241. package/src/mysql/manager/ops/utils.ts +20 -0
  242. package/src/mysql/manager/tx-strict.ts +138 -0
  243. package/src/mysql/manager/tx.ts +31 -0
  244. package/src/mysql/manager/utils.ts +75 -0
  245. package/src/mysql/migration.ts +149 -0
  246. package/src/mysql/table-info.ts +41 -0
  247. package/src/task/daily.ts +70 -0
  248. package/src/task/fixed-delay.ts +45 -0
  249. package/src/task/fixed-rate.ts +49 -0
  250. package/src/task/index.ts +4 -0
  251. package/src/task/task.ts +70 -0
  252. package/src/validation/exception.ts +27 -0
  253. package/src/validation/index.ts +61 -0
  254. package/src/validation/validator/array.ts +32 -0
  255. package/src/validation/validator/enum.ts +25 -0
  256. package/src/validation/validator/index.ts +11 -0
  257. package/src/validation/validator/length.ts +42 -0
  258. package/src/validation/validator/max-length.ts +33 -0
  259. package/src/validation/validator/max.ts +26 -0
  260. package/src/validation/validator/min-length.ts +31 -0
  261. package/src/validation/validator/min.ts +26 -0
  262. package/src/validation/validator/not-blank.ts +31 -0
  263. package/src/validation/validator/not-null.ts +19 -0
  264. package/src/validation/validator/plain-obj.ts +30 -0
  265. package/src/validation/validator/regexp.ts +32 -0
  266. package/types/cache/cache.d.ts +52 -52
  267. package/types/cache/config.d.ts +32 -32
  268. package/types/cache/index.d.ts +2 -2
  269. package/types/cache/purge-task.d.ts +11 -11
  270. package/types/cache/stat.d.ts +26 -26
  271. package/types/config/convert.d.ts +6 -6
  272. package/types/config/exception.d.ts +7 -7
  273. package/types/config/index.d.ts +25 -25
  274. package/types/http-client/index.d.ts +71 -71
  275. package/types/i18n/ar.d.ts +2 -2
  276. package/types/i18n/de.d.ts +2 -2
  277. package/types/i18n/en-us.d.ts +2 -2
  278. package/types/i18n/es.d.ts +2 -2
  279. package/types/i18n/fr.d.ts +2 -2
  280. package/types/i18n/i18n.d.ts +102 -102
  281. package/types/i18n/index.d.ts +9 -9
  282. package/types/i18n/ja.d.ts +2 -2
  283. package/types/i18n/ko.d.ts +2 -2
  284. package/types/i18n/msg.d.ts +50 -50
  285. package/types/i18n/pt.d.ts +2 -2
  286. package/types/i18n/ru.d.ts +2 -2
  287. package/types/i18n/tag.d.ts +11 -11
  288. package/types/i18n/zh-HK.d.ts +2 -2
  289. package/types/i18n/zh-TW.d.ts +2 -2
  290. package/types/i18n/zh-cn.d.ts +2 -2
  291. package/types/index.d.ts +11 -11
  292. package/types/lock/index.d.ts +64 -64
  293. package/types/log/config.d.ts +35 -27
  294. package/types/log/date.d.ts +2 -2
  295. package/types/log/file.d.ts +13 -5
  296. package/types/log/index.d.ts +53 -34
  297. package/types/log/level.d.ts +14 -14
  298. package/types/log/log.d.ts +40 -0
  299. package/types/log/store.d.ts +19 -12
  300. package/types/mongodb/collection.d.ts +25 -25
  301. package/types/mongodb/config.d.ts +45 -45
  302. package/types/mongodb/doc.d.ts +11 -11
  303. package/types/mongodb/exception.d.ts +7 -7
  304. package/types/mongodb/index.d.ts +29 -29
  305. package/types/mongodb/manager/base.d.ts +188 -188
  306. package/types/mongodb/manager/index.d.ts +38 -38
  307. package/types/mongodb/manager/tx-strict.d.ts +41 -41
  308. package/types/mongodb/manager/tx.d.ts +21 -21
  309. package/types/mongodb/migration.d.ts +12 -12
  310. package/types/mvc/access-log.d.ts +7 -7
  311. package/types/mvc/config.d.ts +42 -42
  312. package/types/mvc/exchange.d.ts +72 -72
  313. package/types/mvc/handler/index.d.ts +4 -3
  314. package/types/mvc/handler/json.d.ts +44 -44
  315. package/types/mvc/handler/restful.d.ts +11 -11
  316. package/types/mvc/handler/sse.d.ts +34 -0
  317. package/types/mvc/handler/upload.d.ts +36 -36
  318. package/types/mvc/index.d.ts +22 -22
  319. package/types/mvc/interceptor.d.ts +11 -11
  320. package/types/mvc/query.d.ts +13 -13
  321. package/types/mvc/render/file.d.ts +10 -10
  322. package/types/mvc/render/html/html.d.ts +98 -98
  323. package/types/mvc/render/html/index.d.ts +11 -11
  324. package/types/mvc/render/html/style.d.ts +1201 -1201
  325. package/types/mvc/render/index.d.ts +4 -4
  326. package/types/mvc/render/json.d.ts +17 -17
  327. package/types/mvc/render/text.d.ts +10 -10
  328. package/types/mvc/router.d.ts +11 -11
  329. package/types/mvc/server.d.ts +90 -90
  330. package/types/mvc/static/header.d.ts +27 -27
  331. package/types/mvc/static/index.d.ts +3 -3
  332. package/types/mvc/static/mime-type.d.ts +2 -2
  333. package/types/mvc/static/server-cache-config.d.ts +30 -30
  334. package/types/mvc/static/server-cache.d.ts +76 -76
  335. package/types/mvc/static/static-handler.d.ts +77 -77
  336. package/types/mysql/config.d.ts +90 -90
  337. package/types/mysql/exception.d.ts +7 -7
  338. package/types/mysql/index.d.ts +16 -16
  339. package/types/mysql/manager/base.d.ts +165 -159
  340. package/types/mysql/manager/index.d.ts +36 -36
  341. package/types/mysql/manager/ops/count.d.ts +13 -13
  342. package/types/mysql/manager/ops/criteria.d.ts +134 -134
  343. package/types/mysql/manager/ops/delete.d.ts +46 -46
  344. package/types/mysql/manager/ops/exist.d.ts +6 -6
  345. package/types/mysql/manager/ops/find.d.ts +86 -70
  346. package/types/mysql/manager/ops/index.d.ts +10 -10
  347. package/types/mysql/manager/ops/insert.d.ts +18 -18
  348. package/types/mysql/manager/ops/modify.d.ts +3 -3
  349. package/types/mysql/manager/ops/paginate.d.ts +36 -36
  350. package/types/mysql/manager/ops/query.d.ts +3 -3
  351. package/types/mysql/manager/ops/update.d.ts +76 -76
  352. package/types/mysql/manager/ops/utils.d.ts +5 -5
  353. package/types/mysql/manager/tx-strict.d.ts +36 -35
  354. package/types/mysql/manager/tx.d.ts +15 -15
  355. package/types/mysql/manager/utils.d.ts +17 -17
  356. package/types/mysql/migration.d.ts +8 -8
  357. package/types/mysql/table-info.d.ts +36 -36
  358. package/types/task/daily.d.ts +16 -16
  359. package/types/task/fixed-delay.d.ts +9 -9
  360. package/types/task/fixed-rate.d.ts +9 -9
  361. package/types/task/index.d.ts +4 -4
  362. package/types/task/task.d.ts +34 -34
  363. package/types/validation/exception.d.ts +38 -38
  364. package/types/validation/index.d.ts +32 -32
  365. package/types/validation/validator/array.d.ts +5 -5
  366. package/types/validation/validator/enum.d.ts +8 -8
  367. package/types/validation/validator/index.d.ts +11 -11
  368. package/types/validation/validator/length.d.ts +10 -10
  369. package/types/validation/validator/max-length.d.ts +8 -8
  370. package/types/validation/validator/max.d.ts +7 -7
  371. package/types/validation/validator/min-length.d.ts +6 -6
  372. package/types/validation/validator/min.d.ts +7 -7
  373. package/types/validation/validator/not-blank.d.ts +7 -7
  374. package/types/validation/validator/not-null.d.ts +6 -6
  375. package/types/validation/validator/plain-obj.d.ts +7 -7
  376. package/types/validation/validator/regexp.d.ts +8 -8
@@ -1,231 +1,239 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseMysqlManager = void 0;
4
- const exception_1 = require("../exception");
5
- const ops_1 = require("./ops");
6
- const utils_1 = require("./utils");
7
- /**
8
- * mysql 管理器基类,提供基础的操作方法.
9
- */
10
- class BaseMysqlManager {
11
- opts;
12
- /**
13
- * @param mapping 映射
14
- */
15
- constructor(
16
- /**
17
- * 选项,连接池和连接必须有一个,连接池优先.
18
- */
19
- opts) {
20
- this.opts = opts;
21
- if (!opts.pool && !opts.connection) {
22
- throw new exception_1.MysqlException('Pool and Connection cannot be both null.');
23
- }
24
- }
25
- async queryWithConnection(queryFn) {
26
- let conn;
27
- if (this.opts.pool) {
28
- conn = await (0, utils_1.promiseGetConnection)(this.opts.pool);
29
- }
30
- else if (this.opts.connection) {
31
- conn = this.opts.connection;
32
- }
33
- if (!conn) {
34
- throw new exception_1.MysqlException('Unable to obtain connection');
35
- }
36
- try {
37
- return queryFn(conn);
38
- }
39
- finally {
40
- // 如果是连接池来的,每次连接都是新建,必须释放掉
41
- if (this.opts.pool) {
42
- this.opts.pool.releaseConnection(conn);
43
- }
44
- }
45
- }
46
- /**
47
- * 依据id查找.
48
- * @param table 表信息
49
- * @param id id
50
- * @returns
51
- */
52
- findById(table, id) {
53
- return this.queryWithConnection(conn => (0, ops_1.findById)(this.opts.config, conn, table, id));
54
- }
55
- /**
56
- * 根据id列表查询
57
- * @param table
58
- * @param ids
59
- * @returns
60
- */
61
- findByIdIn(table, ids) {
62
- return this.queryWithConnection(conn => (0, ops_1.findByIdIn)(this.opts.config, conn, table, ids));
63
- }
64
- /**
65
- * 根据条件判定是否存在记录.
66
- * @param table
67
- * @param criteria 条件信息,可以为空,为空的情况下判定整个表是否有记录
68
- * @returns
69
- */
70
- existsBy(table, criteria) {
71
- return this.queryWithConnection(conn => (0, ops_1.existsBy)(this.opts.config, conn, table, criteria));
72
- }
73
- /**
74
- * 根据id判定记录是否存在
75
- * @param table
76
- * @param id
77
- * @returns
78
- */
79
- existsById(table, id) {
80
- return this.queryWithConnection(conn => (0, ops_1.existsById)(this.opts.config, conn, table, id));
81
- }
82
- /**
83
- * 按 id 查询
84
- * @param table 表信息
85
- * @param id
86
- */
87
- deleteById(table, id) {
88
- return this.queryWithConnection(conn => (0, ops_1.deleteById)(this.opts.config, conn, table, id));
89
- }
90
- /**
91
- * 按条件删除数据。批量删除是危险操作,建议在使用时尽可能设置 limit 参数来限制数量。
92
- * @param opts
93
- * @returns
94
- */
95
- deleteMany(opts) {
96
- return this.queryWithConnection(conn => (0, ops_1.deleteMany)(this.opts.config, conn, opts));
97
- }
98
- /**
99
- * 仅删除符合条件的一条记录,必须是相等条件
100
- * @param table
101
- * @param criteria
102
- * @returns
103
- */
104
- async deleteOne(table, criteria) {
105
- if (!Object.keys(criteria).length) {
106
- throw new exception_1.MysqlException('criteria cannot be empty !');
107
- }
108
- const res = await this.queryWithConnection(conn => (0, ops_1.deleteMany)(this.opts.config, conn, {
109
- table,
110
- criteria,
111
- limit: 1
112
- }));
113
- return res === 1;
114
- }
115
- /**
116
- * 查询表中所有数据.
117
- * @param table 表信息
118
- * @returns
119
- */
120
- findAll(table) {
121
- return this.queryWithConnection(conn => (0, ops_1.findAll)(this.opts.config, conn, table));
122
- }
123
- /**
124
- * 按条件查询第一条记录.
125
- * @param table 表信息
126
- * @param criteria 查询条件
127
- * @param orderBy 排序规则,按先后顺序放入,每个规则是一个元组,第一个元素是字段名称,第二个元素是顺序
128
- * @returns
129
- */
130
- findFirst(table, criteria, orderBy) {
131
- return this.queryWithConnection(conn => (0, ops_1.findFirst)(this.opts.config, conn, table, criteria, orderBy));
132
- }
133
- /**
134
- * 插入数据. 不支持自增加长id,id必须提前生成,请使用 uuid.
135
- * @param table 表信息
136
- * @param data 数据,数据必须是 T 的实例, T 必须是已配置的实体类类型,否则无法完成操作
137
- * @returns 插入后的数据
138
- */
139
- insert(table, data) {
140
- return this.queryWithConnection(conn => (0, ops_1.insert)(this.opts.config, conn, table, data));
141
- }
142
- /**
143
- * 批量插入
144
- * @param table 表
145
- * @param list 要插入的数据列表
146
- */
147
- insertMany(table, list) {
148
- return this.queryWithConnection(conn => (0, ops_1.insertMany)(this.opts.config, conn, table, list));
149
- }
150
- /**
151
- * 更新
152
- * @param table 表信息
153
- * @param data
154
- */
155
- update(table, data) {
156
- return this.queryWithConnection(conn => (0, ops_1.update)(this.opts.config, conn, table, data));
157
- }
158
- /**
159
- * 更新所以匹配条件的记录
160
- * @param opts
161
- * @returns
162
- */
163
- updateMany(opts) {
164
- return this.queryWithConnection(conn => (0, ops_1.updateMany)(this.opts.config, conn, opts));
165
- }
166
- /**
167
- * 只更新一条记录。仅支持相等条件,不支持范围条件,可以严格事务中使用。
168
- * @param table
169
- * @param criteria
170
- * @param updater
171
- * @returns 更新是否成功
172
- */
173
- updateOne(table, criteria, updater) {
174
- if (!Object.keys(updater).length) {
175
- throw new exception_1.MysqlException('updater cannot be empty !');
176
- }
177
- return this.queryWithConnection(conn => (0, ops_1.updateOne)(this.opts.config, conn, table, criteria, updater));
178
- }
179
- /**
180
- * 部分更新
181
- * @param table 表信息
182
- * @param data 字段信息,必须要包含id字段,如果包含了更新和创建时间的字段,则忽略掉
183
- */
184
- partialUpdate(table, data) {
185
- return this.queryWithConnection(conn => (0, ops_1.partialUpdate)(this.opts.config, conn, table, data));
186
- }
187
- /**
188
- * 查找实体类 自定义条件
189
- * @param opts
190
- * @returns
191
- */
192
- find(opts) {
193
- return this.queryWithConnection(conn => (0, ops_1.find)(this.opts.config, conn, opts));
194
- }
195
- /**
196
- * 指定条件查询数量
197
- * @param table 表信息
198
- * @param criteria 查询条件
199
- * @returns
200
- */
201
- count(table, criteria) {
202
- return this.queryWithConnection(conn => (0, ops_1.count)(this.opts.config, conn, table, criteria));
203
- }
204
- /**
205
- * 分页查询
206
- * @param opts
207
- * @returns
208
- */
209
- paginate(opts) {
210
- return this.queryWithConnection(conn => (0, ops_1.paginate)(this.opts.config, conn, opts));
211
- }
212
- /**
213
- * 自定义查询,指定 sql 、参数和返回值类型
214
- * @param sql 预编译 sql ,参数使用 ”?“(英文问号) 占位,注意查询的字段名称会与返回值类型的字段映射,如果 sql 中的字段名称很特殊(比如纯数字等),需要设置别名,避免产生映射错误
215
- * @param values 要传递的值,对应 sql 中的占位符 ”?“(英文问号)
216
- * @param T 返回值类型,注意类型映射问题,详细可以参考文档中关于类型映射的说明
217
- */
218
- async query(sql, values) {
219
- return this.queryWithConnection(conn => (0, ops_1.query)(this.opts.config, conn, sql, values));
220
- }
221
- /**
222
- * 自定义 sql 执行,必须是修改类的 sql ,否则会发生错误
223
- * @param sql
224
- * @param values
225
- * @returns 返回影响的行数
226
- */
227
- async modify(sql, values) {
228
- return this.queryWithConnection(conn => (0, ops_1.modify)(this.opts.config, conn, sql, values));
229
- }
230
- }
231
- exports.BaseMysqlManager = BaseMysqlManager;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseMysqlManager = void 0;
4
+ const exception_1 = require("../exception");
5
+ const ops_1 = require("./ops");
6
+ const utils_1 = require("./utils");
7
+ /**
8
+ * mysql 管理器基类,提供基础的操作方法.
9
+ */
10
+ class BaseMysqlManager {
11
+ opts;
12
+ /**
13
+ * @param mapping 映射
14
+ */
15
+ constructor(
16
+ /**
17
+ * 选项,连接池和连接必须有一个,连接池优先.
18
+ */
19
+ opts) {
20
+ this.opts = opts;
21
+ if (!opts.pool && !opts.connection) {
22
+ throw new exception_1.MysqlException('Pool and Connection cannot be both null.');
23
+ }
24
+ }
25
+ async queryWithConnection(queryFn) {
26
+ let conn;
27
+ if (this.opts.pool) {
28
+ conn = await (0, utils_1.promiseGetConnection)(this.opts.pool);
29
+ }
30
+ else if (this.opts.connection) {
31
+ conn = this.opts.connection;
32
+ }
33
+ if (!conn) {
34
+ throw new exception_1.MysqlException('Unable to obtain connection');
35
+ }
36
+ try {
37
+ return queryFn(conn);
38
+ }
39
+ finally {
40
+ // 如果是连接池来的,每次连接都是新建,必须释放掉
41
+ if (this.opts.pool) {
42
+ this.opts.pool.releaseConnection(conn);
43
+ }
44
+ }
45
+ }
46
+ /**
47
+ * 依据id查找.
48
+ * @param table 表信息
49
+ * @param id id
50
+ * @returns
51
+ */
52
+ findById(table, id) {
53
+ return this.queryWithConnection(conn => (0, ops_1.findById)(this.opts.config, conn, table, id));
54
+ }
55
+ /**
56
+ * 根据id列表查询
57
+ * @param table
58
+ * @param ids
59
+ * @returns
60
+ */
61
+ findByIdIn(table, ids) {
62
+ return this.queryWithConnection(conn => (0, ops_1.findByIdIn)(this.opts.config, conn, table, ids));
63
+ }
64
+ /**
65
+ * 根据条件判定是否存在记录.
66
+ * @param table
67
+ * @param criteria 条件信息,可以为空,为空的情况下判定整个表是否有记录
68
+ * @returns
69
+ */
70
+ existsBy(table, criteria) {
71
+ return this.queryWithConnection(conn => (0, ops_1.existsBy)(this.opts.config, conn, table, criteria));
72
+ }
73
+ /**
74
+ * 根据id判定记录是否存在
75
+ * @param table
76
+ * @param id
77
+ * @returns
78
+ */
79
+ existsById(table, id) {
80
+ return this.queryWithConnection(conn => (0, ops_1.existsById)(this.opts.config, conn, table, id));
81
+ }
82
+ /**
83
+ * 按 id 查询
84
+ * @param table 表信息
85
+ * @param id
86
+ */
87
+ deleteById(table, id) {
88
+ return this.queryWithConnection(conn => (0, ops_1.deleteById)(this.opts.config, conn, table, id));
89
+ }
90
+ /**
91
+ * 按条件删除数据。批量删除是危险操作,建议在使用时尽可能设置 limit 参数来限制数量。
92
+ * @param opts
93
+ * @returns
94
+ */
95
+ deleteMany(opts) {
96
+ return this.queryWithConnection(conn => (0, ops_1.deleteMany)(this.opts.config, conn, opts));
97
+ }
98
+ /**
99
+ * 仅删除符合条件的一条记录,必须是相等条件
100
+ * @param table
101
+ * @param criteria
102
+ * @returns
103
+ */
104
+ async deleteOne(table, criteria) {
105
+ if (!Object.keys(criteria).length) {
106
+ throw new exception_1.MysqlException('criteria cannot be empty !');
107
+ }
108
+ const res = await this.queryWithConnection(conn => (0, ops_1.deleteMany)(this.opts.config, conn, {
109
+ table,
110
+ criteria,
111
+ limit: 1
112
+ }));
113
+ return res === 1;
114
+ }
115
+ /**
116
+ * 查询表中所有数据.
117
+ * @param table 表信息
118
+ * @returns
119
+ */
120
+ findAll(table) {
121
+ return this.queryWithConnection(conn => (0, ops_1.findAll)(this.opts.config, conn, table));
122
+ }
123
+ /**
124
+ * 按条件查询第一条记录.
125
+ * @param table 表信息
126
+ * @param criteria 查询条件
127
+ * @param orderBy 排序规则,按先后顺序放入,每个规则是一个元组,第一个元素是字段名称,第二个元素是顺序
128
+ * @returns
129
+ */
130
+ findFirst(table, criteria, orderBy) {
131
+ return this.queryWithConnection(conn => (0, ops_1.findFirst)(this.opts.config, conn, table, criteria, orderBy));
132
+ }
133
+ /**
134
+ * 插入数据. 不支持自增加长id,id必须提前生成,请使用 uuid.
135
+ * @param table 表信息
136
+ * @param data 数据,数据必须是 T 的实例, T 必须是已配置的实体类类型,否则无法完成操作
137
+ * @returns 插入后的数据
138
+ */
139
+ insert(table, data) {
140
+ return this.queryWithConnection(conn => (0, ops_1.insert)(this.opts.config, conn, table, data));
141
+ }
142
+ /**
143
+ * 批量插入
144
+ * @param table 表
145
+ * @param list 要插入的数据列表
146
+ */
147
+ insertMany(table, list) {
148
+ return this.queryWithConnection(conn => (0, ops_1.insertMany)(this.opts.config, conn, table, list));
149
+ }
150
+ /**
151
+ * 更新
152
+ * @param table 表信息
153
+ * @param data
154
+ */
155
+ update(table, data) {
156
+ return this.queryWithConnection(conn => (0, ops_1.update)(this.opts.config, conn, table, data));
157
+ }
158
+ /**
159
+ * 更新所以匹配条件的记录
160
+ * @param opts
161
+ * @returns
162
+ */
163
+ updateMany(opts) {
164
+ return this.queryWithConnection(conn => (0, ops_1.updateMany)(this.opts.config, conn, opts));
165
+ }
166
+ /**
167
+ * 只更新一条记录。仅支持相等条件,不支持范围条件,可以严格事务中使用。
168
+ * @param table
169
+ * @param criteria
170
+ * @param updater
171
+ * @returns 更新是否成功
172
+ */
173
+ updateOne(table, criteria, updater) {
174
+ if (!Object.keys(updater).length) {
175
+ throw new exception_1.MysqlException('updater cannot be empty !');
176
+ }
177
+ return this.queryWithConnection(conn => (0, ops_1.updateOne)(this.opts.config, conn, table, criteria, updater));
178
+ }
179
+ /**
180
+ * 部分更新
181
+ * @param table 表信息
182
+ * @param data 字段信息,必须要包含id字段,如果包含了更新和创建时间的字段,则忽略掉
183
+ */
184
+ partialUpdate(table, data) {
185
+ return this.queryWithConnection(conn => (0, ops_1.partialUpdate)(this.opts.config, conn, table, data));
186
+ }
187
+ /**
188
+ * 查找实体类 自定义条件
189
+ * @param opts
190
+ * @returns
191
+ */
192
+ find(opts) {
193
+ return this.queryWithConnection(conn => (0, ops_1.find)(this.opts.config, conn, opts));
194
+ }
195
+ /**
196
+ * 指定字段条件查询
197
+ * @param opts
198
+ * @returns
199
+ */
200
+ findSelect(opts) {
201
+ return this.queryWithConnection(conn => (0, ops_1.findSelect)(this.opts.config, conn, opts));
202
+ }
203
+ /**
204
+ * 指定条件查询数量
205
+ * @param table 表信息
206
+ * @param criteria 查询条件
207
+ * @returns
208
+ */
209
+ count(table, criteria) {
210
+ return this.queryWithConnection(conn => (0, ops_1.count)(this.opts.config, conn, table, criteria));
211
+ }
212
+ /**
213
+ * 分页查询
214
+ * @param opts
215
+ * @returns
216
+ */
217
+ paginate(opts) {
218
+ return this.queryWithConnection(conn => (0, ops_1.paginate)(this.opts.config, conn, opts));
219
+ }
220
+ /**
221
+ * 自定义查询,指定 sql 、参数和返回值类型
222
+ * @param sql 预编译 sql ,参数使用 ”?“(英文问号) 占位,注意查询的字段名称会与返回值类型的字段映射,如果 sql 中的字段名称很特殊(比如纯数字等),需要设置别名,避免产生映射错误
223
+ * @param values 要传递的值,对应 sql 中的占位符 ”?“(英文问号)
224
+ * @param T 返回值类型,注意类型映射问题,详细可以参考文档中关于类型映射的说明
225
+ */
226
+ async query(sql, values) {
227
+ return this.queryWithConnection(conn => (0, ops_1.query)(this.opts.config, conn, sql, values));
228
+ }
229
+ /**
230
+ * 自定义 sql 执行,必须是修改类的 sql ,否则会发生错误
231
+ * @param sql
232
+ * @param values
233
+ * @returns 返回影响的行数
234
+ */
235
+ async modify(sql, values) {
236
+ return this.queryWithConnection(conn => (0, ops_1.modify)(this.opts.config, conn, sql, values));
237
+ }
238
+ }
239
+ exports.BaseMysqlManager = BaseMysqlManager;