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,42 +1,42 @@
1
- /**
2
- * mvc 模块配置.
3
- */
4
- export interface WebConfig {
5
- /**
6
- * 端口号
7
- */
8
- port: number;
9
- /**
10
- * 超时时间
11
- */
12
- timeout: number;
13
- /**
14
- * 是否开启访问日志.
15
- */
16
- accessLog: boolean;
17
- /**
18
- * 跨域允许的源域名
19
- */
20
- corsAllowOrigin: string;
21
- /**
22
- * 跨域允许的消息头
23
- */
24
- corsAllowHeaders: string;
25
- /**
26
- * 跨域允许的请求方法
27
- */
28
- corsAllowMethods: string;
29
- /**
30
- * 是否激活安全传输层
31
- */
32
- tlsEnable: boolean;
33
- /**
34
- * pem 格式证书公钥文件路径
35
- */
36
- tlsCert: string;
37
- /**
38
- * pem 格式证书私钥文件路径
39
- */
40
- tlsKey: string;
41
- }
42
- export declare function getConfig(): WebConfig;
1
+ /**
2
+ * mvc 模块配置.
3
+ */
4
+ export interface WebConfig {
5
+ /**
6
+ * 端口号
7
+ */
8
+ port: number;
9
+ /**
10
+ * 超时时间
11
+ */
12
+ timeout: number;
13
+ /**
14
+ * 是否开启访问日志.
15
+ */
16
+ accessLog: boolean;
17
+ /**
18
+ * 跨域允许的源域名
19
+ */
20
+ corsAllowOrigin: string;
21
+ /**
22
+ * 跨域允许的消息头
23
+ */
24
+ corsAllowHeaders: string;
25
+ /**
26
+ * 跨域允许的请求方法
27
+ */
28
+ corsAllowMethods: string;
29
+ /**
30
+ * 是否激活安全传输层
31
+ */
32
+ tlsEnable: boolean;
33
+ /**
34
+ * pem 格式证书公钥文件路径
35
+ */
36
+ tlsCert: string;
37
+ /**
38
+ * pem 格式证书私钥文件路径
39
+ */
40
+ tlsKey: string;
41
+ }
42
+ export declare function getConfig(): WebConfig;
@@ -1,72 +1,72 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- import { IncomingMessage, ServerResponse } from 'http';
4
- import { QueryString } from './query';
5
- import { HtmlStuct } from './render';
6
- /**
7
- * 服务的数据交换对象.
8
- */
9
- export declare class ServerExchange {
10
- #private;
11
- readonly request: IncomingMessage;
12
- readonly response: ServerResponse;
13
- constructor(request: IncomingMessage, response: ServerResponse);
14
- bodyBuffer(): Promise<Buffer>;
15
- bodyText(): Promise<string>;
16
- bodyJson<T>(): Promise<T>;
17
- /**
18
- * 响应纯文本
19
- * @param text 文本内容
20
- * @param status 状态码,可选,默认 200
21
- */
22
- respondText(text: string, status?: number): void;
23
- /**
24
- * 响应 json
25
- * @param json 任意可被 json 序列化的对象
26
- * @param status 状态码,可选,默认 200
27
- */
28
- respondJson(json: any, status?: number): void;
29
- /**
30
- * 响应错误信息提示,提供一个统一的格式封装,json 格式
31
- * @param message 消息
32
- * @param status 状态码,默认 400 ,表示业务错误
33
- * @returns
34
- */
35
- respondErrMsg(message: string, status?: number): void;
36
- /**
37
- * 响应文件
38
- * @param filePath 文件路径,绝对路径
39
- * @param download 是否下载模式
40
- * @returns
41
- */
42
- respondFile(filePath: string, download?: boolean): Promise<void>;
43
- /**
44
- * 响应 html
45
- * @param html html 内容,一个特定结构的对象或者是字符串
46
- * @param status 状态码,可选,默认 200
47
- */
48
- respondHtml(html: HtmlStuct | string, status?: number): void;
49
- /**
50
- * 响应
51
- * @param opts
52
- */
53
- respond(opts: {
54
- /**
55
- * 状态码.
56
- */
57
- statusCode: number;
58
- /**
59
- * 响应正文内容.
60
- */
61
- body?: string | Buffer | Uint8Array;
62
- /**
63
- * 自定义消息头
64
- */
65
- headers?: Record<string, string>;
66
- }): void;
67
- /**
68
- * 解析 queryString
69
- * @returns
70
- */
71
- parseQueryString(): QueryString;
72
- }
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { IncomingMessage, ServerResponse } from 'http';
4
+ import { QueryString } from './query';
5
+ import { HtmlStuct } from './render';
6
+ /**
7
+ * 服务的数据交换对象.
8
+ */
9
+ export declare class ServerExchange {
10
+ #private;
11
+ readonly request: IncomingMessage;
12
+ readonly response: ServerResponse;
13
+ constructor(request: IncomingMessage, response: ServerResponse);
14
+ bodyBuffer(): Promise<Buffer>;
15
+ bodyText(): Promise<string>;
16
+ bodyJson<T>(): Promise<T>;
17
+ /**
18
+ * 响应纯文本
19
+ * @param text 文本内容
20
+ * @param status 状态码,可选,默认 200
21
+ */
22
+ respondText(text: string, status?: number): void;
23
+ /**
24
+ * 响应 json
25
+ * @param json 任意可被 json 序列化的对象
26
+ * @param status 状态码,可选,默认 200
27
+ */
28
+ respondJson(json: any, status?: number): void;
29
+ /**
30
+ * 响应错误信息提示,提供一个统一的格式封装,json 格式
31
+ * @param message 消息
32
+ * @param status 状态码,默认 400 ,表示业务错误
33
+ * @returns
34
+ */
35
+ respondErrMsg(message: string, status?: number): void;
36
+ /**
37
+ * 响应文件
38
+ * @param filePath 文件路径,绝对路径
39
+ * @param download 是否下载模式
40
+ * @returns
41
+ */
42
+ respondFile(filePath: string, download?: boolean): Promise<void>;
43
+ /**
44
+ * 响应 html
45
+ * @param html html 内容,一个特定结构的对象或者是字符串
46
+ * @param status 状态码,可选,默认 200
47
+ */
48
+ respondHtml(html: HtmlStuct | string, status?: number): void;
49
+ /**
50
+ * 响应
51
+ * @param opts
52
+ */
53
+ respond(opts: {
54
+ /**
55
+ * 状态码.
56
+ */
57
+ statusCode: number;
58
+ /**
59
+ * 响应正文内容.
60
+ */
61
+ body?: string | Buffer | Uint8Array;
62
+ /**
63
+ * 自定义消息头
64
+ */
65
+ headers?: Record<string, string>;
66
+ }): void;
67
+ /**
68
+ * 解析 queryString
69
+ * @returns
70
+ */
71
+ parseQueryString(): QueryString;
72
+ }
@@ -1,3 +1,4 @@
1
- export * from './json';
2
- export * from './upload';
3
- export * from './restful';
1
+ export * from './json';
2
+ export * from './upload';
3
+ export * from './restful';
4
+ export * from './sse';
@@ -1,44 +1,44 @@
1
- /// <reference types="node" />
2
- import { IncomingMessage } from 'http';
3
- import { ValidationOpts } from '../../validation';
4
- import { RouterHandler } from '../router';
5
- export interface JsonHandlerExchange {
6
- /**
7
- * 请求信息
8
- */
9
- request: IncomingMessage;
10
- }
11
- /**
12
- * 创建 json 处理器..
13
- * @param <REQ> 表示请求的 json 数据格式类型
14
- * @param <RES> 表示响应的类型,可选,如果不需要响应 json 数据,则方法可以不返回任何值
15
- * @param opts
16
- * @returns
17
- */
18
- export declare function createJsonHandler<REQ, RES = void>(opts: {
19
- /**
20
- * 缓存设置,通过框架的 cache 模块来缓存响应信息,只能缓存有效的响应信息,如果没有响应正文则不会进行缓存,
21
- * 参数和 handle 是一样的
22
- * @param body
23
- * @param exchange
24
- * @returns 返回缓存的 key 和缓存秒数
25
- */
26
- cache?: (body: REQ, exchange: JsonHandlerExchange) => Promise<{
27
- key: string;
28
- expiresInSeconds?: number;
29
- }> | {
30
- key: string;
31
- expiresInSeconds?: number;
32
- };
33
- /**
34
- * 校验信息,可选,用于检查请求信息.对于一些特殊情况,无法使用校验器的,可以在 handle 中继续处理.
35
- */
36
- validation?: ValidationOpts<REQ> | (() => ValidationOpts<REQ>);
37
- /**
38
- * 处理请求.
39
- * @param body 正文内容
40
- * @param exchange 请求传输对象,用于获取请求的基本信息
41
- * @returns
42
- */
43
- handle: (body: REQ, exchange: JsonHandlerExchange) => Promise<RES>;
44
- }): RouterHandler;
1
+ /// <reference types="node" />
2
+ import { IncomingMessage } from 'http';
3
+ import { ValidationOpts } from '../../validation';
4
+ import { RouterHandler } from '../router';
5
+ export interface JsonHandlerExchange {
6
+ /**
7
+ * 请求信息
8
+ */
9
+ request: IncomingMessage;
10
+ }
11
+ /**
12
+ * 创建 json 处理器..
13
+ * @param <REQ> 表示请求的 json 数据格式类型
14
+ * @param <RES> 表示响应的类型,可选,如果不需要响应 json 数据,则方法可以不返回任何值
15
+ * @param opts
16
+ * @returns
17
+ */
18
+ export declare function createJsonHandler<REQ, RES = void>(opts: {
19
+ /**
20
+ * 缓存设置,通过框架的 cache 模块来缓存响应信息,只能缓存有效的响应信息,如果没有响应正文则不会进行缓存,
21
+ * 参数和 handle 是一样的
22
+ * @param body
23
+ * @param exchange
24
+ * @returns 返回缓存的 key 和缓存秒数
25
+ */
26
+ cache?: (body: REQ, exchange: JsonHandlerExchange) => Promise<{
27
+ key: string;
28
+ expiresInSeconds?: number;
29
+ }> | {
30
+ key: string;
31
+ expiresInSeconds?: number;
32
+ };
33
+ /**
34
+ * 校验信息,可选,用于检查请求信息.对于一些特殊情况,无法使用校验器的,可以在 handle 中继续处理.
35
+ */
36
+ validation?: ValidationOpts<REQ> | (() => ValidationOpts<REQ>);
37
+ /**
38
+ * 处理请求.
39
+ * @param body 正文内容
40
+ * @param exchange 请求传输对象,用于获取请求的基本信息
41
+ * @returns
42
+ */
43
+ handle: (body: REQ, exchange: JsonHandlerExchange) => Promise<RES>;
44
+ }): RouterHandler;
@@ -1,11 +1,11 @@
1
- import { RouterHandler } from '../router';
2
- /**
3
- * 构建 restful 风格路由
4
- */
5
- export declare function restful(opts: {
6
- get?: RouterHandler;
7
- post?: RouterHandler;
8
- put?: RouterHandler;
9
- patch?: RouterHandler;
10
- delete?: RouterHandler;
11
- }): RouterHandler;
1
+ import { RouterHandler } from '../router';
2
+ /**
3
+ * 构建 restful 风格路由
4
+ */
5
+ export declare function restful(opts: {
6
+ get?: RouterHandler;
7
+ post?: RouterHandler;
8
+ put?: RouterHandler;
9
+ patch?: RouterHandler;
10
+ delete?: RouterHandler;
11
+ }): RouterHandler;
@@ -0,0 +1,34 @@
1
+ /// <reference types="node" />
2
+ import { IncomingMessage, ServerResponse } from 'http';
3
+ import { RouterHandler } from '../router';
4
+ export interface SseContext {
5
+ /**
6
+ * 请求信息
7
+ */
8
+ readonly request: IncomingMessage;
9
+ /**
10
+ * 响应信息
11
+ */
12
+ readonly response: ServerResponse;
13
+ /**
14
+ * 发送 SSE 事件
15
+ * @param data 事件数据,会被 JSON 序列化
16
+ * @param event 事件名称,可选。前端可通过 addEventListener 监听
17
+ * @param id 事件 ID,可选。用于断线重连时的 Last-Event-ID
18
+ */
19
+ send(data: any, event?: string, id?: string): void;
20
+ /**
21
+ * 结束 SSE 连接
22
+ */
23
+ close(): void;
24
+ }
25
+ /**
26
+ * 创建 SSE (Server-Sent Events) 处理器.
27
+ * 用于服务端向客户端单向推送实时数据。
28
+ *
29
+ * @param opts
30
+ * @returns
31
+ */
32
+ export declare function createSseHandler(opts: {
33
+ handle: (ctx: SseContext) => Promise<void>;
34
+ }): RouterHandler;
@@ -1,36 +1,36 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- import { IncomingMessage } from 'http';
4
- import { QueryString } from '../query';
5
- import { RouterHandler } from '../router';
6
- /**
7
- * 上传请求传输对象.
8
- */
9
- export interface UploadHandlerExchange {
10
- /**
11
- * 请求信息
12
- */
13
- request: IncomingMessage;
14
- /**
15
- * querystring 解析结果
16
- */
17
- query: QueryString;
18
- }
19
- /**
20
- * 创建上传处理器. 上传要求一次只能传输一个文件,并且请求正文就是文件二进制内容。
21
- * 必须是 post 请求,额外的参数只能通过 queryString 或 header 来传递。
22
- * 和 postman 中的 binary 模式是一致的,这样上传文件性能会好一些,但是局限性也很大。
23
- *
24
- * @param opts
25
- * @param <RES> 响应json数据类型
26
- * @returns
27
- */
28
- export declare function createUploadHandler<RES = void>(opts: {
29
- /**
30
- * 处理请求.
31
- * @param body 正文内容
32
- * @param exchange 请求传输对象,用于获取请求的基本信息
33
- * @returns
34
- */
35
- handle: (body: Buffer, exchange: UploadHandlerExchange) => Promise<RES>;
36
- }): RouterHandler;
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { IncomingMessage } from 'http';
4
+ import { QueryString } from '../query';
5
+ import { RouterHandler } from '../router';
6
+ /**
7
+ * 上传请求传输对象.
8
+ */
9
+ export interface UploadHandlerExchange {
10
+ /**
11
+ * 请求信息
12
+ */
13
+ request: IncomingMessage;
14
+ /**
15
+ * querystring 解析结果
16
+ */
17
+ query: QueryString;
18
+ }
19
+ /**
20
+ * 创建上传处理器. 上传要求一次只能传输一个文件,并且请求正文就是文件二进制内容。
21
+ * 必须是 post 请求,额外的参数只能通过 queryString 或 header 来传递。
22
+ * 和 postman 中的 binary 模式是一致的,这样上传文件性能会好一些,但是局限性也很大。
23
+ *
24
+ * @param opts
25
+ * @param <RES> 响应json数据类型
26
+ * @returns
27
+ */
28
+ export declare function createUploadHandler<RES = void>(opts: {
29
+ /**
30
+ * 处理请求.
31
+ * @param body 正文内容
32
+ * @param exchange 请求传输对象,用于获取请求的基本信息
33
+ * @returns
34
+ */
35
+ handle: (body: Buffer, exchange: UploadHandlerExchange) => Promise<RES>;
36
+ }): RouterHandler;
@@ -1,22 +1,22 @@
1
- import { WokServerOpts } from './server';
2
- /**
3
- * 删除服务器静态缓存
4
- * @param path 路径,必须以斜杠开头,如:/assets/index.js
5
- */
6
- export declare function removeServerStaticCache(path: string): Promise<void>;
7
- /**
8
- * 启动 web服务
9
- * @param opts
10
- */
11
- export declare function startWebServer(opts: WokServerOpts): Promise<void>;
12
- /**
13
- * 停止 web 服务
14
- * @returns
15
- */
16
- export declare function stopWebServer(): Promise<void>;
17
- export * from './exchange';
18
- export * from './handler';
19
- export * from './interceptor';
20
- export * from './render';
21
- export * from './router';
22
- export * from './static';
1
+ import { WokServerOpts } from './server';
2
+ /**
3
+ * 删除服务器静态缓存
4
+ * @param path 路径,必须以斜杠开头,如:/assets/index.js
5
+ */
6
+ export declare function removeServerStaticCache(path: string): Promise<void>;
7
+ /**
8
+ * 启动 web服务
9
+ * @param opts
10
+ */
11
+ export declare function startWebServer(opts: WokServerOpts): Promise<void>;
12
+ /**
13
+ * 停止 web 服务
14
+ * @returns
15
+ */
16
+ export declare function stopWebServer(): Promise<void>;
17
+ export * from './exchange';
18
+ export * from './handler';
19
+ export * from './interceptor';
20
+ export * from './render';
21
+ export * from './router';
22
+ export * from './static';
@@ -1,11 +1,11 @@
1
- import { ServerExchange } from './exchange';
2
- /**
3
- * 拦截器.
4
- */
5
- export interface Interceptor {
6
- /**
7
- * @param exchange 传输对象,提供获取请求信息和通用的响应数据功能
8
- * @param next 执行后面的流程,可能是下一个拦截器,也可能是路由
9
- */
10
- (exchange: ServerExchange, next: () => Promise<void>): Promise<void>;
11
- }
1
+ import { ServerExchange } from './exchange';
2
+ /**
3
+ * 拦截器.
4
+ */
5
+ export interface Interceptor {
6
+ /**
7
+ * @param exchange 传输对象,提供获取请求信息和通用的响应数据功能
8
+ * @param next 执行后面的流程,可能是下一个拦截器,也可能是路由
9
+ */
10
+ (exchange: ServerExchange, next: () => Promise<void>): Promise<void>;
11
+ }
@@ -1,13 +1,13 @@
1
- export declare class QueryString {
2
- private qs;
3
- constructor(url: string);
4
- /**
5
- * 获取单个字符串值
6
- * @param name
7
- */
8
- getStr(name: string): string | undefined;
9
- /**
10
- * 获取参数的所有值
11
- */
12
- getStrVals(name: string): string[] | undefined;
13
- }
1
+ export declare class QueryString {
2
+ private qs;
3
+ constructor(url: string);
4
+ /**
5
+ * 获取单个字符串值
6
+ * @param name
7
+ */
8
+ getStr(name: string): string | undefined;
9
+ /**
10
+ * 获取参数的所有值
11
+ */
12
+ getStrVals(name: string): string[] | undefined;
13
+ }
@@ -1,10 +1,10 @@
1
- /// <reference types="node" />
2
- import { IncomingMessage, ServerResponse } from 'http';
3
- /**
4
- * 响应一个文件.
5
- * @param request 请求信息
6
- * @param response 响应信息
7
- * @param filePath 文件路径,如果文件不存在,则会响应 404
8
- * @param download 是否下载
9
- */
10
- export declare function renderFile(request: IncomingMessage, response: ServerResponse, filePath: string, download?: boolean): Promise<void>;
1
+ /// <reference types="node" />
2
+ import { IncomingMessage, ServerResponse } from 'http';
3
+ /**
4
+ * 响应一个文件.
5
+ * @param request 请求信息
6
+ * @param response 响应信息
7
+ * @param filePath 文件路径,如果文件不存在,则会响应 404
8
+ * @param download 是否下载
9
+ */
10
+ export declare function renderFile(request: IncomingMessage, response: ServerResponse, filePath: string, download?: boolean): Promise<void>;