phecda-server 5.0.2 → 5.1.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 (167) hide show
  1. package/README.md +10 -108
  2. package/bin/cli.mjs +189 -186
  3. package/bin/schema.json +55 -55
  4. package/dist/{chunk-F5YWXY5W.js → chunk-423JPSEB.js} +18 -17
  5. package/dist/chunk-423JPSEB.js.map +1 -0
  6. package/dist/chunk-4R55T3HG.js +253 -0
  7. package/dist/chunk-4R55T3HG.js.map +1 -0
  8. package/dist/chunk-4YVAW3L4.mjs +76 -0
  9. package/dist/chunk-4YVAW3L4.mjs.map +1 -0
  10. package/dist/{chunk-W5EOVGQD.mjs → chunk-5DOVDDO7.mjs} +3 -2
  11. package/dist/chunk-5DOVDDO7.mjs.map +1 -0
  12. package/dist/{chunk-BXLBWRHS.js → chunk-5WQ2SMIK.js} +39 -38
  13. package/dist/chunk-5WQ2SMIK.js.map +1 -0
  14. package/dist/chunk-6MQP6OHU.mjs +295 -0
  15. package/dist/chunk-6MQP6OHU.mjs.map +1 -0
  16. package/dist/chunk-6Q2PCC3A.mjs +295 -0
  17. package/dist/chunk-6Q2PCC3A.mjs.map +1 -0
  18. package/dist/chunk-6UQYEBAN.js +253 -0
  19. package/dist/chunk-6UQYEBAN.js.map +1 -0
  20. package/dist/chunk-6W7CGOZC.mjs +565 -0
  21. package/dist/chunk-6W7CGOZC.mjs.map +1 -0
  22. package/dist/{chunk-YR5Q5F2K.js → chunk-7Y37NSBM.js} +1 -0
  23. package/dist/chunk-7Y37NSBM.js.map +1 -0
  24. package/dist/{chunk-RCTOVYZY.mjs → chunk-BQBSVGMG.mjs} +2 -1
  25. package/dist/chunk-BQBSVGMG.mjs.map +1 -0
  26. package/dist/chunk-BZP6GKM6.mjs +565 -0
  27. package/dist/chunk-BZP6GKM6.mjs.map +1 -0
  28. package/dist/{chunk-ITTD2GBR.mjs → chunk-C5JAHCS2.mjs} +1 -0
  29. package/dist/chunk-C5JAHCS2.mjs.map +1 -0
  30. package/dist/chunk-DTBKDALR.mjs +295 -0
  31. package/dist/chunk-DTBKDALR.mjs.map +1 -0
  32. package/dist/chunk-GHOKWS5V.js +295 -0
  33. package/dist/chunk-GHOKWS5V.js.map +1 -0
  34. package/dist/chunk-H4N6SHNG.mjs +76 -0
  35. package/dist/chunk-H4N6SHNG.mjs.map +1 -0
  36. package/dist/chunk-ICYHM4UM.js +565 -0
  37. package/dist/chunk-ICYHM4UM.js.map +1 -0
  38. package/dist/chunk-LOLXPM4J.mjs +529 -0
  39. package/dist/chunk-LOLXPM4J.mjs.map +1 -0
  40. package/dist/chunk-MSS6A2TU.js +585 -0
  41. package/dist/chunk-MSS6A2TU.js.map +1 -0
  42. package/dist/{chunk-AB4OX3WV.mjs → chunk-NEM3FY7C.mjs} +2 -1
  43. package/dist/chunk-NEM3FY7C.mjs.map +1 -0
  44. package/dist/chunk-OTHER3YM.mjs +253 -0
  45. package/dist/chunk-OTHER3YM.mjs.map +1 -0
  46. package/dist/chunk-Q2FYFIEY.js +295 -0
  47. package/dist/chunk-Q2FYFIEY.js.map +1 -0
  48. package/dist/chunk-QG4X6H5Y.js +565 -0
  49. package/dist/chunk-QG4X6H5Y.js.map +1 -0
  50. package/dist/chunk-QIEZ6YTG.mjs +295 -0
  51. package/dist/chunk-QIEZ6YTG.mjs.map +1 -0
  52. package/dist/chunk-QOAKHCM7.js +295 -0
  53. package/dist/chunk-QOAKHCM7.js.map +1 -0
  54. package/dist/chunk-QVUD6L5X.js +565 -0
  55. package/dist/chunk-QVUD6L5X.js.map +1 -0
  56. package/dist/{chunk-YERBWZCS.js → chunk-RGLTGKAU.js} +64 -63
  57. package/dist/chunk-RGLTGKAU.js.map +1 -0
  58. package/dist/chunk-SHRK3TVB.js +295 -0
  59. package/dist/chunk-SHRK3TVB.js.map +1 -0
  60. package/dist/chunk-TCH6S42Z.js +529 -0
  61. package/dist/chunk-TCH6S42Z.js.map +1 -0
  62. package/dist/chunk-UCGRFVHC.mjs +253 -0
  63. package/dist/chunk-UCGRFVHC.mjs.map +1 -0
  64. package/dist/chunk-VOISXWVF.mjs +295 -0
  65. package/dist/chunk-VOISXWVF.mjs.map +1 -0
  66. package/dist/chunk-W6BC5INO.mjs +295 -0
  67. package/dist/chunk-W6BC5INO.mjs.map +1 -0
  68. package/dist/chunk-X5WQRO4R.js +295 -0
  69. package/dist/chunk-X5WQRO4R.js.map +1 -0
  70. package/dist/chunk-XDMCVVD3.mjs +585 -0
  71. package/dist/chunk-XDMCVVD3.mjs.map +1 -0
  72. package/dist/chunk-XNTMYLK6.js +76 -0
  73. package/dist/chunk-XNTMYLK6.js.map +1 -0
  74. package/dist/chunk-Y6LI4FDO.js +537 -0
  75. package/dist/chunk-Y6LI4FDO.js.map +1 -0
  76. package/dist/chunk-YZ2AQ6IL.mjs +537 -0
  77. package/dist/chunk-YZ2AQ6IL.mjs.map +1 -0
  78. package/dist/chunk-Z4YJHEXT.js +76 -0
  79. package/dist/chunk-Z4YJHEXT.js.map +1 -0
  80. package/dist/chunk-ZE336SKZ.js +295 -0
  81. package/dist/chunk-ZE336SKZ.js.map +1 -0
  82. package/dist/chunk-ZJD235TO.mjs +565 -0
  83. package/dist/chunk-ZJD235TO.mjs.map +1 -0
  84. package/dist/core-39f27fe8.d.ts +131 -0
  85. package/dist/core-930ea883.d.ts +131 -0
  86. package/dist/core-eb646fe5.d.ts +139 -0
  87. package/dist/helper-06d25b37.d.ts +19 -0
  88. package/dist/helper-48454c0b.d.ts +20 -0
  89. package/dist/helper-6133f78f.d.ts +18 -0
  90. package/dist/helper-867a598d.d.ts +18 -0
  91. package/dist/helper-88b19c66.d.ts +12 -0
  92. package/dist/helper-9e206c66.d.ts +12 -0
  93. package/dist/helper-fcbf6aa8.d.ts +20 -0
  94. package/dist/index.d.ts +27 -32
  95. package/dist/index.js +45 -40
  96. package/dist/index.js.map +1 -0
  97. package/dist/index.mjs +15 -10
  98. package/dist/index.mjs.map +1 -0
  99. package/dist/rpc/bullmq/index.d.ts +10 -6
  100. package/dist/rpc/bullmq/index.js +33 -53
  101. package/dist/rpc/bullmq/index.js.map +1 -0
  102. package/dist/rpc/bullmq/index.mjs +27 -47
  103. package/dist/rpc/bullmq/index.mjs.map +1 -0
  104. package/dist/rpc/kafka/index.d.ts +10 -4
  105. package/dist/rpc/kafka/index.js +21 -37
  106. package/dist/rpc/kafka/index.js.map +1 -0
  107. package/dist/rpc/kafka/index.mjs +16 -32
  108. package/dist/rpc/kafka/index.mjs.map +1 -0
  109. package/dist/rpc/nats/index.d.ts +2 -2
  110. package/dist/rpc/nats/index.js +21 -34
  111. package/dist/rpc/nats/index.js.map +1 -0
  112. package/dist/rpc/nats/index.mjs +14 -27
  113. package/dist/rpc/nats/index.mjs.map +1 -0
  114. package/dist/rpc/rabbitmq/index.d.ts +2 -2
  115. package/dist/rpc/rabbitmq/index.js +24 -37
  116. package/dist/rpc/rabbitmq/index.js.map +1 -0
  117. package/dist/rpc/rabbitmq/index.mjs +15 -28
  118. package/dist/rpc/rabbitmq/index.mjs.map +1 -0
  119. package/dist/rpc/redis/index.d.ts +10 -4
  120. package/dist/rpc/redis/index.js +24 -37
  121. package/dist/rpc/redis/index.js.map +1 -0
  122. package/dist/rpc/redis/index.mjs +17 -30
  123. package/dist/rpc/redis/index.mjs.map +1 -0
  124. package/dist/server/elysia/index.d.ts +4 -3
  125. package/dist/server/elysia/index.js +78 -94
  126. package/dist/server/elysia/index.js.map +1 -0
  127. package/dist/server/elysia/index.mjs +75 -91
  128. package/dist/server/elysia/index.mjs.map +1 -0
  129. package/dist/server/express/index.d.ts +5 -4
  130. package/dist/server/express/index.js +80 -93
  131. package/dist/server/express/index.js.map +1 -0
  132. package/dist/server/express/index.mjs +78 -91
  133. package/dist/server/express/index.mjs.map +1 -0
  134. package/dist/server/fastify/index.d.ts +8 -5
  135. package/dist/server/fastify/index.js +84 -102
  136. package/dist/server/fastify/index.js.map +1 -0
  137. package/dist/server/fastify/index.mjs +80 -98
  138. package/dist/server/fastify/index.mjs.map +1 -0
  139. package/dist/server/h3/index.d.ts +5 -4
  140. package/dist/server/h3/index.js +82 -97
  141. package/dist/server/h3/index.js.map +1 -0
  142. package/dist/server/h3/index.mjs +81 -96
  143. package/dist/server/h3/index.mjs.map +1 -0
  144. package/dist/server/hono/index.d.ts +5 -4
  145. package/dist/server/hono/index.js +74 -90
  146. package/dist/server/hono/index.js.map +1 -0
  147. package/dist/server/hono/index.mjs +73 -89
  148. package/dist/server/hono/index.mjs.map +1 -0
  149. package/dist/server/hyper-express/index.d.ts +6 -5
  150. package/dist/server/hyper-express/index.js +79 -96
  151. package/dist/server/hyper-express/index.js.map +1 -0
  152. package/dist/server/hyper-express/index.mjs +78 -95
  153. package/dist/server/hyper-express/index.mjs.map +1 -0
  154. package/dist/server/koa/index.d.ts +5 -4
  155. package/dist/server/koa/index.js +80 -92
  156. package/dist/server/koa/index.js.map +1 -0
  157. package/dist/server/koa/index.mjs +77 -89
  158. package/dist/server/koa/index.mjs.map +1 -0
  159. package/dist/test.d.ts +1 -1
  160. package/dist/test.js +7 -6
  161. package/dist/test.js.map +1 -0
  162. package/dist/test.mjs +3 -2
  163. package/dist/test.mjs.map +1 -0
  164. package/package.json +8 -7
  165. package/register/index.mjs +40 -40
  166. package/register/loader.mjs +341 -340
  167. package/register/utils.mjs +81 -81
@@ -4,96 +4,99 @@
4
4
 
5
5
 
6
6
 
7
- var _chunkYERBWZCSjs = require('../../chunk-YERBWZCS.js');
8
7
 
8
+ var _chunkQG4X6H5Yjs = require('../../chunk-QG4X6H5Y.js');
9
9
 
10
- var _chunkYR5Q5F2Kjs = require('../../chunk-YR5Q5F2K.js');
10
+
11
+ var _chunkXNTMYLK6js = require('../../chunk-XNTMYLK6.js');
11
12
 
12
13
  // src/server/express/bind.ts
13
14
  var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug);
14
15
  var debug = _debug2.default.call(void 0, "phecda-server/express");
15
16
  function bind(router, data, opts = {}) {
16
- const { globalGuards, globalInterceptors, route, plugins, globalFilter, globalPipe } = {
17
- route: "/__PHECDA_SERVER__",
18
- plugins: [],
19
- ...opts
20
- };
17
+ const { globalGuards, globalInterceptors, parallelRoute = "/__PHECDA_SERVER__", globalPlugins = [], parallelPlugins = [], globalFilter, globalPipe } = opts;
21
18
  const { moduleMap, meta } = data;
22
19
  const originStack = router.stack.slice(0, router.stack.length);
23
- const metaMap = /* @__PURE__ */ new Map();
24
- function handleMeta() {
25
- metaMap.clear();
26
- for (const item of meta) {
27
- const { tag, func, controller, http } = item.data;
28
- if (controller !== "http" || !_optionalChain([http, 'optionalAccess', _ => _.type]))
29
- continue;
20
+ const metaMap = _chunkQG4X6H5Yjs.createControllerMetaMap.call(void 0, meta, (meta2) => {
21
+ const { controller, http, func, tag } = meta2.data;
22
+ if (controller === "http" && _optionalChain([http, 'optionalAccess', _ => _.type])) {
30
23
  debug(`register method "${func}" in module "${tag}"`);
31
- if (metaMap.has(tag))
32
- metaMap.get(tag)[func] = item;
33
- else
34
- metaMap.set(tag, {
35
- [func]: item
36
- });
24
+ return true;
37
25
  }
38
- }
39
- _chunkYR5Q5F2Kjs.__name.call(void 0, handleMeta, "handleMeta");
40
- async function createRoute() {
41
- router.post(route, ..._chunkYERBWZCSjs.Context.usePlugin(plugins), async (req, res, next) => {
42
- const { body } = req;
43
- async function errorHandler(e) {
44
- const error = await _chunkYERBWZCSjs.Context.filterRecord.default(e);
45
- return res.status(error.status).json(error);
46
- }
47
- _chunkYR5Q5F2Kjs.__name.call(void 0, errorHandler, "errorHandler");
48
- if (!Array.isArray(body))
49
- return errorHandler(new (0, _chunkYERBWZCSjs.BadRequestException)("data format should be an array"));
50
- try {
51
- return Promise.all(body.map((item, i) => {
52
- return new Promise(async (resolve) => {
53
- const { tag, func } = item;
54
- debug(`(parallel)invoke method "${func}" in module "${tag}"`);
55
- if (!metaMap.has(tag))
56
- return resolve(await _chunkYERBWZCSjs.Context.filterRecord.default(new (0, _chunkYERBWZCSjs.BadRequestException)(`module "${tag}" doesn't exist`)));
57
- const meta2 = metaMap.get(tag)[func];
58
- if (!meta2)
59
- return resolve(await _chunkYERBWZCSjs.Context.filterRecord.default(new (0, _chunkYERBWZCSjs.BadRequestException)(`"${func}" in "${tag}" doesn't exist`)));
60
- const { data: { params } } = meta2;
61
- const contextData = {
62
- type: "express",
63
- parallel: true,
64
- request: req,
65
- index: i,
66
- meta: meta2,
67
- response: res,
68
- moduleMap,
69
- tag,
70
- func,
71
- next,
72
- app: router,
73
- ..._chunkYERBWZCSjs.argToReq.call(void 0, params, item.args, req.headers)
74
- };
75
- const context = new (0, _chunkYERBWZCSjs.Context)(contextData);
76
- context.run({
77
- globalGuards,
78
- globalInterceptors,
79
- globalFilter,
80
- globalPipe
81
- }, resolve, resolve);
26
+ });
27
+ _chunkQG4X6H5Yjs.detectAopDep.call(void 0, meta, {
28
+ plugins: [
29
+ ...globalPlugins,
30
+ ...parallelPlugins
31
+ ],
32
+ guards: globalGuards,
33
+ interceptors: globalInterceptors
34
+ });
35
+ registerRoute();
36
+ _chunkQG4X6H5Yjs.HMR.call(void 0, async () => {
37
+ router.stack = originStack;
38
+ registerRoute();
39
+ });
40
+ async function registerRoute() {
41
+ _chunkQG4X6H5Yjs.Context.usePlugin(globalPlugins, "express").forEach((p) => router.use(p));
42
+ if (parallelRoute) {
43
+ router.post(parallelRoute, ..._chunkQG4X6H5Yjs.Context.usePlugin(parallelPlugins, "express"), async (req, res, next) => {
44
+ const { body } = req;
45
+ async function errorHandler(e) {
46
+ const error = await _chunkQG4X6H5Yjs.Context.filterRecord.default(e);
47
+ return res.status(error.status).json(error);
48
+ }
49
+ _chunkXNTMYLK6js.__name.call(void 0, errorHandler, "errorHandler");
50
+ if (!Array.isArray(body))
51
+ return errorHandler(new (0, _chunkQG4X6H5Yjs.BadRequestException)("data format should be an array"));
52
+ try {
53
+ return Promise.all(body.map((item, i) => {
54
+ return new Promise(async (resolve) => {
55
+ const { tag, func } = item;
56
+ debug(`(parallel)invoke method "${func}" in module "${tag}"`);
57
+ if (!metaMap.has(tag))
58
+ return resolve(await _chunkQG4X6H5Yjs.Context.filterRecord.default(new (0, _chunkQG4X6H5Yjs.BadRequestException)(`module "${tag}" doesn't exist`)));
59
+ const meta2 = metaMap.get(tag)[func];
60
+ if (!meta2)
61
+ return resolve(await _chunkQG4X6H5Yjs.Context.filterRecord.default(new (0, _chunkQG4X6H5Yjs.BadRequestException)(`"${func}" in "${tag}" doesn't exist`)));
62
+ const { data: { params } } = meta2;
63
+ const contextData = {
64
+ type: "express",
65
+ parallel: true,
66
+ request: req,
67
+ index: i,
68
+ meta: meta2,
69
+ response: res,
70
+ moduleMap,
71
+ tag,
72
+ func,
73
+ next,
74
+ app: router,
75
+ ..._chunkQG4X6H5Yjs.argToReq.call(void 0, params, item.args, req.headers)
76
+ };
77
+ const context = new (0, _chunkQG4X6H5Yjs.Context)(contextData);
78
+ context.run({
79
+ globalGuards,
80
+ globalInterceptors,
81
+ globalFilter,
82
+ globalPipe
83
+ }, resolve, resolve);
84
+ });
85
+ })).then((ret) => {
86
+ res.json(ret);
82
87
  });
83
- })).then((ret) => {
84
- res.json(ret);
85
- });
86
- } catch (e) {
87
- return errorHandler(e);
88
- }
89
- });
88
+ } catch (e) {
89
+ return errorHandler(e);
90
+ }
91
+ });
92
+ }
90
93
  for (const [tag, record] of metaMap) {
91
94
  for (const func in record) {
92
95
  const meta2 = metaMap.get(tag)[func];
93
- const { data: { plugins: plugins2, http } } = meta2;
96
+ const { data: { plugins, http } } = meta2;
94
97
  if (!_optionalChain([http, 'optionalAccess', _2 => _2.type]))
95
98
  continue;
96
- router[http.type](http.prefix + http.route, ..._chunkYERBWZCSjs.Context.usePlugin(plugins2), async (req, res, next) => {
99
+ router[http.type](http.prefix + http.route, ..._chunkQG4X6H5Yjs.Context.usePlugin(plugins, "express"), async (req, res, next) => {
97
100
  debug(`invoke method "${func}" in module "${tag}"`);
98
101
  const contextData = {
99
102
  type: "express",
@@ -110,7 +113,7 @@ function bind(router, data, opts = {}) {
110
113
  app: router,
111
114
  next
112
115
  };
113
- const context = new (0, _chunkYERBWZCSjs.Context)(contextData);
116
+ const context = new (0, _chunkQG4X6H5Yjs.Context)(contextData);
114
117
  if (http.headers) {
115
118
  for (const name in http.headers)
116
119
  res.set(name, http.headers[name]);
@@ -136,26 +139,10 @@ function bind(router, data, opts = {}) {
136
139
  }
137
140
  }
138
141
  }
139
- _chunkYR5Q5F2Kjs.__name.call(void 0, createRoute, "createRoute");
140
- _chunkYERBWZCSjs.detectAopDep.call(void 0, meta, {
141
- plugins,
142
- guards: globalGuards,
143
- interceptors: globalInterceptors
144
- });
145
- handleMeta();
146
- createRoute();
147
- _chunkYERBWZCSjs.HMR.call(void 0, async () => {
148
- router.stack = originStack;
149
- _chunkYERBWZCSjs.detectAopDep.call(void 0, meta, {
150
- plugins,
151
- guards: globalGuards,
152
- interceptors: globalInterceptors
153
- });
154
- handleMeta();
155
- createRoute();
156
- });
142
+ _chunkXNTMYLK6js.__name.call(void 0, registerRoute, "registerRoute");
157
143
  }
158
- _chunkYR5Q5F2Kjs.__name.call(void 0, bind, "bind");
144
+ _chunkXNTMYLK6js.__name.call(void 0, bind, "bind");
159
145
 
160
146
 
161
147
  exports.bind = bind;
148
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/server/express/bind.ts"],"names":["Debug","debug","bind","router","data","opts","globalGuards","globalInterceptors","parallelRoute","globalPlugins","parallelPlugins","globalFilter","globalPipe","moduleMap","meta","originStack","stack","slice","length","metaMap","createControllerMetaMap","controller","http","func","tag","type","detectAopDep","plugins","guards","interceptors","registerRoute","HMR","Context","usePlugin","forEach","p","use","post","req","res","next","body","errorHandler","e","error","filterRecord","default","status","json","Array","isArray","BadRequestException","Promise","all","map","item","i","resolve","has","get","params","contextData","parallel","request","index","response","app","argToReq","args","headers","context","run","then","ret","record","prefix","route","query","name","set","returnData","writableEnded","send","err"],"mappings":"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","sourcesContent":["import type { Express, Request, RequestHandler, Response, Router } from 'express'\r\nimport Debug from 'debug'\r\nimport type { HttpContext, HttpOptions } from '../helper'\r\nimport { argToReq } from '../helper'\r\nimport type { Factory } from '../../core'\r\nimport { BadRequestException } from '../../exception'\r\nimport { Context } from '../../context'\r\nimport { createControllerMetaMap, detectAopDep } from '../../helper'\r\nimport { HMR } from '../../hmr'\r\n\r\nconst debug = Debug('phecda-server/express')\r\nexport interface ExpressCtx extends HttpContext {\r\n type: 'express'\r\n request: Request\r\n response: Response\r\n next: Function\r\n app: Router\r\n\r\n}\r\n\r\nexport type Plugin = RequestHandler\r\n\r\nexport function bind(router: Router, data: Awaited<ReturnType<typeof Factory>>, opts: HttpOptions = {}) {\r\n const { globalGuards, globalInterceptors, parallelRoute = '/__PHECDA_SERVER__', globalPlugins = [], parallelPlugins = [], globalFilter, globalPipe } = opts\r\n const { moduleMap, meta } = data\r\n\r\n const originStack = router.stack.slice(0, router.stack.length)\r\n\r\n const metaMap = createControllerMetaMap(meta, (meta) => {\r\n const { controller, http, func, tag } = meta.data\r\n if (controller === 'http' && http?.type) {\r\n debug(`register method \"${func}\" in module \"${tag}\"`)\r\n return true\r\n }\r\n })\r\n detectAopDep(meta, {\r\n plugins: [...globalPlugins, ...parallelPlugins],\r\n guards: globalGuards,\r\n interceptors: globalInterceptors,\r\n })\r\n\r\n registerRoute()\r\n\r\n HMR(async () => {\r\n router.stack = originStack// router.stack.slice(0, 1)\r\n registerRoute()\r\n })\r\n\r\n async function registerRoute() {\r\n Context.usePlugin<Plugin>(globalPlugins, 'express').forEach(p => router.use(p))\r\n\r\n if (parallelRoute) {\r\n (router as Express).post(parallelRoute, ...Context.usePlugin<Plugin>(parallelPlugins, 'express'), async (req, res, next) => {\r\n const { body } = req\r\n\r\n async function errorHandler(e: any) {\r\n const error = await Context.filterRecord.default(e)\r\n return res.status(error.status).json(error)\r\n }\r\n\r\n if (!Array.isArray(body))\r\n return errorHandler(new BadRequestException('data format should be an array'))\r\n\r\n try {\r\n return Promise.all(body.map((item: any, i) => {\r\n // eslint-disable-next-line no-async-promise-executor\r\n return new Promise(async (resolve) => {\r\n const { tag, func } = item\r\n\r\n debug(`(parallel)invoke method \"${func}\" in module \"${tag}\"`)\r\n\r\n if (!metaMap.has(tag))\r\n return resolve(await Context.filterRecord.default(new BadRequestException(`module \"${tag}\" doesn't exist`)))\r\n\r\n const meta = metaMap.get(tag)![func]\r\n if (!meta)\r\n return resolve(await Context.filterRecord.default(new BadRequestException(`\"${func}\" in \"${tag}\" doesn't exist`)))\r\n\r\n const {\r\n\r\n data: {\r\n params,\r\n\r\n },\r\n } = meta\r\n\r\n const contextData = {\r\n type: 'express' as const,\r\n parallel: true,\r\n request: req,\r\n index: i,\r\n meta,\r\n response: res,\r\n moduleMap,\r\n tag,\r\n func,\r\n next,\r\n app: router,\r\n ...argToReq(params, item.args, req.headers),\r\n }\r\n const context = new Context<ExpressCtx>(contextData)\r\n\r\n context.run({\r\n globalGuards, globalInterceptors, globalFilter, globalPipe,\r\n }, resolve, resolve)\r\n })\r\n })).then((ret) => {\r\n res.json(ret)\r\n })\r\n }\r\n catch (e) {\r\n return errorHandler(e)\r\n }\r\n })\r\n }\r\n for (const [tag, record] of metaMap) {\r\n for (const func in record) {\r\n const meta = metaMap.get(tag)![func]\r\n\r\n const {\r\n data: {\r\n\r\n plugins,\r\n http,\r\n },\r\n } = meta\r\n\r\n if (!http?.type)\r\n continue\r\n\r\n (router as Express)[http.type](http.prefix + http.route, ...Context.usePlugin<Plugin>(plugins, 'express'), async (req, res, next) => {\r\n debug(`invoke method \"${func}\" in module \"${tag}\"`)\r\n\r\n const contextData = {\r\n type: 'express' as const,\r\n request: req,\r\n meta,\r\n response: res,\r\n moduleMap,\r\n tag,\r\n func,\r\n query: req.query,\r\n body: req.body,\r\n params: req.params,\r\n headers: req.headers,\r\n app: router,\r\n next,\r\n }\r\n\r\n const context = new Context<ExpressCtx>(contextData)\r\n if (http.headers) {\r\n for (const name in http.headers)\r\n res.set(name, http.headers[name])\r\n }\r\n\r\n await context.run({\r\n globalGuards, globalInterceptors, globalFilter, globalPipe,\r\n }, (returnData) => {\r\n if (res.writableEnded)\r\n return\r\n if (typeof returnData === 'string')\r\n res.send(returnData)\r\n\r\n else\r\n res.json(returnData)\r\n }, (err) => {\r\n if (res.writableEnded)\r\n return\r\n res.status(err.status).json(err)\r\n })\r\n })\r\n }\r\n }\r\n }\r\n}\r\n"]}
@@ -3,97 +3,100 @@ import {
3
3
  Context,
4
4
  HMR,
5
5
  argToReq,
6
+ createControllerMetaMap,
6
7
  detectAopDep
7
- } from "../../chunk-AB4OX3WV.mjs";
8
+ } from "../../chunk-ZJD235TO.mjs";
8
9
  import {
9
10
  __name
10
- } from "../../chunk-ITTD2GBR.mjs";
11
+ } from "../../chunk-H4N6SHNG.mjs";
11
12
 
12
13
  // src/server/express/bind.ts
13
14
  import Debug from "debug";
14
15
  var debug = Debug("phecda-server/express");
15
16
  function bind(router, data, opts = {}) {
16
- const { globalGuards, globalInterceptors, route, plugins, globalFilter, globalPipe } = {
17
- route: "/__PHECDA_SERVER__",
18
- plugins: [],
19
- ...opts
20
- };
17
+ const { globalGuards, globalInterceptors, parallelRoute = "/__PHECDA_SERVER__", globalPlugins = [], parallelPlugins = [], globalFilter, globalPipe } = opts;
21
18
  const { moduleMap, meta } = data;
22
19
  const originStack = router.stack.slice(0, router.stack.length);
23
- const metaMap = /* @__PURE__ */ new Map();
24
- function handleMeta() {
25
- metaMap.clear();
26
- for (const item of meta) {
27
- const { tag, func, controller, http } = item.data;
28
- if (controller !== "http" || !http?.type)
29
- continue;
20
+ const metaMap = createControllerMetaMap(meta, (meta2) => {
21
+ const { controller, http, func, tag } = meta2.data;
22
+ if (controller === "http" && http?.type) {
30
23
  debug(`register method "${func}" in module "${tag}"`);
31
- if (metaMap.has(tag))
32
- metaMap.get(tag)[func] = item;
33
- else
34
- metaMap.set(tag, {
35
- [func]: item
36
- });
24
+ return true;
37
25
  }
38
- }
39
- __name(handleMeta, "handleMeta");
40
- async function createRoute() {
41
- router.post(route, ...Context.usePlugin(plugins), async (req, res, next) => {
42
- const { body } = req;
43
- async function errorHandler(e) {
44
- const error = await Context.filterRecord.default(e);
45
- return res.status(error.status).json(error);
46
- }
47
- __name(errorHandler, "errorHandler");
48
- if (!Array.isArray(body))
49
- return errorHandler(new BadRequestException("data format should be an array"));
50
- try {
51
- return Promise.all(body.map((item, i) => {
52
- return new Promise(async (resolve) => {
53
- const { tag, func } = item;
54
- debug(`(parallel)invoke method "${func}" in module "${tag}"`);
55
- if (!metaMap.has(tag))
56
- return resolve(await Context.filterRecord.default(new BadRequestException(`module "${tag}" doesn't exist`)));
57
- const meta2 = metaMap.get(tag)[func];
58
- if (!meta2)
59
- return resolve(await Context.filterRecord.default(new BadRequestException(`"${func}" in "${tag}" doesn't exist`)));
60
- const { data: { params } } = meta2;
61
- const contextData = {
62
- type: "express",
63
- parallel: true,
64
- request: req,
65
- index: i,
66
- meta: meta2,
67
- response: res,
68
- moduleMap,
69
- tag,
70
- func,
71
- next,
72
- app: router,
73
- ...argToReq(params, item.args, req.headers)
74
- };
75
- const context = new Context(contextData);
76
- context.run({
77
- globalGuards,
78
- globalInterceptors,
79
- globalFilter,
80
- globalPipe
81
- }, resolve, resolve);
26
+ });
27
+ detectAopDep(meta, {
28
+ plugins: [
29
+ ...globalPlugins,
30
+ ...parallelPlugins
31
+ ],
32
+ guards: globalGuards,
33
+ interceptors: globalInterceptors
34
+ });
35
+ registerRoute();
36
+ HMR(async () => {
37
+ router.stack = originStack;
38
+ registerRoute();
39
+ });
40
+ async function registerRoute() {
41
+ Context.usePlugin(globalPlugins, "express").forEach((p) => router.use(p));
42
+ if (parallelRoute) {
43
+ router.post(parallelRoute, ...Context.usePlugin(parallelPlugins, "express"), async (req, res, next) => {
44
+ const { body } = req;
45
+ async function errorHandler(e) {
46
+ const error = await Context.filterRecord.default(e);
47
+ return res.status(error.status).json(error);
48
+ }
49
+ __name(errorHandler, "errorHandler");
50
+ if (!Array.isArray(body))
51
+ return errorHandler(new BadRequestException("data format should be an array"));
52
+ try {
53
+ return Promise.all(body.map((item, i) => {
54
+ return new Promise(async (resolve) => {
55
+ const { tag, func } = item;
56
+ debug(`(parallel)invoke method "${func}" in module "${tag}"`);
57
+ if (!metaMap.has(tag))
58
+ return resolve(await Context.filterRecord.default(new BadRequestException(`module "${tag}" doesn't exist`)));
59
+ const meta2 = metaMap.get(tag)[func];
60
+ if (!meta2)
61
+ return resolve(await Context.filterRecord.default(new BadRequestException(`"${func}" in "${tag}" doesn't exist`)));
62
+ const { data: { params } } = meta2;
63
+ const contextData = {
64
+ type: "express",
65
+ parallel: true,
66
+ request: req,
67
+ index: i,
68
+ meta: meta2,
69
+ response: res,
70
+ moduleMap,
71
+ tag,
72
+ func,
73
+ next,
74
+ app: router,
75
+ ...argToReq(params, item.args, req.headers)
76
+ };
77
+ const context = new Context(contextData);
78
+ context.run({
79
+ globalGuards,
80
+ globalInterceptors,
81
+ globalFilter,
82
+ globalPipe
83
+ }, resolve, resolve);
84
+ });
85
+ })).then((ret) => {
86
+ res.json(ret);
82
87
  });
83
- })).then((ret) => {
84
- res.json(ret);
85
- });
86
- } catch (e) {
87
- return errorHandler(e);
88
- }
89
- });
88
+ } catch (e) {
89
+ return errorHandler(e);
90
+ }
91
+ });
92
+ }
90
93
  for (const [tag, record] of metaMap) {
91
94
  for (const func in record) {
92
95
  const meta2 = metaMap.get(tag)[func];
93
- const { data: { plugins: plugins2, http } } = meta2;
96
+ const { data: { plugins, http } } = meta2;
94
97
  if (!http?.type)
95
98
  continue;
96
- router[http.type](http.prefix + http.route, ...Context.usePlugin(plugins2), async (req, res, next) => {
99
+ router[http.type](http.prefix + http.route, ...Context.usePlugin(plugins, "express"), async (req, res, next) => {
97
100
  debug(`invoke method "${func}" in module "${tag}"`);
98
101
  const contextData = {
99
102
  type: "express",
@@ -136,26 +139,10 @@ function bind(router, data, opts = {}) {
136
139
  }
137
140
  }
138
141
  }
139
- __name(createRoute, "createRoute");
140
- detectAopDep(meta, {
141
- plugins,
142
- guards: globalGuards,
143
- interceptors: globalInterceptors
144
- });
145
- handleMeta();
146
- createRoute();
147
- HMR(async () => {
148
- router.stack = originStack;
149
- detectAopDep(meta, {
150
- plugins,
151
- guards: globalGuards,
152
- interceptors: globalInterceptors
153
- });
154
- handleMeta();
155
- createRoute();
156
- });
142
+ __name(registerRoute, "registerRoute");
157
143
  }
158
144
  __name(bind, "bind");
159
145
  export {
160
146
  bind
161
147
  };
148
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/server/express/bind.ts"],"sourcesContent":["import type { Express, Request, RequestHandler, Response, Router } from 'express'\r\nimport Debug from 'debug'\r\nimport type { HttpContext, HttpOptions } from '../helper'\r\nimport { argToReq } from '../helper'\r\nimport type { Factory } from '../../core'\r\nimport { BadRequestException } from '../../exception'\r\nimport { Context } from '../../context'\r\nimport { createControllerMetaMap, detectAopDep } from '../../helper'\r\nimport { HMR } from '../../hmr'\r\n\r\nconst debug = Debug('phecda-server/express')\r\nexport interface ExpressCtx extends HttpContext {\r\n type: 'express'\r\n request: Request\r\n response: Response\r\n next: Function\r\n app: Router\r\n\r\n}\r\n\r\nexport type Plugin = RequestHandler\r\n\r\nexport function bind(router: Router, data: Awaited<ReturnType<typeof Factory>>, opts: HttpOptions = {}) {\r\n const { globalGuards, globalInterceptors, parallelRoute = '/__PHECDA_SERVER__', globalPlugins = [], parallelPlugins = [], globalFilter, globalPipe } = opts\r\n const { moduleMap, meta } = data\r\n\r\n const originStack = router.stack.slice(0, router.stack.length)\r\n\r\n const metaMap = createControllerMetaMap(meta, (meta) => {\r\n const { controller, http, func, tag } = meta.data\r\n if (controller === 'http' && http?.type) {\r\n debug(`register method \"${func}\" in module \"${tag}\"`)\r\n return true\r\n }\r\n })\r\n detectAopDep(meta, {\r\n plugins: [...globalPlugins, ...parallelPlugins],\r\n guards: globalGuards,\r\n interceptors: globalInterceptors,\r\n })\r\n\r\n registerRoute()\r\n\r\n HMR(async () => {\r\n router.stack = originStack// router.stack.slice(0, 1)\r\n registerRoute()\r\n })\r\n\r\n async function registerRoute() {\r\n Context.usePlugin<Plugin>(globalPlugins, 'express').forEach(p => router.use(p))\r\n\r\n if (parallelRoute) {\r\n (router as Express).post(parallelRoute, ...Context.usePlugin<Plugin>(parallelPlugins, 'express'), async (req, res, next) => {\r\n const { body } = req\r\n\r\n async function errorHandler(e: any) {\r\n const error = await Context.filterRecord.default(e)\r\n return res.status(error.status).json(error)\r\n }\r\n\r\n if (!Array.isArray(body))\r\n return errorHandler(new BadRequestException('data format should be an array'))\r\n\r\n try {\r\n return Promise.all(body.map((item: any, i) => {\r\n // eslint-disable-next-line no-async-promise-executor\r\n return new Promise(async (resolve) => {\r\n const { tag, func } = item\r\n\r\n debug(`(parallel)invoke method \"${func}\" in module \"${tag}\"`)\r\n\r\n if (!metaMap.has(tag))\r\n return resolve(await Context.filterRecord.default(new BadRequestException(`module \"${tag}\" doesn't exist`)))\r\n\r\n const meta = metaMap.get(tag)![func]\r\n if (!meta)\r\n return resolve(await Context.filterRecord.default(new BadRequestException(`\"${func}\" in \"${tag}\" doesn't exist`)))\r\n\r\n const {\r\n\r\n data: {\r\n params,\r\n\r\n },\r\n } = meta\r\n\r\n const contextData = {\r\n type: 'express' as const,\r\n parallel: true,\r\n request: req,\r\n index: i,\r\n meta,\r\n response: res,\r\n moduleMap,\r\n tag,\r\n func,\r\n next,\r\n app: router,\r\n ...argToReq(params, item.args, req.headers),\r\n }\r\n const context = new Context<ExpressCtx>(contextData)\r\n\r\n context.run({\r\n globalGuards, globalInterceptors, globalFilter, globalPipe,\r\n }, resolve, resolve)\r\n })\r\n })).then((ret) => {\r\n res.json(ret)\r\n })\r\n }\r\n catch (e) {\r\n return errorHandler(e)\r\n }\r\n })\r\n }\r\n for (const [tag, record] of metaMap) {\r\n for (const func in record) {\r\n const meta = metaMap.get(tag)![func]\r\n\r\n const {\r\n data: {\r\n\r\n plugins,\r\n http,\r\n },\r\n } = meta\r\n\r\n if (!http?.type)\r\n continue\r\n\r\n (router as Express)[http.type](http.prefix + http.route, ...Context.usePlugin<Plugin>(plugins, 'express'), async (req, res, next) => {\r\n debug(`invoke method \"${func}\" in module \"${tag}\"`)\r\n\r\n const contextData = {\r\n type: 'express' as const,\r\n request: req,\r\n meta,\r\n response: res,\r\n moduleMap,\r\n tag,\r\n func,\r\n query: req.query,\r\n body: req.body,\r\n params: req.params,\r\n headers: req.headers,\r\n app: router,\r\n next,\r\n }\r\n\r\n const context = new Context<ExpressCtx>(contextData)\r\n if (http.headers) {\r\n for (const name in http.headers)\r\n res.set(name, http.headers[name])\r\n }\r\n\r\n await context.run({\r\n globalGuards, globalInterceptors, globalFilter, globalPipe,\r\n }, (returnData) => {\r\n if (res.writableEnded)\r\n return\r\n if (typeof returnData === 'string')\r\n res.send(returnData)\r\n\r\n else\r\n res.json(returnData)\r\n }, (err) => {\r\n if (res.writableEnded)\r\n return\r\n res.status(err.status).json(err)\r\n })\r\n })\r\n }\r\n }\r\n }\r\n}\r\n"],"mappings":"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","names":["Debug","debug","Debug","bind","router","data","opts","globalGuards","globalInterceptors","parallelRoute","globalPlugins","parallelPlugins","globalFilter","globalPipe","moduleMap","meta","originStack","stack","slice","length","metaMap","createControllerMetaMap","controller","http","func","tag","type","detectAopDep","plugins","guards","interceptors","registerRoute","HMR","Context","usePlugin","forEach","p","use","post","req","res","next","body","errorHandler","e","error","filterRecord","default","status","json","Array","isArray","BadRequestException","Promise","all","map","item","i","resolve","has","get","params","contextData","parallel","request","index","response","app","argToReq","args","headers","context","run","then","ret","record","prefix","route","query","name","set","returnData","writableEnded","send","err"]}
@@ -1,6 +1,6 @@
1
- import { FastifyRequest, FastifyReply, FastifyInstance, FastifyPluginCallback, RouteShorthandOptions } from 'fastify';
2
- import { a as HttpContext, H as HttpOptions } from '../../helper-f29f082f.js';
3
- import { F as Factory } from '../../core-fd134ffa.js';
1
+ import { FastifyRequest, FastifyReply, FastifyInstance, FastifyPluginCallback, FastifyRegisterOptions, FastifyPluginOptions, RouteShorthandOptions } from 'fastify';
2
+ import { a as HttpContext, H as HttpOptions } from '../../helper-fcbf6aa8.js';
3
+ import { F as Factory } from '../../core-39f27fe8.js';
4
4
  import 'node:http';
5
5
  import 'phecda-core';
6
6
 
@@ -10,7 +10,10 @@ interface FastifyCtx extends HttpContext {
10
10
  response: FastifyReply;
11
11
  app: FastifyInstance;
12
12
  }
13
- declare function bind(data: Awaited<ReturnType<typeof Factory>>, opts?: HttpOptions): FastifyPluginCallback;
13
+ type Plugin = FastifyPluginCallback;
14
+ declare function bind(fastify: FastifyInstance, data: Awaited<ReturnType<typeof Factory>>, opts?: HttpOptions & {
15
+ fastifyOpts?: FastifyRegisterOptions<FastifyPluginOptions>;
16
+ }): void;
14
17
  declare function Fastify(opts: RouteShorthandOptions): any;
15
18
 
16
- export { Fastify, FastifyCtx, bind };
19
+ export { Fastify, FastifyCtx, Plugin, bind };