phecda-server 4.0.5 → 4.0.6

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 (63) hide show
  1. package/dist/{chunk-YU7ROHTO.js → chunk-7OB6K45T.js} +78 -66
  2. package/dist/chunk-7OB6K45T.js.map +1 -0
  3. package/dist/{chunk-LZAU5FUS.js → chunk-AAF47ZC6.js} +9 -3
  4. package/dist/chunk-AAF47ZC6.js.map +1 -0
  5. package/dist/{chunk-AJ2HYENF.mjs → chunk-AYJWOIAW.mjs} +10 -4
  6. package/dist/chunk-AYJWOIAW.mjs.map +1 -0
  7. package/dist/{chunk-Q6T7HNEO.mjs → chunk-GSJ5A2MA.mjs} +43 -31
  8. package/dist/chunk-GSJ5A2MA.mjs.map +1 -0
  9. package/dist/{chunk-NFAA3WFR.mjs → chunk-K32VRTXB.mjs} +18 -11
  10. package/dist/chunk-K32VRTXB.mjs.map +1 -0
  11. package/dist/{chunk-R3N4HR7U.js → chunk-TZ27DHWL.js} +39 -32
  12. package/dist/chunk-TZ27DHWL.js.map +1 -0
  13. package/dist/{chunk-JQPX546Z.mjs → chunk-V7SC5EVJ.mjs} +2 -2
  14. package/dist/{chunk-FAHHXHL5.js → chunk-ZPMAM4LQ.js} +3 -3
  15. package/dist/{core-ba036c2b.d.ts → core-c27b4cf4.d.ts} +1 -1
  16. package/dist/index.d.ts +45 -26
  17. package/dist/index.js +119 -54
  18. package/dist/index.js.map +1 -1
  19. package/dist/index.mjs +98 -33
  20. package/dist/index.mjs.map +1 -1
  21. package/dist/rpc/rabbitmq/index.d.ts +2 -2
  22. package/dist/rpc/rabbitmq/index.js +19 -13
  23. package/dist/rpc/rabbitmq/index.js.map +1 -1
  24. package/dist/rpc/rabbitmq/index.mjs +13 -7
  25. package/dist/rpc/rabbitmq/index.mjs.map +1 -1
  26. package/dist/rpc/redis/index.d.ts +2 -2
  27. package/dist/rpc/redis/index.js +19 -13
  28. package/dist/rpc/redis/index.js.map +1 -1
  29. package/dist/rpc/redis/index.mjs +13 -7
  30. package/dist/rpc/redis/index.mjs.map +1 -1
  31. package/dist/server/express/index.d.ts +4 -3
  32. package/dist/server/express/index.js +37 -29
  33. package/dist/server/express/index.js.map +1 -1
  34. package/dist/server/express/index.mjs +19 -11
  35. package/dist/server/express/index.mjs.map +1 -1
  36. package/dist/server/fastify/index.d.ts +3 -2
  37. package/dist/server/fastify/index.js +33 -25
  38. package/dist/server/fastify/index.js.map +1 -1
  39. package/dist/server/fastify/index.mjs +18 -10
  40. package/dist/server/fastify/index.mjs.map +1 -1
  41. package/dist/server/h3/index.d.ts +6 -5
  42. package/dist/server/h3/index.js +34 -28
  43. package/dist/server/h3/index.js.map +1 -1
  44. package/dist/server/h3/index.mjs +16 -10
  45. package/dist/server/h3/index.mjs.map +1 -1
  46. package/dist/server/koa/index.d.ts +3 -2
  47. package/dist/server/koa/index.js +36 -28
  48. package/dist/server/koa/index.js.map +1 -1
  49. package/dist/server/koa/index.mjs +18 -10
  50. package/dist/server/koa/index.mjs.map +1 -1
  51. package/dist/test.d.ts +1 -1
  52. package/dist/test.js +6 -6
  53. package/dist/test.mjs +2 -2
  54. package/dist/{types-ead02c5d.d.ts → types-8415bd5d.d.ts} +16 -17
  55. package/package.json +1 -1
  56. package/dist/chunk-AJ2HYENF.mjs.map +0 -1
  57. package/dist/chunk-LZAU5FUS.js.map +0 -1
  58. package/dist/chunk-NFAA3WFR.mjs.map +0 -1
  59. package/dist/chunk-Q6T7HNEO.mjs.map +0 -1
  60. package/dist/chunk-R3N4HR7U.js.map +0 -1
  61. package/dist/chunk-YU7ROHTO.js.map +0 -1
  62. /package/dist/{chunk-JQPX546Z.mjs.map → chunk-V7SC5EVJ.mjs.map} +0 -0
  63. /package/dist/{chunk-FAHHXHL5.js.map → chunk-ZPMAM4LQ.js.map} +0 -0
@@ -1,11 +1,11 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkFAHHXHL5js = require('../../chunk-FAHHXHL5.js');
3
+ var _chunkZPMAM4LQjs = require('../../chunk-ZPMAM4LQ.js');
4
4
 
5
5
 
6
6
 
7
7
 
8
- var _chunkYU7ROHTOjs = require('../../chunk-YU7ROHTO.js');
8
+ var _chunk7OB6K45Tjs = require('../../chunk-7OB6K45T.js');
9
9
 
10
10
 
11
11
 
@@ -13,7 +13,7 @@ var _chunkYU7ROHTOjs = require('../../chunk-YU7ROHTO.js');
13
13
 
14
14
 
15
15
 
16
- var _chunkLZAU5FUSjs = require('../../chunk-LZAU5FUS.js');
16
+ var _chunkAAF47ZC6js = require('../../chunk-AAF47ZC6.js');
17
17
 
18
18
  // src/server/h3/bind.ts
19
19
  var _h3 = require('h3');
@@ -25,12 +25,12 @@ function bindApp(router, { moduleMap, meta }, options = {}) {
25
25
  plugins: [],
26
26
  ...options
27
27
  };
28
- _chunkYU7ROHTOjs.isAopDepInject.call(void 0, meta, {
28
+ _chunk7OB6K45Tjs.isAopDepInject.call(void 0, meta, {
29
29
  plugins,
30
30
  guards: globalGuards,
31
31
  interceptors: globalInterceptors
32
32
  });
33
- router[_chunkLZAU5FUSjs.APP_SYMBOL] = {
33
+ router[_chunkAAF47ZC6js.APP_SYMBOL] = {
34
34
  moduleMap,
35
35
  meta
36
36
  };
@@ -45,16 +45,16 @@ function bindApp(router, { moduleMap, meta }, options = {}) {
45
45
  metaMap.set(methodTag, item);
46
46
  }
47
47
  }
48
- _chunkLZAU5FUSjs.__name.call(void 0, handleMeta, "handleMeta");
48
+ _chunkAAF47ZC6js.__name.call(void 0, handleMeta, "handleMeta");
49
49
  async function createRoute() {
50
50
  router.post(route, _h3.fromNodeMiddleware.call(void 0, (req, _res, next) => {
51
- req[_chunkLZAU5FUSjs.MERGE_SYMBOL] = true;
52
- req[_chunkLZAU5FUSjs.MODULE_SYMBOL] = moduleMap;
53
- req[_chunkLZAU5FUSjs.META_SYMBOL] = meta;
51
+ req[_chunkAAF47ZC6js.MERGE_SYMBOL] = true;
52
+ req[_chunkAAF47ZC6js.MODULE_SYMBOL] = moduleMap;
53
+ req[_chunkAAF47ZC6js.META_SYMBOL] = meta;
54
54
  next();
55
55
  }));
56
56
  plugins.forEach((p) => {
57
- const middleware = _chunkYU7ROHTOjs.Context.usePlugin([
57
+ const middleware = _chunk7OB6K45Tjs.Context.usePlugin([
58
58
  p
59
59
  ])[0];
60
60
  if (!middleware)
@@ -66,20 +66,20 @@ function bindApp(router, { moduleMap, meta }, options = {}) {
66
66
  strict: true
67
67
  });
68
68
  async function errorHandler(e) {
69
- const error = await _chunkYU7ROHTOjs.Context.filter(e);
69
+ const error = await _chunk7OB6K45Tjs.Context.filterRecord.default(e);
70
70
  _h3.setResponseStatus.call(void 0, event, error.status);
71
71
  return error;
72
72
  }
73
- _chunkLZAU5FUSjs.__name.call(void 0, errorHandler, "errorHandler");
73
+ _chunkAAF47ZC6js.__name.call(void 0, errorHandler, "errorHandler");
74
74
  if (!Array.isArray(body))
75
- return errorHandler(new (0, _chunkYU7ROHTOjs.BadRequestException)("data format should be an array"));
75
+ return errorHandler(new (0, _chunk7OB6K45Tjs.BadRequestException)("data format should be an array"));
76
76
  try {
77
77
  return Promise.all(body.map((item) => {
78
78
  return new Promise(async (resolve) => {
79
79
  const { tag } = item;
80
80
  const meta2 = metaMap.get(tag);
81
81
  if (!meta2)
82
- return resolve(await _chunkYU7ROHTOjs.Context.filter(new (0, _chunkYU7ROHTOjs.BadRequestException)(`"${tag}" doesn't exist`)));
82
+ return resolve(await _chunk7OB6K45Tjs.Context.filterRecord.default(new (0, _chunk7OB6K45Tjs.BadRequestException)(`"${tag}" doesn't exist`)));
83
83
  const contextData = {
84
84
  type: "h3",
85
85
  event,
@@ -87,9 +87,9 @@ function bindApp(router, { moduleMap, meta }, options = {}) {
87
87
  moduleMap,
88
88
  parallel: true
89
89
  };
90
- const context = new (0, _chunkYU7ROHTOjs.Context)(tag, contextData);
90
+ const context = new (0, _chunk7OB6K45Tjs.Context)(tag, contextData);
91
91
  const [name, method] = tag.split("-");
92
- const { paramsType, handlers, data: { params, guards, interceptors } } = metaMap.get(tag);
92
+ const { paramsType, handlers, data: { params, guards, interceptors, filter } } = metaMap.get(tag);
93
93
  const instance = moduleMap.get(name);
94
94
  try {
95
95
  await context.useGuard([
@@ -118,7 +118,7 @@ function bindApp(router, { moduleMap, meta }, options = {}) {
118
118
  resolve(await context.usePostInterceptor(funcData));
119
119
  } catch (e) {
120
120
  handlers.forEach((handler) => _optionalChain([handler, 'access', _2 => _2.error, 'optionalCall', _3 => _3(e)]));
121
- resolve(await context.useFilter(e));
121
+ resolve(await context.useFilter(e, filter));
122
122
  }
123
123
  });
124
124
  }));
@@ -131,14 +131,14 @@ function bindApp(router, { moduleMap, meta }, options = {}) {
131
131
  if (!_optionalChain([http, 'optionalAccess', _4 => _4.type]))
132
132
  continue;
133
133
  const methodTag = `${tag}-${method}`;
134
- const { paramsType, handlers, data: { interceptors, guards, params, plugins: plugins2 } } = metaMap.get(methodTag);
134
+ const { paramsType, handlers, data: { interceptors, guards, params, plugins: plugins2, filter } } = metaMap.get(methodTag);
135
135
  router[http.type](http.route, _h3.fromNodeMiddleware.call(void 0, (req, _res, next) => {
136
- req[_chunkLZAU5FUSjs.MODULE_SYMBOL] = moduleMap;
137
- req[_chunkLZAU5FUSjs.META_SYMBOL] = meta;
136
+ req[_chunkAAF47ZC6js.MODULE_SYMBOL] = moduleMap;
137
+ req[_chunkAAF47ZC6js.META_SYMBOL] = meta;
138
138
  next();
139
139
  }));
140
140
  for (const p of plugins2) {
141
- const middleware = _chunkYU7ROHTOjs.Context.usePlugin([
141
+ const middleware = _chunk7OB6K45Tjs.Context.usePlugin([
142
142
  p
143
143
  ])[0];
144
144
  if (!middleware)
@@ -151,9 +151,10 @@ function bindApp(router, { moduleMap, meta }, options = {}) {
151
151
  type: "h3",
152
152
  meta: i,
153
153
  event,
154
- moduleMap
154
+ moduleMap,
155
+ parallel: false
155
156
  };
156
- const context = new (0, _chunkYU7ROHTOjs.Context)(methodTag, contextData);
157
+ const context = new (0, _chunk7OB6K45Tjs.Context)(methodTag, contextData);
157
158
  try {
158
159
  _h3.setHeaders.call(void 0, event, header);
159
160
  await context.useGuard([
@@ -185,7 +186,7 @@ function bindApp(router, { moduleMap, meta }, options = {}) {
185
186
  arg = body;
186
187
  }
187
188
  return {
188
- arg: _chunkFAHHXHL5js.resolveDep.call(void 0, arg, key),
189
+ arg: _chunkZPMAM4LQjs.resolveDep.call(void 0, arg, key),
189
190
  pipe,
190
191
  pipeOpts,
191
192
  key,
@@ -200,23 +201,28 @@ function bindApp(router, { moduleMap, meta }, options = {}) {
200
201
  return ret;
201
202
  } catch (e) {
202
203
  handlers.forEach((handler) => _optionalChain([handler, 'access', _5 => _5.error, 'optionalCall', _6 => _6(e)]));
203
- const err = await context.useFilter(e);
204
+ const err = await context.useFilter(e, filter);
204
205
  _h3.setResponseStatus.call(void 0, event, err.status);
205
206
  return err;
206
207
  }
207
208
  }));
208
209
  }
209
210
  }
210
- _chunkLZAU5FUSjs.__name.call(void 0, createRoute, "createRoute");
211
+ _chunkAAF47ZC6js.__name.call(void 0, createRoute, "createRoute");
211
212
  handleMeta();
212
213
  createRoute();
213
- if (_chunkLZAU5FUSjs.IS_DEV) {
214
+ if (_chunkAAF47ZC6js.IS_DEV) {
214
215
  _optionalChain([globalThis, 'access', _7 => _7.__PS_HMR__, 'optionalAccess', _8 => _8.push, 'call', _9 => _9(async () => {
216
+ _chunk7OB6K45Tjs.isAopDepInject.call(void 0, meta, {
217
+ plugins,
218
+ guards: globalGuards,
219
+ interceptors: globalInterceptors
220
+ });
215
221
  handleMeta();
216
222
  })]);
217
223
  }
218
224
  }
219
- _chunkLZAU5FUSjs.__name.call(void 0, bindApp, "bindApp");
225
+ _chunkAAF47ZC6js.__name.call(void 0, bindApp, "bindApp");
220
226
 
221
227
 
222
228
  exports.bindApp = bindApp;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/server/h3/bind.ts"],"names":["eventHandler","fromNodeMiddleware","getQuery","getRequestHeaders","getRouterParams","readBody","setHeaders","setResponseStatus","bindApp","router","moduleMap","meta","options","globalGuards","globalInterceptors","route","plugins","isAopDepInject","guards","interceptors","APP_SYMBOL","metaMap","Map","handleMeta","clear","item","tag","method","http","data","type","methodTag","set","createRoute","post","req","_res","next","MERGE_SYMBOL","MODULE_SYMBOL","META_SYMBOL","forEach","p","middleware","Context","usePlugin","event","body","strict","errorHandler","e","error","filter","status","Array","isArray","BadRequestException","Promise","all","map","resolve","get","contextData","parallel","context","name","split","paramsType","handlers","params","instance","useGuard","cache","useInterceptor","undefined","args","usePipe","key","pipe","pipeOpts","index","arg","reflect","funcData","usePostInterceptor","handler","useFilter","i","header","some","resolveDep","ret","err","IS_DEV","globalThis","__PS_HMR__","push"],"mappings":"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","sourcesContent":["import { eventHandler, fromNodeMiddleware, getQuery, getRequestHeaders, getRouterParams, readBody, setHeaders, setResponseStatus } from 'h3'\nimport type { NodeMiddleware, Router } from 'h3'\n\nimport { resolveDep } from '../../helper'\nimport { APP_SYMBOL, IS_DEV, MERGE_SYMBOL, META_SYMBOL, MODULE_SYMBOL } from '../../common'\nimport type { Factory } from '../../core'\nimport { BadRequestException } from '../../exception'\nimport type { Meta } from '../../meta'\nimport { Context, isAopDepInject } from '../../context'\n\nexport interface H3Ctx {\n type: 'h3'\n request: Request\n response: Response\n meta: Meta\n moduleMap: Record<string, any>\n}\nexport interface Options {\n\n /**\n * 专用路由的值,默认为/__PHECDA_SERVER__,处理phecda-client发出的合并请求\n */\n route?: string\n /**\n * 全局守卫\n */\n globalGuards?: string[]\n /**\n * 全局拦截器\n */\n globalInterceptors?: string[]\n /**\n * 专用路由的中间件(work for merge request),全局中间件请在bindApp以外设置\n */\n plugins?: string[]\n\n}\n\nexport function bindApp(router: Router, { moduleMap, meta }: Awaited<ReturnType<typeof Factory>>, options: Options = {}) {\n const { globalGuards, globalInterceptors, route, plugins } = { route: '/__PHECDA_SERVER__', globalGuards: [], globalInterceptors: [], plugins: [], ...options } as Required<Options>\n\n isAopDepInject(meta, {\n plugins,\n guards: globalGuards,\n interceptors: globalInterceptors,\n });\n\n (router as any)[APP_SYMBOL] = { moduleMap, meta }\n\n const metaMap = new Map<string, Meta>()\n function handleMeta() {\n metaMap.clear()\n for (const item of meta) {\n const { tag, method, http } = item.data\n if (!http?.type)\n continue\n const methodTag = `${tag}-${method}`\n metaMap.set(methodTag, item)\n }\n }\n\n async function createRoute() {\n router.post(route, fromNodeMiddleware((req, _res, next) => {\n (req as any)[MERGE_SYMBOL] = true;\n (req as any)[MODULE_SYMBOL] = moduleMap;\n (req as any)[META_SYMBOL] = meta\n\n next()\n }))\n plugins.forEach((p) => {\n const middleware = Context.usePlugin([p])[0] as NodeMiddleware\n if (!middleware)\n return\n router.post(route, fromNodeMiddleware(middleware))\n })\n\n router.post(route, eventHandler(async (event) => {\n const body = await readBody(event, { strict: true })\n async function errorHandler(e: any) {\n const error = await Context.filter(e)\n setResponseStatus(event, error.status)\n return error\n }\n\n if (!Array.isArray(body))\n return errorHandler(new BadRequestException('data format should be an array'))\n\n try {\n return Promise.all(body.map((item: any) => {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve) => {\n const { tag } = item\n const meta = metaMap.get(tag)!\n if (!meta)\n return resolve(await Context.filter(new BadRequestException(`\"${tag}\" doesn't exist`)))\n\n const contextData = {\n type: 'h3' as const,\n event,\n meta,\n moduleMap,\n parallel: true,\n\n }\n const context = new Context(tag, contextData)\n const [name, method] = tag.split('-')\n const {\n paramsType,\n handlers,\n data: {\n params,\n guards, interceptors,\n },\n } = metaMap.get(tag)!\n\n const instance = moduleMap.get(name)\n\n try {\n await context.useGuard([...globalGuards, ...guards])\n const cache = await context.useInterceptor([...globalInterceptors, ...interceptors])\n if (cache !== undefined)\n return resolve(cache)\n const args = await context.usePipe(params.map(({ type, key, pipe, pipeOpts, index }) => {\n return { arg: item.args[index], type, key, pipe, pipeOpts, index, reflect: paramsType[index] }\n })) as any\n instance.context = contextData\n const funcData = await moduleMap.get(name)[method](...args)\n resolve(await context.usePostInterceptor(funcData))\n }\n catch (e: any) {\n handlers.forEach(handler => handler.error?.(e))\n resolve(await context.useFilter(e))\n }\n })\n }))\n }\n\n catch (e) {\n return errorHandler(e)\n }\n }))\n for (const i of meta) {\n const { method, http, header, tag } = i.data\n\n if (!http?.type)\n continue\n\n const methodTag = `${tag}-${method}`\n\n const {\n paramsType,\n handlers,\n data: {\n interceptors,\n guards,\n params,\n plugins,\n },\n } = metaMap.get(methodTag)!\n\n router[http.type](http.route, fromNodeMiddleware((req, _res, next) => {\n (req as any)[MODULE_SYMBOL] = moduleMap;\n (req as any)[META_SYMBOL] = meta\n next()\n }))\n\n for (const p of plugins) {\n const middleware = Context.usePlugin([p])[0]\n if (!middleware)\n continue\n\n router[http.type](http.route, fromNodeMiddleware(middleware))\n }\n\n router[http.type](http.route, eventHandler(async (event) => {\n const instance = moduleMap.get(tag)!\n\n const contextData = {\n type: 'h3' as const,\n meta: i,\n event,\n moduleMap,\n }\n const context = new Context(methodTag, contextData)\n\n try {\n setHeaders(event, header)\n await context.useGuard([...globalGuards, ...guards])\n const cache = await context.useInterceptor([...globalInterceptors, ...interceptors])\n if (cache !== undefined)\n return cache\n\n const body = params.some(item => item.type === 'body') ? await readBody(event, { strict: true }) : undefined\n const args = await context.usePipe(params.map(({ type, key, pipe, pipeOpts, index }) => {\n let arg: any\n\n switch (type) {\n case 'params':\n arg = getRouterParams(event)\n break\n case 'query':\n arg = getQuery(event)\n break\n case 'header':\n arg = getRequestHeaders(event)\n break\n default:\n arg = body\n }\n\n return { arg: resolveDep(arg, key), pipe, pipeOpts, key, type, index, reflect: paramsType[index] }\n }))\n\n instance.context = contextData\n const funcData = await instance[method](...args)\n const ret = await context.usePostInterceptor(funcData)\n\n return ret\n }\n catch (e: any) {\n handlers.forEach(handler => handler.error?.(e))\n const err = await context.useFilter(e)\n setResponseStatus(event, err.status)\n return err\n }\n }))\n }\n }\n\n handleMeta()\n createRoute()\n if (IS_DEV) {\n globalThis.__PS_HMR__?.push(async () => {\n handleMeta()\n })\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/server/h3/bind.ts"],"names":["eventHandler","fromNodeMiddleware","getQuery","getRequestHeaders","getRouterParams","readBody","setHeaders","setResponseStatus","bindApp","router","moduleMap","meta","options","globalGuards","globalInterceptors","route","plugins","isAopDepInject","guards","interceptors","APP_SYMBOL","metaMap","Map","handleMeta","clear","item","tag","method","http","data","type","methodTag","set","createRoute","post","req","_res","next","MERGE_SYMBOL","MODULE_SYMBOL","META_SYMBOL","forEach","p","middleware","Context","usePlugin","event","body","strict","errorHandler","e","error","filterRecord","default","status","Array","isArray","BadRequestException","Promise","all","map","resolve","get","contextData","parallel","context","name","split","paramsType","handlers","params","filter","instance","useGuard","cache","useInterceptor","undefined","args","usePipe","key","pipe","pipeOpts","index","arg","reflect","funcData","usePostInterceptor","handler","useFilter","i","header","some","resolveDep","ret","err","IS_DEV","globalThis","__PS_HMR__","push"],"mappings":"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","sourcesContent":["import { eventHandler, fromNodeMiddleware, getQuery, getRequestHeaders, getRouterParams, readBody, setHeaders, setResponseStatus } from 'h3'\nimport type { H3Event, NodeMiddleware, Router } from 'h3'\n\nimport { resolveDep } from '../../helper'\nimport { APP_SYMBOL, IS_DEV, MERGE_SYMBOL, META_SYMBOL, MODULE_SYMBOL } from '../../common'\nimport type { Factory } from '../../core'\nimport { BadRequestException } from '../../exception'\nimport type { Meta } from '../../meta'\nimport { Context, isAopDepInject } from '../../context'\n\nexport interface H3Ctx {\n type: 'h3'\n event: H3Event\n meta: Meta\n moduleMap: Record<string, any>\n parallel: boolean\n [key: string]: any\n}\nexport interface Options {\n\n /**\n * 专用路由的值,默认为/__PHECDA_SERVER__,处理phecda-client发出的合并请求\n */\n route?: string\n /**\n * 全局守卫\n */\n globalGuards?: string[]\n /**\n * 全局拦截器\n */\n globalInterceptors?: string[]\n /**\n * 专用路由的中间件(work for merge request),全局中间件请在bindApp以外设置\n */\n plugins?: string[]\n\n}\n\nexport function bindApp(router: Router, { moduleMap, meta }: Awaited<ReturnType<typeof Factory>>, options: Options = {}) {\n const { globalGuards, globalInterceptors, route, plugins } = { route: '/__PHECDA_SERVER__', globalGuards: [], globalInterceptors: [], plugins: [], ...options } as Required<Options>\n\n isAopDepInject(meta, {\n plugins,\n guards: globalGuards,\n interceptors: globalInterceptors,\n });\n\n (router as any)[APP_SYMBOL] = { moduleMap, meta }\n\n const metaMap = new Map<string, Meta>()\n function handleMeta() {\n metaMap.clear()\n for (const item of meta) {\n const { tag, method, http } = item.data\n if (!http?.type)\n continue\n const methodTag = `${tag}-${method}`\n metaMap.set(methodTag, item)\n }\n }\n\n async function createRoute() {\n router.post(route, fromNodeMiddleware((req, _res, next) => {\n (req as any)[MERGE_SYMBOL] = true;\n (req as any)[MODULE_SYMBOL] = moduleMap;\n (req as any)[META_SYMBOL] = meta\n\n next()\n }))\n plugins.forEach((p) => {\n const middleware = Context.usePlugin([p])[0] as NodeMiddleware\n if (!middleware)\n return\n router.post(route, fromNodeMiddleware(middleware))\n })\n\n router.post(route, eventHandler(async (event) => {\n const body = await readBody(event, { strict: true })\n async function errorHandler(e: any) {\n const error = await Context.filterRecord.default(e)\n setResponseStatus(event, error.status)\n return error\n }\n\n if (!Array.isArray(body))\n return errorHandler(new BadRequestException('data format should be an array'))\n\n try {\n return Promise.all(body.map((item: any) => {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve) => {\n const { tag } = item\n const meta = metaMap.get(tag)!\n if (!meta)\n return resolve(await Context.filterRecord.default(new BadRequestException(`\"${tag}\" doesn't exist`)))\n\n const contextData = {\n type: 'h3' as const,\n event,\n meta,\n moduleMap,\n parallel: true,\n\n }\n const context = new Context<H3Ctx>(tag, contextData)\n const [name, method] = tag.split('-')\n const {\n paramsType,\n handlers,\n data: {\n params,\n guards,\n interceptors, filter,\n },\n } = metaMap.get(tag)!\n\n const instance = moduleMap.get(name)\n\n try {\n await context.useGuard([...globalGuards, ...guards])\n const cache = await context.useInterceptor([...globalInterceptors, ...interceptors])\n if (cache !== undefined)\n return resolve(cache)\n const args = await context.usePipe(params.map(({ type, key, pipe, pipeOpts, index }) => {\n return { arg: item.args[index], type, key, pipe, pipeOpts, index, reflect: paramsType[index] }\n })) as any\n instance.context = contextData\n const funcData = await moduleMap.get(name)[method](...args)\n resolve(await context.usePostInterceptor(funcData))\n }\n catch (e: any) {\n handlers.forEach(handler => handler.error?.(e))\n resolve(await context.useFilter(e, filter))\n }\n })\n }))\n }\n\n catch (e) {\n return errorHandler(e)\n }\n }))\n for (const i of meta) {\n const { method, http, header, tag } = i.data\n\n if (!http?.type)\n continue\n\n const methodTag = `${tag}-${method}`\n\n const {\n paramsType,\n handlers,\n data: {\n interceptors,\n guards,\n params,\n plugins,\n filter,\n },\n } = metaMap.get(methodTag)!\n\n router[http.type](http.route, fromNodeMiddleware((req, _res, next) => {\n (req as any)[MODULE_SYMBOL] = moduleMap;\n (req as any)[META_SYMBOL] = meta\n next()\n }))\n\n for (const p of plugins) {\n const middleware = Context.usePlugin([p])[0]\n if (!middleware)\n continue\n\n router[http.type](http.route, fromNodeMiddleware(middleware))\n }\n\n router[http.type](http.route, eventHandler(async (event) => {\n const instance = moduleMap.get(tag)!\n\n const contextData = {\n type: 'h3' as const,\n meta: i,\n event,\n moduleMap,\n parallel: false,\n }\n const context = new Context<H3Ctx>(methodTag, contextData)\n\n try {\n setHeaders(event, header)\n await context.useGuard([...globalGuards, ...guards])\n const cache = await context.useInterceptor([...globalInterceptors, ...interceptors])\n if (cache !== undefined)\n return cache\n\n const body = params.some(item => item.type === 'body') ? await readBody(event, { strict: true }) : undefined\n const args = await context.usePipe(params.map(({ type, key, pipe, pipeOpts, index }) => {\n let arg: any\n\n switch (type) {\n case 'params':\n arg = getRouterParams(event)\n break\n case 'query':\n arg = getQuery(event)\n break\n case 'header':\n arg = getRequestHeaders(event)\n break\n default:\n arg = body\n }\n\n return { arg: resolveDep(arg, key), pipe, pipeOpts, key, type, index, reflect: paramsType[index] }\n }))\n\n instance.context = contextData\n const funcData = await instance[method](...args)\n const ret = await context.usePostInterceptor(funcData)\n\n return ret\n }\n catch (e: any) {\n handlers.forEach(handler => handler.error?.(e))\n const err = await context.useFilter(e, filter)\n setResponseStatus(event, err.status)\n return err\n }\n }))\n }\n }\n\n handleMeta()\n createRoute()\n if (IS_DEV) {\n globalThis.__PS_HMR__?.push(async () => {\n isAopDepInject(meta, {\n plugins,\n guards: globalGuards,\n interceptors: globalInterceptors,\n })\n handleMeta()\n })\n }\n}\n"]}
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  resolveDep
3
- } from "../../chunk-JQPX546Z.mjs";
3
+ } from "../../chunk-V7SC5EVJ.mjs";
4
4
  import {
5
5
  BadRequestException,
6
6
  Context,
7
7
  isAopDepInject
8
- } from "../../chunk-Q6T7HNEO.mjs";
8
+ } from "../../chunk-GSJ5A2MA.mjs";
9
9
  import {
10
10
  APP_SYMBOL,
11
11
  IS_DEV,
@@ -13,7 +13,7 @@ import {
13
13
  META_SYMBOL,
14
14
  MODULE_SYMBOL,
15
15
  __name
16
- } from "../../chunk-AJ2HYENF.mjs";
16
+ } from "../../chunk-AYJWOIAW.mjs";
17
17
 
18
18
  // src/server/h3/bind.ts
19
19
  import { eventHandler, fromNodeMiddleware, getQuery, getRequestHeaders, getRouterParams, readBody, setHeaders, setResponseStatus } from "h3";
@@ -66,7 +66,7 @@ function bindApp(router, { moduleMap, meta }, options = {}) {
66
66
  strict: true
67
67
  });
68
68
  async function errorHandler(e) {
69
- const error = await Context.filter(e);
69
+ const error = await Context.filterRecord.default(e);
70
70
  setResponseStatus(event, error.status);
71
71
  return error;
72
72
  }
@@ -79,7 +79,7 @@ function bindApp(router, { moduleMap, meta }, options = {}) {
79
79
  const { tag } = item;
80
80
  const meta2 = metaMap.get(tag);
81
81
  if (!meta2)
82
- return resolve(await Context.filter(new BadRequestException(`"${tag}" doesn't exist`)));
82
+ return resolve(await Context.filterRecord.default(new BadRequestException(`"${tag}" doesn't exist`)));
83
83
  const contextData = {
84
84
  type: "h3",
85
85
  event,
@@ -89,7 +89,7 @@ function bindApp(router, { moduleMap, meta }, options = {}) {
89
89
  };
90
90
  const context = new Context(tag, contextData);
91
91
  const [name, method] = tag.split("-");
92
- const { paramsType, handlers, data: { params, guards, interceptors } } = metaMap.get(tag);
92
+ const { paramsType, handlers, data: { params, guards, interceptors, filter } } = metaMap.get(tag);
93
93
  const instance = moduleMap.get(name);
94
94
  try {
95
95
  await context.useGuard([
@@ -118,7 +118,7 @@ function bindApp(router, { moduleMap, meta }, options = {}) {
118
118
  resolve(await context.usePostInterceptor(funcData));
119
119
  } catch (e) {
120
120
  handlers.forEach((handler) => handler.error?.(e));
121
- resolve(await context.useFilter(e));
121
+ resolve(await context.useFilter(e, filter));
122
122
  }
123
123
  });
124
124
  }));
@@ -131,7 +131,7 @@ function bindApp(router, { moduleMap, meta }, options = {}) {
131
131
  if (!http?.type)
132
132
  continue;
133
133
  const methodTag = `${tag}-${method}`;
134
- const { paramsType, handlers, data: { interceptors, guards, params, plugins: plugins2 } } = metaMap.get(methodTag);
134
+ const { paramsType, handlers, data: { interceptors, guards, params, plugins: plugins2, filter } } = metaMap.get(methodTag);
135
135
  router[http.type](http.route, fromNodeMiddleware((req, _res, next) => {
136
136
  req[MODULE_SYMBOL] = moduleMap;
137
137
  req[META_SYMBOL] = meta;
@@ -151,7 +151,8 @@ function bindApp(router, { moduleMap, meta }, options = {}) {
151
151
  type: "h3",
152
152
  meta: i,
153
153
  event,
154
- moduleMap
154
+ moduleMap,
155
+ parallel: false
155
156
  };
156
157
  const context = new Context(methodTag, contextData);
157
158
  try {
@@ -200,7 +201,7 @@ function bindApp(router, { moduleMap, meta }, options = {}) {
200
201
  return ret;
201
202
  } catch (e) {
202
203
  handlers.forEach((handler) => handler.error?.(e));
203
- const err = await context.useFilter(e);
204
+ const err = await context.useFilter(e, filter);
204
205
  setResponseStatus(event, err.status);
205
206
  return err;
206
207
  }
@@ -212,6 +213,11 @@ function bindApp(router, { moduleMap, meta }, options = {}) {
212
213
  createRoute();
213
214
  if (IS_DEV) {
214
215
  globalThis.__PS_HMR__?.push(async () => {
216
+ isAopDepInject(meta, {
217
+ plugins,
218
+ guards: globalGuards,
219
+ interceptors: globalInterceptors
220
+ });
215
221
  handleMeta();
216
222
  });
217
223
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/server/h3/bind.ts"],"sourcesContent":["import { eventHandler, fromNodeMiddleware, getQuery, getRequestHeaders, getRouterParams, readBody, setHeaders, setResponseStatus } from 'h3'\nimport type { NodeMiddleware, Router } from 'h3'\n\nimport { resolveDep } from '../../helper'\nimport { APP_SYMBOL, IS_DEV, MERGE_SYMBOL, META_SYMBOL, MODULE_SYMBOL } from '../../common'\nimport type { Factory } from '../../core'\nimport { BadRequestException } from '../../exception'\nimport type { Meta } from '../../meta'\nimport { Context, isAopDepInject } from '../../context'\n\nexport interface H3Ctx {\n type: 'h3'\n request: Request\n response: Response\n meta: Meta\n moduleMap: Record<string, any>\n}\nexport interface Options {\n\n /**\n * 专用路由的值,默认为/__PHECDA_SERVER__,处理phecda-client发出的合并请求\n */\n route?: string\n /**\n * 全局守卫\n */\n globalGuards?: string[]\n /**\n * 全局拦截器\n */\n globalInterceptors?: string[]\n /**\n * 专用路由的中间件(work for merge request),全局中间件请在bindApp以外设置\n */\n plugins?: string[]\n\n}\n\nexport function bindApp(router: Router, { moduleMap, meta }: Awaited<ReturnType<typeof Factory>>, options: Options = {}) {\n const { globalGuards, globalInterceptors, route, plugins } = { route: '/__PHECDA_SERVER__', globalGuards: [], globalInterceptors: [], plugins: [], ...options } as Required<Options>\n\n isAopDepInject(meta, {\n plugins,\n guards: globalGuards,\n interceptors: globalInterceptors,\n });\n\n (router as any)[APP_SYMBOL] = { moduleMap, meta }\n\n const metaMap = new Map<string, Meta>()\n function handleMeta() {\n metaMap.clear()\n for (const item of meta) {\n const { tag, method, http } = item.data\n if (!http?.type)\n continue\n const methodTag = `${tag}-${method}`\n metaMap.set(methodTag, item)\n }\n }\n\n async function createRoute() {\n router.post(route, fromNodeMiddleware((req, _res, next) => {\n (req as any)[MERGE_SYMBOL] = true;\n (req as any)[MODULE_SYMBOL] = moduleMap;\n (req as any)[META_SYMBOL] = meta\n\n next()\n }))\n plugins.forEach((p) => {\n const middleware = Context.usePlugin([p])[0] as NodeMiddleware\n if (!middleware)\n return\n router.post(route, fromNodeMiddleware(middleware))\n })\n\n router.post(route, eventHandler(async (event) => {\n const body = await readBody(event, { strict: true })\n async function errorHandler(e: any) {\n const error = await Context.filter(e)\n setResponseStatus(event, error.status)\n return error\n }\n\n if (!Array.isArray(body))\n return errorHandler(new BadRequestException('data format should be an array'))\n\n try {\n return Promise.all(body.map((item: any) => {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve) => {\n const { tag } = item\n const meta = metaMap.get(tag)!\n if (!meta)\n return resolve(await Context.filter(new BadRequestException(`\"${tag}\" doesn't exist`)))\n\n const contextData = {\n type: 'h3' as const,\n event,\n meta,\n moduleMap,\n parallel: true,\n\n }\n const context = new Context(tag, contextData)\n const [name, method] = tag.split('-')\n const {\n paramsType,\n handlers,\n data: {\n params,\n guards, interceptors,\n },\n } = metaMap.get(tag)!\n\n const instance = moduleMap.get(name)\n\n try {\n await context.useGuard([...globalGuards, ...guards])\n const cache = await context.useInterceptor([...globalInterceptors, ...interceptors])\n if (cache !== undefined)\n return resolve(cache)\n const args = await context.usePipe(params.map(({ type, key, pipe, pipeOpts, index }) => {\n return { arg: item.args[index], type, key, pipe, pipeOpts, index, reflect: paramsType[index] }\n })) as any\n instance.context = contextData\n const funcData = await moduleMap.get(name)[method](...args)\n resolve(await context.usePostInterceptor(funcData))\n }\n catch (e: any) {\n handlers.forEach(handler => handler.error?.(e))\n resolve(await context.useFilter(e))\n }\n })\n }))\n }\n\n catch (e) {\n return errorHandler(e)\n }\n }))\n for (const i of meta) {\n const { method, http, header, tag } = i.data\n\n if (!http?.type)\n continue\n\n const methodTag = `${tag}-${method}`\n\n const {\n paramsType,\n handlers,\n data: {\n interceptors,\n guards,\n params,\n plugins,\n },\n } = metaMap.get(methodTag)!\n\n router[http.type](http.route, fromNodeMiddleware((req, _res, next) => {\n (req as any)[MODULE_SYMBOL] = moduleMap;\n (req as any)[META_SYMBOL] = meta\n next()\n }))\n\n for (const p of plugins) {\n const middleware = Context.usePlugin([p])[0]\n if (!middleware)\n continue\n\n router[http.type](http.route, fromNodeMiddleware(middleware))\n }\n\n router[http.type](http.route, eventHandler(async (event) => {\n const instance = moduleMap.get(tag)!\n\n const contextData = {\n type: 'h3' as const,\n meta: i,\n event,\n moduleMap,\n }\n const context = new Context(methodTag, contextData)\n\n try {\n setHeaders(event, header)\n await context.useGuard([...globalGuards, ...guards])\n const cache = await context.useInterceptor([...globalInterceptors, ...interceptors])\n if (cache !== undefined)\n return cache\n\n const body = params.some(item => item.type === 'body') ? await readBody(event, { strict: true }) : undefined\n const args = await context.usePipe(params.map(({ type, key, pipe, pipeOpts, index }) => {\n let arg: any\n\n switch (type) {\n case 'params':\n arg = getRouterParams(event)\n break\n case 'query':\n arg = getQuery(event)\n break\n case 'header':\n arg = getRequestHeaders(event)\n break\n default:\n arg = body\n }\n\n return { arg: resolveDep(arg, key), pipe, pipeOpts, key, type, index, reflect: paramsType[index] }\n }))\n\n instance.context = contextData\n const funcData = await instance[method](...args)\n const ret = await context.usePostInterceptor(funcData)\n\n return ret\n }\n catch (e: any) {\n handlers.forEach(handler => handler.error?.(e))\n const err = await context.useFilter(e)\n setResponseStatus(event, err.status)\n return err\n }\n }))\n }\n }\n\n handleMeta()\n createRoute()\n if (IS_DEV) {\n globalThis.__PS_HMR__?.push(async () => {\n handleMeta()\n })\n }\n}\n"],"mappings":"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","names":["eventHandler","fromNodeMiddleware","getQuery","getRequestHeaders","getRouterParams","readBody","setHeaders","setResponseStatus","bindApp","router","moduleMap","meta","options","globalGuards","globalInterceptors","route","plugins","isAopDepInject","guards","interceptors","APP_SYMBOL","metaMap","Map","handleMeta","clear","item","tag","method","http","data","type","methodTag","set","createRoute","post","fromNodeMiddleware","req","_res","next","MERGE_SYMBOL","MODULE_SYMBOL","META_SYMBOL","forEach","p","middleware","Context","usePlugin","eventHandler","event","body","readBody","strict","errorHandler","e","error","filter","setResponseStatus","status","Array","isArray","BadRequestException","Promise","all","map","resolve","get","contextData","parallel","context","name","split","paramsType","handlers","params","instance","useGuard","cache","useInterceptor","undefined","args","usePipe","key","pipe","pipeOpts","index","arg","reflect","funcData","usePostInterceptor","handler","useFilter","i","header","setHeaders","some","getRouterParams","getQuery","getRequestHeaders","resolveDep","ret","err","IS_DEV","globalThis","__PS_HMR__","push"]}
1
+ {"version":3,"sources":["../../../src/server/h3/bind.ts"],"sourcesContent":["import { eventHandler, fromNodeMiddleware, getQuery, getRequestHeaders, getRouterParams, readBody, setHeaders, setResponseStatus } from 'h3'\nimport type { H3Event, NodeMiddleware, Router } from 'h3'\n\nimport { resolveDep } from '../../helper'\nimport { APP_SYMBOL, IS_DEV, MERGE_SYMBOL, META_SYMBOL, MODULE_SYMBOL } from '../../common'\nimport type { Factory } from '../../core'\nimport { BadRequestException } from '../../exception'\nimport type { Meta } from '../../meta'\nimport { Context, isAopDepInject } from '../../context'\n\nexport interface H3Ctx {\n type: 'h3'\n event: H3Event\n meta: Meta\n moduleMap: Record<string, any>\n parallel: boolean\n [key: string]: any\n}\nexport interface Options {\n\n /**\n * 专用路由的值,默认为/__PHECDA_SERVER__,处理phecda-client发出的合并请求\n */\n route?: string\n /**\n * 全局守卫\n */\n globalGuards?: string[]\n /**\n * 全局拦截器\n */\n globalInterceptors?: string[]\n /**\n * 专用路由的中间件(work for merge request),全局中间件请在bindApp以外设置\n */\n plugins?: string[]\n\n}\n\nexport function bindApp(router: Router, { moduleMap, meta }: Awaited<ReturnType<typeof Factory>>, options: Options = {}) {\n const { globalGuards, globalInterceptors, route, plugins } = { route: '/__PHECDA_SERVER__', globalGuards: [], globalInterceptors: [], plugins: [], ...options } as Required<Options>\n\n isAopDepInject(meta, {\n plugins,\n guards: globalGuards,\n interceptors: globalInterceptors,\n });\n\n (router as any)[APP_SYMBOL] = { moduleMap, meta }\n\n const metaMap = new Map<string, Meta>()\n function handleMeta() {\n metaMap.clear()\n for (const item of meta) {\n const { tag, method, http } = item.data\n if (!http?.type)\n continue\n const methodTag = `${tag}-${method}`\n metaMap.set(methodTag, item)\n }\n }\n\n async function createRoute() {\n router.post(route, fromNodeMiddleware((req, _res, next) => {\n (req as any)[MERGE_SYMBOL] = true;\n (req as any)[MODULE_SYMBOL] = moduleMap;\n (req as any)[META_SYMBOL] = meta\n\n next()\n }))\n plugins.forEach((p) => {\n const middleware = Context.usePlugin([p])[0] as NodeMiddleware\n if (!middleware)\n return\n router.post(route, fromNodeMiddleware(middleware))\n })\n\n router.post(route, eventHandler(async (event) => {\n const body = await readBody(event, { strict: true })\n async function errorHandler(e: any) {\n const error = await Context.filterRecord.default(e)\n setResponseStatus(event, error.status)\n return error\n }\n\n if (!Array.isArray(body))\n return errorHandler(new BadRequestException('data format should be an array'))\n\n try {\n return Promise.all(body.map((item: any) => {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve) => {\n const { tag } = item\n const meta = metaMap.get(tag)!\n if (!meta)\n return resolve(await Context.filterRecord.default(new BadRequestException(`\"${tag}\" doesn't exist`)))\n\n const contextData = {\n type: 'h3' as const,\n event,\n meta,\n moduleMap,\n parallel: true,\n\n }\n const context = new Context<H3Ctx>(tag, contextData)\n const [name, method] = tag.split('-')\n const {\n paramsType,\n handlers,\n data: {\n params,\n guards,\n interceptors, filter,\n },\n } = metaMap.get(tag)!\n\n const instance = moduleMap.get(name)\n\n try {\n await context.useGuard([...globalGuards, ...guards])\n const cache = await context.useInterceptor([...globalInterceptors, ...interceptors])\n if (cache !== undefined)\n return resolve(cache)\n const args = await context.usePipe(params.map(({ type, key, pipe, pipeOpts, index }) => {\n return { arg: item.args[index], type, key, pipe, pipeOpts, index, reflect: paramsType[index] }\n })) as any\n instance.context = contextData\n const funcData = await moduleMap.get(name)[method](...args)\n resolve(await context.usePostInterceptor(funcData))\n }\n catch (e: any) {\n handlers.forEach(handler => handler.error?.(e))\n resolve(await context.useFilter(e, filter))\n }\n })\n }))\n }\n\n catch (e) {\n return errorHandler(e)\n }\n }))\n for (const i of meta) {\n const { method, http, header, tag } = i.data\n\n if (!http?.type)\n continue\n\n const methodTag = `${tag}-${method}`\n\n const {\n paramsType,\n handlers,\n data: {\n interceptors,\n guards,\n params,\n plugins,\n filter,\n },\n } = metaMap.get(methodTag)!\n\n router[http.type](http.route, fromNodeMiddleware((req, _res, next) => {\n (req as any)[MODULE_SYMBOL] = moduleMap;\n (req as any)[META_SYMBOL] = meta\n next()\n }))\n\n for (const p of plugins) {\n const middleware = Context.usePlugin([p])[0]\n if (!middleware)\n continue\n\n router[http.type](http.route, fromNodeMiddleware(middleware))\n }\n\n router[http.type](http.route, eventHandler(async (event) => {\n const instance = moduleMap.get(tag)!\n\n const contextData = {\n type: 'h3' as const,\n meta: i,\n event,\n moduleMap,\n parallel: false,\n }\n const context = new Context<H3Ctx>(methodTag, contextData)\n\n try {\n setHeaders(event, header)\n await context.useGuard([...globalGuards, ...guards])\n const cache = await context.useInterceptor([...globalInterceptors, ...interceptors])\n if (cache !== undefined)\n return cache\n\n const body = params.some(item => item.type === 'body') ? await readBody(event, { strict: true }) : undefined\n const args = await context.usePipe(params.map(({ type, key, pipe, pipeOpts, index }) => {\n let arg: any\n\n switch (type) {\n case 'params':\n arg = getRouterParams(event)\n break\n case 'query':\n arg = getQuery(event)\n break\n case 'header':\n arg = getRequestHeaders(event)\n break\n default:\n arg = body\n }\n\n return { arg: resolveDep(arg, key), pipe, pipeOpts, key, type, index, reflect: paramsType[index] }\n }))\n\n instance.context = contextData\n const funcData = await instance[method](...args)\n const ret = await context.usePostInterceptor(funcData)\n\n return ret\n }\n catch (e: any) {\n handlers.forEach(handler => handler.error?.(e))\n const err = await context.useFilter(e, filter)\n setResponseStatus(event, err.status)\n return err\n }\n }))\n }\n }\n\n handleMeta()\n createRoute()\n if (IS_DEV) {\n globalThis.__PS_HMR__?.push(async () => {\n isAopDepInject(meta, {\n plugins,\n guards: globalGuards,\n interceptors: globalInterceptors,\n })\n handleMeta()\n })\n }\n}\n"],"mappings":"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","names":["eventHandler","fromNodeMiddleware","getQuery","getRequestHeaders","getRouterParams","readBody","setHeaders","setResponseStatus","bindApp","router","moduleMap","meta","options","globalGuards","globalInterceptors","route","plugins","isAopDepInject","guards","interceptors","APP_SYMBOL","metaMap","Map","handleMeta","clear","item","tag","method","http","data","type","methodTag","set","createRoute","post","fromNodeMiddleware","req","_res","next","MERGE_SYMBOL","MODULE_SYMBOL","META_SYMBOL","forEach","p","middleware","Context","usePlugin","eventHandler","event","body","readBody","strict","errorHandler","e","error","filterRecord","default","setResponseStatus","status","Array","isArray","BadRequestException","Promise","all","map","resolve","get","contextData","parallel","context","name","split","paramsType","handlers","params","filter","instance","useGuard","cache","useInterceptor","undefined","args","usePipe","key","pipe","pipeOpts","index","arg","reflect","funcData","usePostInterceptor","handler","useFilter","i","header","setHeaders","some","getRouterParams","getQuery","getRequestHeaders","resolveDep","ret","err","IS_DEV","globalThis","__PS_HMR__","push"]}
@@ -1,7 +1,7 @@
1
1
  import Router, { RouterParamContext } from '@koa/router';
2
2
  import { DefaultContext, DefaultState } from 'koa';
3
- import { M as Meta, F as Factory } from '../../core-ba036c2b.js';
4
- import '../../types-ead02c5d.js';
3
+ import { M as Meta, F as Factory } from '../../core-c27b4cf4.js';
4
+ import '../../types-8415bd5d.js';
5
5
  import 'phecda-core';
6
6
 
7
7
  interface KoaCtx {
@@ -9,6 +9,7 @@ interface KoaCtx {
9
9
  ctx: DefaultContext & RouterParamContext<DefaultState, DefaultContext>;
10
10
  meta: Meta;
11
11
  moduleMap: Record<string, any>;
12
+ parallel: boolean;
12
13
  [key: string]: any;
13
14
  }
14
15
  interface Options {
@@ -1,11 +1,11 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkFAHHXHL5js = require('../../chunk-FAHHXHL5.js');
3
+ var _chunkZPMAM4LQjs = require('../../chunk-ZPMAM4LQ.js');
4
4
 
5
5
 
6
6
 
7
7
 
8
- var _chunkYU7ROHTOjs = require('../../chunk-YU7ROHTO.js');
8
+ var _chunk7OB6K45Tjs = require('../../chunk-7OB6K45T.js');
9
9
 
10
10
 
11
11
 
@@ -13,7 +13,7 @@ var _chunkYU7ROHTOjs = require('../../chunk-YU7ROHTO.js');
13
13
 
14
14
 
15
15
 
16
- var _chunkLZAU5FUSjs = require('../../chunk-LZAU5FUS.js');
16
+ var _chunkAAF47ZC6js = require('../../chunk-AAF47ZC6.js');
17
17
 
18
18
  // src/server/koa/bind.ts
19
19
  function bindApp(app, { moduleMap, meta }, options = {}) {
@@ -24,12 +24,12 @@ function bindApp(app, { moduleMap, meta }, options = {}) {
24
24
  plugins: [],
25
25
  ...options
26
26
  };
27
- _chunkYU7ROHTOjs.isAopDepInject.call(void 0, meta, {
27
+ _chunk7OB6K45Tjs.isAopDepInject.call(void 0, meta, {
28
28
  plugins,
29
29
  guards: globalGuards,
30
30
  interceptors: globalInterceptors
31
31
  });
32
- app[_chunkLZAU5FUSjs.APP_SYMBOL] = {
32
+ app[_chunkAAF47ZC6js.APP_SYMBOL] = {
33
33
  moduleMap,
34
34
  meta
35
35
  };
@@ -44,30 +44,30 @@ function bindApp(app, { moduleMap, meta }, options = {}) {
44
44
  metaMap.set(methodTag, item);
45
45
  }
46
46
  }
47
- _chunkLZAU5FUSjs.__name.call(void 0, handleMeta, "handleMeta");
47
+ _chunkAAF47ZC6js.__name.call(void 0, handleMeta, "handleMeta");
48
48
  async function createRoute() {
49
49
  app.post(route, async (ctx, next) => {
50
- ctx[_chunkLZAU5FUSjs.MERGE_SYMBOL] = true;
51
- ctx[_chunkLZAU5FUSjs.MODULE_SYMBOL] = moduleMap;
52
- ctx[_chunkLZAU5FUSjs.META_SYMBOL] = meta;
50
+ ctx[_chunkAAF47ZC6js.MERGE_SYMBOL] = true;
51
+ ctx[_chunkAAF47ZC6js.MODULE_SYMBOL] = moduleMap;
52
+ ctx[_chunkAAF47ZC6js.META_SYMBOL] = meta;
53
53
  await next();
54
- }, ..._chunkYU7ROHTOjs.Context.usePlugin(plugins), async (ctx) => {
54
+ }, ..._chunk7OB6K45Tjs.Context.usePlugin(plugins), async (ctx) => {
55
55
  const { body } = ctx.request;
56
56
  async function errorHandler(e) {
57
- const error = await _chunkYU7ROHTOjs.Context.filter(e);
57
+ const error = await _chunk7OB6K45Tjs.Context.filterRecord.default(e);
58
58
  ctx.status = error.status;
59
59
  ctx.body = error;
60
60
  }
61
- _chunkLZAU5FUSjs.__name.call(void 0, errorHandler, "errorHandler");
61
+ _chunkAAF47ZC6js.__name.call(void 0, errorHandler, "errorHandler");
62
62
  if (!Array.isArray(body))
63
- return errorHandler(new (0, _chunkYU7ROHTOjs.BadRequestException)("data format should be an array"));
63
+ return errorHandler(new (0, _chunk7OB6K45Tjs.BadRequestException)("data format should be an array"));
64
64
  try {
65
65
  return Promise.all(body.map((item) => {
66
66
  return new Promise(async (resolve) => {
67
67
  const { tag } = item;
68
68
  const meta2 = metaMap.get(tag);
69
69
  if (!meta2)
70
- return resolve(await _chunkYU7ROHTOjs.Context.filter(new (0, _chunkYU7ROHTOjs.BadRequestException)(`"${tag}" doesn't exist`)));
70
+ return resolve(await _chunk7OB6K45Tjs.Context.filterRecord.default(new (0, _chunk7OB6K45Tjs.BadRequestException)(`"${tag}" doesn't exist`)));
71
71
  const contextData = {
72
72
  type: "koa",
73
73
  ctx,
@@ -75,9 +75,9 @@ function bindApp(app, { moduleMap, meta }, options = {}) {
75
75
  moduleMap,
76
76
  parallel: true
77
77
  };
78
- const context = new (0, _chunkYU7ROHTOjs.Context)(tag, contextData);
78
+ const context = new (0, _chunk7OB6K45Tjs.Context)(tag, contextData);
79
79
  const [name, method] = tag.split("-");
80
- const { paramsType, handlers, data: { params, guards, interceptors } } = meta2;
80
+ const { paramsType, handlers, data: { params, guards, interceptors, filter } } = meta2;
81
81
  const instance = moduleMap.get(name);
82
82
  try {
83
83
  await context.useGuard([
@@ -106,7 +106,7 @@ function bindApp(app, { moduleMap, meta }, options = {}) {
106
106
  resolve(await context.usePostInterceptor(funcData));
107
107
  } catch (e) {
108
108
  handlers.forEach((handler) => _optionalChain([handler, 'access', _2 => _2.error, 'optionalCall', _3 => _3(e)]));
109
- resolve(await context.useFilter(e));
109
+ resolve(await context.useFilter(e, filter));
110
110
  }
111
111
  });
112
112
  })).then((ret) => {
@@ -121,20 +121,21 @@ function bindApp(app, { moduleMap, meta }, options = {}) {
121
121
  if (!_optionalChain([http, 'optionalAccess', _4 => _4.type]))
122
122
  continue;
123
123
  const methodTag = `${tag}-${method}`;
124
- const { paramsType, handlers, data: { interceptors, guards, params, plugins: plugins2 } } = metaMap.get(methodTag);
124
+ const { paramsType, handlers, data: { interceptors, guards, params, plugins: plugins2, filter } } = metaMap.get(methodTag);
125
125
  app[http.type](http.route, async (ctx, next) => {
126
- ctx[_chunkLZAU5FUSjs.MODULE_SYMBOL] = moduleMap;
127
- ctx[_chunkLZAU5FUSjs.META_SYMBOL] = meta;
126
+ ctx[_chunkAAF47ZC6js.MODULE_SYMBOL] = moduleMap;
127
+ ctx[_chunkAAF47ZC6js.META_SYMBOL] = meta;
128
128
  await next();
129
- }, ..._chunkYU7ROHTOjs.Context.usePlugin(plugins2), async (ctx) => {
129
+ }, ..._chunk7OB6K45Tjs.Context.usePlugin(plugins2), async (ctx) => {
130
130
  const instance = moduleMap.get(tag);
131
131
  const contextData = {
132
132
  type: "koa",
133
133
  ctx,
134
134
  meta: i,
135
- moduleMap
135
+ moduleMap,
136
+ parallel: false
136
137
  };
137
- const context = new (0, _chunkYU7ROHTOjs.Context)(methodTag, contextData);
138
+ const context = new (0, _chunk7OB6K45Tjs.Context)(methodTag, contextData);
138
139
  try {
139
140
  for (const name in header)
140
141
  ctx.set(name, header[name]);
@@ -152,7 +153,7 @@ function bindApp(app, { moduleMap, meta }, options = {}) {
152
153
  }
153
154
  const args = await context.usePipe(params.map(({ type, key, pipeOpts, index, pipe }) => {
154
155
  return {
155
- arg: _chunkFAHHXHL5js.resolveDep.call(void 0, ctx.request[type], key),
156
+ arg: _chunkZPMAM4LQjs.resolveDep.call(void 0, ctx.request[type], key),
156
157
  pipeOpts,
157
158
  pipe,
158
159
  key,
@@ -169,25 +170,32 @@ function bindApp(app, { moduleMap, meta }, options = {}) {
169
170
  ctx.body = ret;
170
171
  } catch (e) {
171
172
  handlers.forEach((handler) => _optionalChain([handler, 'access', _5 => _5.error, 'optionalCall', _6 => _6(e)]));
172
- const err = await context.useFilter(e);
173
+ const err = await context.useFilter(e, filter);
174
+ if (ctx.res.writableEnded)
175
+ return;
173
176
  ctx.status = err.status;
174
177
  ctx.body = err;
175
178
  }
176
179
  });
177
180
  }
178
181
  }
179
- _chunkLZAU5FUSjs.__name.call(void 0, createRoute, "createRoute");
182
+ _chunkAAF47ZC6js.__name.call(void 0, createRoute, "createRoute");
180
183
  handleMeta();
181
184
  createRoute();
182
- if (_chunkLZAU5FUSjs.IS_DEV) {
185
+ if (_chunkAAF47ZC6js.IS_DEV) {
183
186
  _optionalChain([globalThis, 'access', _7 => _7.__PS_HMR__, 'optionalAccess', _8 => _8.push, 'call', _9 => _9(async () => {
187
+ _chunk7OB6K45Tjs.isAopDepInject.call(void 0, meta, {
188
+ plugins,
189
+ guards: globalGuards,
190
+ interceptors: globalInterceptors
191
+ });
184
192
  app.stack = [];
185
193
  handleMeta();
186
194
  createRoute();
187
195
  })]);
188
196
  }
189
197
  }
190
- _chunkLZAU5FUSjs.__name.call(void 0, bindApp, "bindApp");
198
+ _chunkAAF47ZC6js.__name.call(void 0, bindApp, "bindApp");
191
199
 
192
200
 
193
201
  exports.bindApp = bindApp;