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,65 +1,65 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deleteMany = exports.deleteById = void 0;
4
- const exception_1 = require("../../exception");
5
- const utils_1 = require("../utils");
6
- const criteria_1 = require("./criteria");
7
- /**
8
- * 按 id 删除.
9
- *
10
- * @param config
11
- * @param connection
12
- * @param mapping
13
- * @param type
14
- * @param id
15
- */
16
- async function deleteById(config, connection, table, id) {
17
- const res = await (0, utils_1.promiseQuery)(config, connection, `delete from ?? where ?? = ?`, [
18
- table.tableName,
19
- table.id,
20
- id
21
- ]);
22
- const ok = res;
23
- return ok.affectedRows === 1;
24
- }
25
- exports.deleteById = deleteById;
26
- /**
27
- * 按条件删除,返回被删除的记录数.
28
- * 务必谨慎使用,大批量删除容易带来性能问题,造成线上事故.
29
- * @param config
30
- * @param connection
31
- * @param table
32
- * @param criteria
33
- */
34
- async function deleteMany(config, connection, opts) {
35
- let sql = 'delete from ?? ';
36
- const values = [opts.table.tableName];
37
- let query = (0, criteria_1.buildQuery)(opts.criteria);
38
- if (!query) {
39
- throw new exception_1.MysqlException('No valid criteria specified.');
40
- }
41
- if (query) {
42
- sql += ` where ${query.sql} `;
43
- values.push(...query.values);
44
- }
45
- // 排序
46
- if (opts.orderBy && opts.orderBy.length) {
47
- opts.orderBy.forEach((orderBy, idx) => {
48
- const [field, sort] = orderBy;
49
- if (idx == 0) {
50
- sql += ` order by ?? ${sort} `;
51
- }
52
- else {
53
- sql += ` , ?? ${sort} `;
54
- }
55
- values.push(field);
56
- });
57
- }
58
- // 数量限制
59
- if (opts.limit) {
60
- sql += ` limit ${opts.limit} `;
61
- }
62
- const res = await (0, utils_1.promiseQuery)(config, connection, sql, values);
63
- return res.affectedRows;
64
- }
65
- exports.deleteMany = deleteMany;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteMany = exports.deleteById = void 0;
4
+ const exception_1 = require("../../exception");
5
+ const utils_1 = require("../utils");
6
+ const criteria_1 = require("./criteria");
7
+ /**
8
+ * 按 id 删除.
9
+ *
10
+ * @param config
11
+ * @param connection
12
+ * @param mapping
13
+ * @param type
14
+ * @param id
15
+ */
16
+ async function deleteById(config, connection, table, id) {
17
+ const res = await (0, utils_1.promiseQuery)(config, connection, `delete from ?? where ?? = ?`, [
18
+ table.tableName,
19
+ table.id,
20
+ id
21
+ ]);
22
+ const ok = res;
23
+ return ok.affectedRows === 1;
24
+ }
25
+ exports.deleteById = deleteById;
26
+ /**
27
+ * 按条件删除,返回被删除的记录数.
28
+ * 务必谨慎使用,大批量删除容易带来性能问题,造成线上事故.
29
+ * @param config
30
+ * @param connection
31
+ * @param table
32
+ * @param criteria
33
+ */
34
+ async function deleteMany(config, connection, opts) {
35
+ let sql = 'delete from ?? ';
36
+ const values = [opts.table.tableName];
37
+ let query = (0, criteria_1.buildQuery)(opts.criteria);
38
+ if (!query) {
39
+ throw new exception_1.MysqlException('No valid criteria specified.');
40
+ }
41
+ if (query) {
42
+ sql += ` where ${query.sql} `;
43
+ values.push(...query.values);
44
+ }
45
+ // 排序
46
+ if (opts.orderBy && opts.orderBy.length) {
47
+ opts.orderBy.forEach((orderBy, idx) => {
48
+ const [field, sort] = orderBy;
49
+ if (idx == 0) {
50
+ sql += ` order by ?? ${sort} `;
51
+ }
52
+ else {
53
+ sql += ` , ?? ${sort} `;
54
+ }
55
+ values.push(field);
56
+ });
57
+ }
58
+ // 数量限制
59
+ if (opts.limit) {
60
+ sql += ` limit ${opts.limit} `;
61
+ }
62
+ const res = await (0, utils_1.promiseQuery)(config, connection, sql, values);
63
+ return res.affectedRows;
64
+ }
65
+ exports.deleteMany = deleteMany;
@@ -1,26 +1,26 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.existsBy = exports.existsById = void 0;
4
- const criteria_1 = require("./criteria");
5
- const utils_1 = require("../utils");
6
- async function existsById(config, connection, table, id) {
7
- const res = await (0, utils_1.promiseQuery)(config, connection, `select 1 from ?? where ?? = ?`, [
8
- table.tableName,
9
- table.id,
10
- id
11
- ]);
12
- const rows = res;
13
- return !!rows.length;
14
- }
15
- exports.existsById = existsById;
16
- async function existsBy(config, connection, table, criteria) {
17
- let query = criteria ? (0, criteria_1.buildQuery)(criteria) : undefined;
18
- let sql = `select 1 from ?? `;
19
- if (query) {
20
- sql += ` where ${query.sql} `;
21
- }
22
- const res = await (0, utils_1.promiseQuery)(config, connection, sql, [table.tableName].concat(query ? query.values : []));
23
- const rows = res;
24
- return !!rows.length;
25
- }
26
- exports.existsBy = existsBy;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.existsBy = exports.existsById = void 0;
4
+ const criteria_1 = require("./criteria");
5
+ const utils_1 = require("../utils");
6
+ async function existsById(config, connection, table, id) {
7
+ const res = await (0, utils_1.promiseQuery)(config, connection, `select 1 from ?? where ?? = ?`, [
8
+ table.tableName,
9
+ table.id,
10
+ id
11
+ ]);
12
+ const rows = res;
13
+ return !!rows.length;
14
+ }
15
+ exports.existsById = existsById;
16
+ async function existsBy(config, connection, table, criteria) {
17
+ let query = criteria ? (0, criteria_1.buildQuery)(criteria) : undefined;
18
+ let sql = `select 1 from ?? `;
19
+ if (query) {
20
+ sql += ` where ${query.sql} `;
21
+ }
22
+ const res = await (0, utils_1.promiseQuery)(config, connection, sql, [table.tableName].concat(query ? query.values : []));
23
+ const rows = res;
24
+ return !!rows.length;
25
+ }
26
+ exports.existsBy = existsBy;
@@ -1,130 +1,169 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findFirst = exports.findByIdIn = exports.find = exports.findAll = exports.findById = void 0;
4
- const criteria_1 = require("./criteria");
5
- const utils_1 = require("../utils");
6
- /**
7
- * 按 id 查询
8
- * @param connection
9
- * @param mapping
10
- * @param type
11
- * @param id
12
- */
13
- async function findById(config, connection, table, id) {
14
- const res = await (0, utils_1.promiseQuery)(config, connection, `select * from ?? where ?? = ?`, [
15
- table.tableName,
16
- table.id,
17
- id
18
- ]);
19
- const rows = res;
20
- if (!rows.length) {
21
- return null;
22
- }
23
- return rows[0];
24
- }
25
- exports.findById = findById;
26
- /**
27
- * 查询表中所有数据。需谨慎操作,全表查询有可能会产生大列表问题。
28
- * @param connection
29
- * @param mapping
30
- * @param type
31
- * @returns
32
- */
33
- async function findAll(config, connection, table) {
34
- const res = await (0, utils_1.promiseQuery)(config, connection, `select * from ??`, [table.tableName]);
35
- return res;
36
- }
37
- exports.findAll = findAll;
38
- /**
39
- * 条件查询
40
- * @param opts
41
- * @returns
42
- */
43
- async function find(config, conn, opts) {
44
- let query = opts.criteria ? (0, criteria_1.buildQuery)(opts.criteria) : undefined;
45
- const values = [];
46
- let sql = `select * from ?? `;
47
- values.push(opts.table.tableName);
48
- if (query) {
49
- sql += ` where ${query.sql} `;
50
- values.push(...query.values);
51
- }
52
- // 排序
53
- if (opts.orderBy && opts.orderBy.length) {
54
- opts.orderBy.forEach((orderBy, idx) => {
55
- const [field, sort] = orderBy;
56
- if (idx == 0) {
57
- sql += ` order by ?? ${sort} `;
58
- }
59
- else {
60
- sql += ` , ?? ${sort} `;
61
- }
62
- values.push(field);
63
- });
64
- }
65
- // 数量限制
66
- if (opts.limit) {
67
- sql += ` limit ${opts.limit} `;
68
- if (opts.offset) {
69
- sql += ` offset ${opts.offset}`;
70
- }
71
- }
72
- const res = await (0, utils_1.promiseQuery)(config, conn, sql, values);
73
- return res;
74
- }
75
- exports.find = find;
76
- /**
77
- * 根据 id 列表查询记录
78
- * @param connection
79
- * @param table
80
- * @param ids
81
- * @returns
82
- */
83
- async function findByIdIn(config, connection, table, ids) {
84
- if (!ids.length) {
85
- return [];
86
- }
87
- return find(config, connection, {
88
- table,
89
- criteria: c => c.in(table.id, ids)
90
- });
91
- }
92
- exports.findByIdIn = findByIdIn;
93
- /**
94
- * 查找符合条件的第一条记录
95
- * @param conn
96
- * @param table
97
- * @param criteria
98
- * @returns
99
- */
100
- async function findFirst(config, conn, table, criteria,
101
- /**
102
- * 排序规则,按先后顺序放入,每个规则是一个元组,第一个元素是字段名称,第二个元素是顺序
103
- */
104
- orderBy) {
105
- let query = criteria ? (0, criteria_1.buildQuery)(criteria) : undefined;
106
- let sql = `select * from ?? `;
107
- const values = [table.tableName];
108
- if (query) {
109
- sql += ` where ${query.sql} `;
110
- values.push(...query.values);
111
- }
112
- // 排序
113
- if (orderBy && orderBy.length) {
114
- orderBy.forEach((orderBy, idx) => {
115
- const [field, sort] = orderBy;
116
- if (idx == 0) {
117
- sql += ` order by ?? ${sort} `;
118
- }
119
- else {
120
- sql += ` , ?? ${sort} `;
121
- }
122
- values.push(field);
123
- });
124
- }
125
- sql += ' limit 1';
126
- const res = await (0, utils_1.promiseQuery)(config, conn, sql, values);
127
- const list = res;
128
- return list.length ? list[0] : null;
129
- }
130
- exports.findFirst = findFirst;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findFirst = exports.findByIdIn = exports.findSelect = exports.find = exports.findAll = exports.findById = void 0;
4
+ const criteria_1 = require("./criteria");
5
+ const utils_1 = require("../utils");
6
+ /**
7
+ * 按 id 查询
8
+ * @param connection
9
+ * @param mapping
10
+ * @param type
11
+ * @param id
12
+ */
13
+ async function findById(config, connection, table, id) {
14
+ const res = await (0, utils_1.promiseQuery)(config, connection, `select * from ?? where ?? = ?`, [
15
+ table.tableName,
16
+ table.id,
17
+ id
18
+ ]);
19
+ const rows = res;
20
+ if (!rows.length) {
21
+ return null;
22
+ }
23
+ return rows[0];
24
+ }
25
+ exports.findById = findById;
26
+ /**
27
+ * 查询表中所有数据。需谨慎操作,全表查询有可能会产生大列表问题。
28
+ * @param connection
29
+ * @param mapping
30
+ * @param type
31
+ * @returns
32
+ */
33
+ async function findAll(config, connection, table) {
34
+ const res = await (0, utils_1.promiseQuery)(config, connection, `select * from ??`, [table.tableName]);
35
+ return res;
36
+ }
37
+ exports.findAll = findAll;
38
+ /**
39
+ * 条件查询
40
+ * @param opts
41
+ * @returns
42
+ */
43
+ async function find(config, conn, opts) {
44
+ let query = opts.criteria ? (0, criteria_1.buildQuery)(opts.criteria) : undefined;
45
+ const values = [];
46
+ let sql = `select * from ?? `;
47
+ values.push(opts.table.tableName);
48
+ if (query) {
49
+ sql += ` where ${query.sql} `;
50
+ values.push(...query.values);
51
+ }
52
+ // 排序
53
+ if (opts.orderBy && opts.orderBy.length) {
54
+ opts.orderBy.forEach((orderBy, idx) => {
55
+ const [field, sort] = orderBy;
56
+ if (idx == 0) {
57
+ sql += ` order by ?? ${sort} `;
58
+ }
59
+ else {
60
+ sql += ` , ?? ${sort} `;
61
+ }
62
+ values.push(field);
63
+ });
64
+ }
65
+ // 数量限制
66
+ if (opts.limit) {
67
+ sql += ` limit ${opts.limit} `;
68
+ if (opts.offset) {
69
+ sql += ` offset ${opts.offset}`;
70
+ }
71
+ }
72
+ const res = await (0, utils_1.promiseQuery)(config, conn, sql, values);
73
+ return res;
74
+ }
75
+ exports.find = find;
76
+ /**
77
+ * 查询指定的字段,返回值类型与选择的字段有关
78
+ * @param onfig
79
+ * @param conn
80
+ * @param opts
81
+ */
82
+ async function findSelect(config, conn, opts) {
83
+ let query = opts.criteria ? (0, criteria_1.buildQuery)(opts.criteria) : undefined;
84
+ const values = [];
85
+ let sql = `select ${opts.select.map(() => '??').join(',')} from ?? `;
86
+ values.push(...opts.select, opts.table.tableName);
87
+ if (query) {
88
+ sql += ` where ${query.sql} `;
89
+ values.push(...query.values);
90
+ }
91
+ // 排序
92
+ if (opts.orderBy && opts.orderBy.length) {
93
+ opts.orderBy.forEach((orderBy, idx) => {
94
+ const [field, sort] = orderBy;
95
+ if (idx == 0) {
96
+ sql += ` order by ?? ${sort} `;
97
+ }
98
+ else {
99
+ sql += ` , ?? ${sort} `;
100
+ }
101
+ values.push(field);
102
+ });
103
+ }
104
+ // 数量限制
105
+ if (opts.limit) {
106
+ sql += ` limit ${opts.limit} `;
107
+ if (opts.offset) {
108
+ sql += ` offset ${opts.offset}`;
109
+ }
110
+ }
111
+ const res = await (0, utils_1.promiseQuery)(config, conn, sql, values);
112
+ return res;
113
+ }
114
+ exports.findSelect = findSelect;
115
+ /**
116
+ * 根据 id 列表查询记录
117
+ * @param connection
118
+ * @param table
119
+ * @param ids
120
+ * @returns
121
+ */
122
+ async function findByIdIn(config, connection, table, ids) {
123
+ if (!ids.length) {
124
+ return [];
125
+ }
126
+ return find(config, connection, {
127
+ table,
128
+ criteria: c => c.in(table.id, ids)
129
+ });
130
+ }
131
+ exports.findByIdIn = findByIdIn;
132
+ /**
133
+ * 查找符合条件的第一条记录
134
+ * @param conn
135
+ * @param table
136
+ * @param criteria
137
+ * @returns
138
+ */
139
+ async function findFirst(config, conn, table, criteria,
140
+ /**
141
+ * 排序规则,按先后顺序放入,每个规则是一个元组,第一个元素是字段名称,第二个元素是顺序
142
+ */
143
+ orderBy) {
144
+ let query = criteria ? (0, criteria_1.buildQuery)(criteria) : undefined;
145
+ let sql = `select * from ?? `;
146
+ const values = [table.tableName];
147
+ if (query) {
148
+ sql += ` where ${query.sql} `;
149
+ values.push(...query.values);
150
+ }
151
+ // 排序
152
+ if (orderBy && orderBy.length) {
153
+ orderBy.forEach((orderBy, idx) => {
154
+ const [field, sort] = orderBy;
155
+ if (idx == 0) {
156
+ sql += ` order by ?? ${sort} `;
157
+ }
158
+ else {
159
+ sql += ` , ?? ${sort} `;
160
+ }
161
+ values.push(field);
162
+ });
163
+ }
164
+ sql += ' limit 1';
165
+ const res = await (0, utils_1.promiseQuery)(config, conn, sql, values);
166
+ const list = res;
167
+ return list.length ? list[0] : null;
168
+ }
169
+ exports.findFirst = findFirst;
@@ -1,14 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- // 各类操作封装
5
- tslib_1.__exportStar(require("./count"), exports);
6
- tslib_1.__exportStar(require("./criteria"), exports);
7
- tslib_1.__exportStar(require("./delete"), exports);
8
- tslib_1.__exportStar(require("./exist"), exports);
9
- tslib_1.__exportStar(require("./find"), exports);
10
- tslib_1.__exportStar(require("./insert"), exports);
11
- tslib_1.__exportStar(require("./modify"), exports);
12
- tslib_1.__exportStar(require("./paginate"), exports);
13
- tslib_1.__exportStar(require("./query"), exports);
14
- tslib_1.__exportStar(require("./update"), exports);
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ // 各类操作封装
5
+ tslib_1.__exportStar(require("./count"), exports);
6
+ tslib_1.__exportStar(require("./criteria"), exports);
7
+ tslib_1.__exportStar(require("./delete"), exports);
8
+ tslib_1.__exportStar(require("./exist"), exports);
9
+ tslib_1.__exportStar(require("./find"), exports);
10
+ tslib_1.__exportStar(require("./insert"), exports);
11
+ tslib_1.__exportStar(require("./modify"), exports);
12
+ tslib_1.__exportStar(require("./paginate"), exports);
13
+ tslib_1.__exportStar(require("./query"), exports);
14
+ tslib_1.__exportStar(require("./update"), exports);