phecda-server 4.0.6 → 4.0.7

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 (57) hide show
  1. package/dist/{chunk-V7SC5EVJ.mjs → chunk-43ZXHSVH.mjs} +2 -2
  2. package/dist/{chunk-GSJ5A2MA.mjs → chunk-ATMZNJSE.mjs} +2 -2
  3. package/dist/{chunk-AYJWOIAW.mjs → chunk-DQUH5BP6.mjs} +20 -2
  4. package/dist/chunk-DQUH5BP6.mjs.map +1 -0
  5. package/dist/{chunk-K32VRTXB.mjs → chunk-F5PQVQTY.mjs} +2 -2
  6. package/dist/{chunk-ZPMAM4LQ.js → chunk-FCLWCFQS.js} +3 -3
  7. package/dist/{chunk-7OB6K45T.js → chunk-JZGLQ4FQ.js} +46 -46
  8. package/dist/{chunk-TZ27DHWL.js → chunk-WWYSLFOI.js} +23 -23
  9. package/dist/{chunk-AAF47ZC6.js → chunk-ZZ2QKZ46.js} +20 -2
  10. package/dist/chunk-ZZ2QKZ46.js.map +1 -0
  11. package/dist/{types-8415bd5d.d.ts → core-72951cf9.d.ts} +28 -4
  12. package/dist/index.d.ts +6 -6
  13. package/dist/index.js +61 -57
  14. package/dist/index.js.map +1 -1
  15. package/dist/index.mjs +10 -6
  16. package/dist/index.mjs.map +1 -1
  17. package/dist/rpc/rabbitmq/index.d.ts +2 -3
  18. package/dist/rpc/rabbitmq/index.js +9 -9
  19. package/dist/rpc/rabbitmq/index.js.map +1 -1
  20. package/dist/rpc/rabbitmq/index.mjs +2 -2
  21. package/dist/rpc/rabbitmq/index.mjs.map +1 -1
  22. package/dist/rpc/redis/index.d.ts +2 -3
  23. package/dist/rpc/redis/index.js +9 -9
  24. package/dist/rpc/redis/index.js.map +1 -1
  25. package/dist/rpc/redis/index.mjs +2 -2
  26. package/dist/rpc/redis/index.mjs.map +1 -1
  27. package/dist/server/express/index.d.ts +1 -2
  28. package/dist/server/express/index.js +24 -24
  29. package/dist/server/express/index.mjs +3 -3
  30. package/dist/server/fastify/index.d.ts +3 -4
  31. package/dist/server/fastify/index.js +26 -22
  32. package/dist/server/fastify/index.js.map +1 -1
  33. package/dist/server/fastify/index.mjs +8 -4
  34. package/dist/server/fastify/index.mjs.map +1 -1
  35. package/dist/server/h3/index.d.ts +1 -2
  36. package/dist/server/h3/index.js +24 -24
  37. package/dist/server/h3/index.js.map +1 -1
  38. package/dist/server/h3/index.mjs +3 -3
  39. package/dist/server/h3/index.mjs.map +1 -1
  40. package/dist/server/koa/index.d.ts +1 -2
  41. package/dist/server/koa/index.js +24 -24
  42. package/dist/server/koa/index.mjs +3 -3
  43. package/dist/test.d.ts +9 -5
  44. package/dist/test.js +10 -21
  45. package/dist/test.js.map +1 -1
  46. package/dist/test.mjs +7 -18
  47. package/dist/test.mjs.map +1 -1
  48. package/package.json +2 -2
  49. package/dist/chunk-AAF47ZC6.js.map +0 -1
  50. package/dist/chunk-AYJWOIAW.mjs.map +0 -1
  51. package/dist/core-c27b4cf4.d.ts +0 -23
  52. /package/dist/{chunk-V7SC5EVJ.mjs.map → chunk-43ZXHSVH.mjs.map} +0 -0
  53. /package/dist/{chunk-GSJ5A2MA.mjs.map → chunk-ATMZNJSE.mjs.map} +0 -0
  54. /package/dist/{chunk-K32VRTXB.mjs.map → chunk-F5PQVQTY.mjs.map} +0 -0
  55. /package/dist/{chunk-ZPMAM4LQ.js.map → chunk-FCLWCFQS.js.map} +0 -0
  56. /package/dist/{chunk-7OB6K45T.js.map → chunk-JZGLQ4FQ.js.map} +0 -0
  57. /package/dist/{chunk-TZ27DHWL.js.map → chunk-WWYSLFOI.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/decorators/index.ts","../src/decorators/param.ts","../src/decorators/route.ts","../src/decorators/aop.ts","../src/index.ts","../src/modules/dev.ts","../src/modules/filter.ts","../src/modules/guard.ts","../src/modules/interceptor.ts","../src/modules/pipe.ts","../src/modules/plugin.ts","../src/modules/module.ts"],"sourcesContent":["import { setModelVar, setState } from 'phecda-core'\n\nexport function Header(name: string, value: string) {\n return (target: any, k: PropertyKey) => {\n setModelVar(target, k)\n const state = target._namespace.__STATE_NAMESPACE__.get(k) || {}\n if (!state.header)\n state.header = {}\n\n state.header[name] = value\n setState(target, k, state)\n }\n}\n\nexport function Define(key: string, value: any) {\n return (target: any, k?: PropertyKey) => {\n if (!k) {\n k = '__CLASS'\n target = target.prototype\n }\n\n setModelVar(target, k)\n const state = target._namespace.__STATE_NAMESPACE__.get(k) || {}\n if (!state.define)\n state.define = {}\n\n state.define[key] = value\n setState(target, k, state)\n }\n}\n\nexport * from './param'\nexport * from './route'\nexport * from './aop'\n","import { setModelVar, setState } from 'phecda-core'\n\nexport function BaseParam(type: string, key: string): any {\n return (target: any, k: PropertyKey, index: number) => {\n setModelVar(target, k)\n\n const state = target._namespace.__STATE_NAMESPACE__.get(k) || {}\n if (!state.params)\n state.params = []\n const existItem = state.params.find((item: any) => item.index === index)\n if (existItem)\n Object.assign(existItem, { type, key })\n\n else\n state.params.push({ type, key, index })\n\n setState(target, k, state)\n }\n}\n\nexport function Pipe(key?: string, opts?: any) {\n return (target: any, k: PropertyKey, index: number) => {\n setModelVar(target, k)\n\n const state = target._namespace.__STATE_NAMESPACE__.get(k) || {}\n\n if (!state.params)\n state.params = []\n\n const existItem = state.params.find((item: any) => item.index === index)\n if (existItem)\n Object.assign(existItem, { pipe: key, pipeOpts: opts })\n\n else\n state.params.push({ pipe: key, pipeOpts: opts, index })\n\n setState(target, k, state)\n }\n}\n\nexport function Body(key = '') {\n return BaseParam('body', key)\n}\n// req.headers\nexport function Head(key: string) {\n return BaseParam('headers', key.toLowerCase())\n}\n\nexport function Query(key = '') {\n return BaseParam('query', key)\n}\nexport function Param(key: string) {\n return BaseParam('params', key)\n}\n\n// work for micro service\nexport function Arg() {\n return BaseParam('params', '')\n}\n","import { setModelVar, setState } from 'phecda-core'\n\nexport function Route(route: string, type?: string): any {\n return (target: any, key?: PropertyKey) => {\n if (!key)\n key = '__CLASS'\n target = key === '__CLASS' ? target.prototype : target\n\n setModelVar(target, key)\n\n const state = target._namespace.__STATE_NAMESPACE__.get(key) || {}\n state.http = {\n route,\n type,\n }\n setState(target, key, state)\n }\n}\n\nexport function Get(route: string) {\n return Route(route, 'get')\n}\n\nexport function Post(route: string) {\n return Route(route, 'post')\n}\nexport function Put(route: string) {\n return Route(route, 'put')\n}\n\nexport function Patch(route: string) {\n return Route(route, 'patch')\n}\nexport function Delete(route: string) {\n return Route(route, 'delete')\n}\n\nexport function Controller(route = '') {\n return Route(route)\n}\n\nexport function Rpc(...types: ('mq' | 'redis' | string)[]) {\n return (target: any, key?: PropertyKey) => {\n if (!key)\n key = '__CLASS'\n target = key === '__CLASS' ? target.prototype : target\n setModelVar(target, key)\n const state = target._namespace.__STATE_NAMESPACE__.get(key) || {}\n if (!state.rpc)\n state.rpc = {}\n\n state.rpc.type = types\n setState(target, key, state)\n }\n}\nexport function Event(isEvent = true) {\n return (target: any, key?: PropertyKey) => {\n if (!key)\n key = '__CLASS'\n target = key === '__CLASS' ? target.prototype : target\n setModelVar(target, key)\n const state = target._namespace.__STATE_NAMESPACE__.get(key) || {}\n if (!state.rpc)\n state.rpc = {}\n\n state.rpc.isEvent = isEvent\n setState(target, key, state)\n }\n}\n","import { setModelVar, setState } from 'phecda-core'\n\nexport function Guard(...guards: string[]): any {\n return (target: any, key?: PropertyKey) => {\n if (!key)\n key = '__CLASS'\n target = key === '__CLASS' ? target.prototype : target\n\n setModelVar(target, key)\n\n const state = target._namespace.__STATE_NAMESPACE__.get(key) || {}\n if (!state.guards)\n state.guards = []\n state.guards.push(...guards)\n setState(target, key, state)\n }\n}\n\nexport function Plugin(...plugins: string[]): any {\n return (target: any, key?: PropertyKey) => {\n if (!key)\n key = '__CLASS'\n target = key === '__CLASS' ? target.prototype : target\n\n setModelVar(target, key)\n\n const state = target._namespace.__STATE_NAMESPACE__.get(key) || {}\n if (!state.plugins)\n state.plugins = []\n state.plugins.push(...plugins)\n setState(target, key, state)\n }\n}\n\nexport function Interceptor(...interceptors: string[]): any {\n return (target: any, key?: PropertyKey) => {\n if (!key)\n key = '__CLASS'\n target = key === '__CLASS' ? target.prototype : target\n\n setModelVar(target, key)\n\n const state = target._namespace.__STATE_NAMESPACE__.get(key) || {}\n if (!state.interceptors)\n state.interceptors = []\n state.interceptors.push(...interceptors)\n setState(target, key, state)\n }\n}\nexport function Filter(filter: string): any {\n return (target: any, key?: PropertyKey) => {\n if (!key)\n key = '__CLASS'\n target = key === '__CLASS' ? target.prototype : target\n\n setModelVar(target, key)\n\n const state = target._namespace.__STATE_NAMESPACE__.get(key) || {}\n state.filter = filter\n setState(target, key, state)\n }\n}\n","export * from './context'\nexport * from './types'\nexport * from './core'\nexport * from './decorators'\nexport * from './exception'\nexport * from './pipe'\nexport * from './meta'\nexport * from 'phecda-core'\nexport * from './helper'\nexport * from './common'\nexport * from './modules'\nexport * from './compiler'\nexport * from './utils'\n","import { Empty } from 'phecda-core'\nimport { UNMOUNT_SYMBOL } from '../common'\nimport { emitter } from '../core'\n\n@Empty\nexport class Dev {\n protected readonly emitter = emitter\n private readonly [UNMOUNT_SYMBOL]: (() => void)[] = []\n\n onUnmount(cb: () => void) {\n this[UNMOUNT_SYMBOL].push(cb)\n }\n}\n","import { getSymbol } from 'phecda-core'\nimport { Context, addFilter } from '../context'\nimport type { Exception } from '../exception'\nimport type { P } from '../types'\nimport { Dev } from './dev'\n\nexport abstract class PFilter<C = any, E extends Exception = Exception > extends Dev {\n readonly key: string\n constructor(tag?: string) {\n super()\n this.key = tag || getSymbol(this)\n\n addFilter(this.key, this.use.bind(this))\n this.onUnmount(() => {\n delete Context.filterRecord[this.key]\n })\n }\n\n abstract use(error: Error | E, tag?: string, ctx?: C): P.Error\n}\n","import { getSymbol } from 'phecda-core'\nimport { Context, addGuard } from '../context'\nimport { Dev } from './dev'\n\nexport abstract class PGuard<C = any> extends Dev {\n abstract use(tag: string, ctx: C): Promise<boolean> | boolean\n readonly key: string\n constructor(tag?: string) {\n super()\n this.key = tag || getSymbol(this)\n\n addGuard(this.key, this.use.bind(this))\n\n this.onUnmount(() => {\n delete Context.guardRecord[this.key]\n })\n }\n}\n","import { getSymbol } from 'phecda-core'\nimport { Context, addInterceptor } from '../context'\nimport { Dev } from './dev'\n\nexport abstract class PInterceptor<C = any> extends Dev {\n abstract use(tag: string, ctx: C): Function | Promise<Function> | any\n readonly key: string\n\n constructor(tag?: string) {\n super()\n\n this.key = tag || getSymbol(this)\n\n this.onUnmount(() => {\n delete Context.interceptorRecord[this.key]\n })\n addInterceptor(this.key, this.use.bind(this))\n }\n}\n","import { getSymbol } from 'phecda-core'\nimport { Context, addPipe } from '../context'\nimport { Dev } from './dev'\nexport abstract class PPipe<C = any> extends Dev {\n readonly key: string\n\n constructor(tag?: string) {\n super()\n\n this.key = tag || getSymbol(this)\n addPipe(this.key, this.use.bind(this))\n this.onUnmount(() => {\n delete Context.pipeRecord[this.key]\n })\n }\n\n abstract use(param: { arg: any; option?: any; key: string; type: string; index: number; reflect: any }, tag: string, ctx: C): any\n}\n","import { getSymbol } from 'phecda-core'\nimport { Context, addPlugin } from '../context'\nimport { Dev } from '../modules/dev'\n\nexport abstract class PPlugin extends Dev {\n readonly key: string\n constructor(tag?: string) {\n super()\n this.key = tag || getSymbol(this)\n\n addPlugin(this.key, this.use.bind(this))\n\n this.onUnmount(() => {\n delete Context.pluginRecord[this.key]\n })\n }\n\n abstract use(...args: any): void\n}\n","import { getSymbol } from 'phecda-core'\nimport type { P } from '../types'\nimport { Context, addFilter, addGuard, addInterceptor, addPipe, addPlugin } from '../context'\nimport type { Exception } from '../exception'\nimport { Dev } from './dev'\n\nexport interface PModule<C = any> {\n\n intercept(tag: string, ctx: C): Function | Promise<Function> | any\n\n guard(tag: string, ctx: C): Promise<boolean> | boolean\n\n pipe(param: { arg: any; option?: any; key: string; type: string; index: number; reflect: any }, tag: string, ctx: C): any\n\n filter< E extends Exception = Exception>(error: Error | E, tag?: string, ctx?: C): P.Error\n\n plugin(...args: any): void\n}\n\nexport class PModule extends Dev {\n readonly key: string\n\n constructor(tag?: string) {\n super()\n\n const key = this.key = tag || getSymbol(this)\n\n if (this.pipe) {\n addPipe(key, this.pipe.bind(this))\n this.onUnmount(() => {\n delete Context.pipeRecord[key]\n })\n }\n\n if (this.plugin) {\n addPlugin(key, this.plugin.bind(this))\n\n this.onUnmount(() => {\n delete Context.pluginRecord[key]\n })\n }\n if (this.intercept) {\n addInterceptor(key, this.intercept.bind(this))\n\n this.onUnmount(() => {\n delete Context.interceptorRecord[key]\n })\n }\n if (this.guard) {\n addGuard(key, this.guard.bind(this))\n\n this.onUnmount(() => {\n delete Context.guardRecord[key]\n })\n }\n\n if (this.filter) {\n addFilter(key, this.filter.bind(this))\n this.onUnmount(() => {\n delete Context.filterRecord[key]\n })\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAASA,eAAAA,cAAaC,YAAAA,iBAAgB;;;ACAtC,SAASC,aAAaC,gBAAgB;AAE/B,SAASC,UAAUC,MAAcC,KAAkB;AACxD,SAAO,CAACC,QAAaC,GAAgBC,UAAkB;AACrDC,gBAAYH,QAAQC,CAAAA;AAEpB,UAAMG,QAAQJ,OAAOK,WAAWC,oBAAoBC,IAAIN,CAAAA,KAAM,CAAC;AAC/D,QAAI,CAACG,MAAMI;AACTJ,YAAMI,SAAS,CAAA;AACjB,UAAMC,YAAYL,MAAMI,OAAOE,KAAK,CAACC,SAAcA,KAAKT,UAAUA,KAAAA;AAClE,QAAIO;AACFG,aAAOC,OAAOJ,WAAW;QAAEX;QAAMC;MAAI,CAAA;;AAGrCK,YAAMI,OAAOM,KAAK;QAAEhB;QAAMC;QAAKG;MAAM,CAAA;AAEvCa,aAASf,QAAQC,GAAGG,KAAAA;EACtB;AACF;AAhBgBP;AAkBT,SAASmB,KAAKjB,KAAckB,MAAY;AAC7C,SAAO,CAACjB,QAAaC,GAAgBC,UAAkB;AACrDC,gBAAYH,QAAQC,CAAAA;AAEpB,UAAMG,QAAQJ,OAAOK,WAAWC,oBAAoBC,IAAIN,CAAAA,KAAM,CAAC;AAE/D,QAAI,CAACG,MAAMI;AACTJ,YAAMI,SAAS,CAAA;AAEjB,UAAMC,YAAYL,MAAMI,OAAOE,KAAK,CAACC,SAAcA,KAAKT,UAAUA,KAAAA;AAClE,QAAIO;AACFG,aAAOC,OAAOJ,WAAW;QAAES,MAAMnB;QAAKoB,UAAUF;MAAK,CAAA;;AAGrDb,YAAMI,OAAOM,KAAK;QAAEI,MAAMnB;QAAKoB,UAAUF;QAAMf;MAAM,CAAA;AAEvDa,aAASf,QAAQC,GAAGG,KAAAA;EACtB;AACF;AAlBgBY;AAoBT,SAASI,KAAKrB,MAAM,IAAI;AAC7B,SAAOF,UAAU,QAAQE,GAAAA;AAC3B;AAFgBqB;AAIT,SAASC,KAAKtB,KAAa;AAChC,SAAOF,UAAU,WAAWE,IAAIuB,YAAW,CAAA;AAC7C;AAFgBD;AAIT,SAASE,MAAMxB,MAAM,IAAI;AAC9B,SAAOF,UAAU,SAASE,GAAAA;AAC5B;AAFgBwB;AAGT,SAASC,MAAMzB,KAAa;AACjC,SAAOF,UAAU,UAAUE,GAAAA;AAC7B;AAFgByB;AAKT,SAASC,MAAM;AACpB,SAAO5B,UAAU,UAAU,EAAA;AAC7B;AAFgB4B;;;ACxDhB,SAASC,eAAAA,cAAaC,YAAAA,iBAAgB;AAE/B,SAASC,MAAMC,OAAeC,MAAoB;AACvD,SAAO,CAACC,QAAaC,QAAsB;AACzC,QAAI,CAACA;AACHA,YAAM;AACRD,aAASC,QAAQ,YAAYD,OAAOE,YAAYF;AAEhDG,IAAAA,aAAYH,QAAQC,GAAAA;AAEpB,UAAMG,QAAQJ,OAAOK,WAAWC,oBAAoBC,IAAIN,GAAAA,KAAQ,CAAC;AACjEG,UAAMI,OAAO;MACXV;MACAC;IACF;AACAU,IAAAA,UAAST,QAAQC,KAAKG,KAAAA;EACxB;AACF;AAfgBP;AAiBT,SAASa,IAAIZ,OAAe;AACjC,SAAOD,MAAMC,OAAO,KAAA;AACtB;AAFgBY;AAIT,SAASC,KAAKb,OAAe;AAClC,SAAOD,MAAMC,OAAO,MAAA;AACtB;AAFgBa;AAGT,SAASC,IAAId,OAAe;AACjC,SAAOD,MAAMC,OAAO,KAAA;AACtB;AAFgBc;AAIT,SAASC,MAAMf,OAAe;AACnC,SAAOD,MAAMC,OAAO,OAAA;AACtB;AAFgBe;AAGT,SAASC,OAAOhB,OAAe;AACpC,SAAOD,MAAMC,OAAO,QAAA;AACtB;AAFgBgB;AAIT,SAASC,WAAWjB,QAAQ,IAAI;AACrC,SAAOD,MAAMC,KAAAA;AACf;AAFgBiB;AAIT,SAASC,OAAOC,OAAoC;AACzD,SAAO,CAACjB,QAAaC,QAAsB;AACzC,QAAI,CAACA;AACHA,YAAM;AACRD,aAASC,QAAQ,YAAYD,OAAOE,YAAYF;AAChDG,IAAAA,aAAYH,QAAQC,GAAAA;AACpB,UAAMG,QAAQJ,OAAOK,WAAWC,oBAAoBC,IAAIN,GAAAA,KAAQ,CAAC;AACjE,QAAI,CAACG,MAAMc;AACTd,YAAMc,MAAM,CAAC;AAEfd,UAAMc,IAAInB,OAAOkB;AACjBR,IAAAA,UAAST,QAAQC,KAAKG,KAAAA;EACxB;AACF;AAbgBY;AAcT,SAASG,MAAMC,UAAU,MAAM;AACpC,SAAO,CAACpB,QAAaC,QAAsB;AACzC,QAAI,CAACA;AACHA,YAAM;AACRD,aAASC,QAAQ,YAAYD,OAAOE,YAAYF;AAChDG,IAAAA,aAAYH,QAAQC,GAAAA;AACpB,UAAMG,QAAQJ,OAAOK,WAAWC,oBAAoBC,IAAIN,GAAAA,KAAQ,CAAC;AACjE,QAAI,CAACG,MAAMc;AACTd,YAAMc,MAAM,CAAC;AAEfd,UAAMc,IAAIE,UAAUA;AACpBX,IAAAA,UAAST,QAAQC,KAAKG,KAAAA;EACxB;AACF;AAbgBe;;;ACvDhB,SAASE,eAAAA,cAAaC,YAAAA,iBAAgB;AAE/B,SAASC,SAASC,QAAuB;AAC9C,SAAO,CAACC,QAAaC,QAAsB;AACzC,QAAI,CAACA;AACHA,YAAM;AACRD,aAASC,QAAQ,YAAYD,OAAOE,YAAYF;AAEhDG,IAAAA,aAAYH,QAAQC,GAAAA;AAEpB,UAAMG,QAAQJ,OAAOK,WAAWC,oBAAoBC,IAAIN,GAAAA,KAAQ,CAAC;AACjE,QAAI,CAACG,MAAML;AACTK,YAAML,SAAS,CAAA;AACjBK,UAAML,OAAOS,KAAI,GAAIT,MAAAA;AACrBU,IAAAA,UAAST,QAAQC,KAAKG,KAAAA;EACxB;AACF;AAdgBN;AAgBT,SAASY,UAAUC,SAAwB;AAChD,SAAO,CAACX,QAAaC,QAAsB;AACzC,QAAI,CAACA;AACHA,YAAM;AACRD,aAASC,QAAQ,YAAYD,OAAOE,YAAYF;AAEhDG,IAAAA,aAAYH,QAAQC,GAAAA;AAEpB,UAAMG,QAAQJ,OAAOK,WAAWC,oBAAoBC,IAAIN,GAAAA,KAAQ,CAAC;AACjE,QAAI,CAACG,MAAMO;AACTP,YAAMO,UAAU,CAAA;AAClBP,UAAMO,QAAQH,KAAI,GAAIG,OAAAA;AACtBF,IAAAA,UAAST,QAAQC,KAAKG,KAAAA;EACxB;AACF;AAdgBM;AAgBT,SAASE,eAAeC,cAA6B;AAC1D,SAAO,CAACb,QAAaC,QAAsB;AACzC,QAAI,CAACA;AACHA,YAAM;AACRD,aAASC,QAAQ,YAAYD,OAAOE,YAAYF;AAEhDG,IAAAA,aAAYH,QAAQC,GAAAA;AAEpB,UAAMG,QAAQJ,OAAOK,WAAWC,oBAAoBC,IAAIN,GAAAA,KAAQ,CAAC;AACjE,QAAI,CAACG,MAAMS;AACTT,YAAMS,eAAe,CAAA;AACvBT,UAAMS,aAAaL,KAAI,GAAIK,YAAAA;AAC3BJ,IAAAA,UAAST,QAAQC,KAAKG,KAAAA;EACxB;AACF;AAdgBQ;AAeT,SAASE,OAAOC,QAAqB;AAC1C,SAAO,CAACf,QAAaC,QAAsB;AACzC,QAAI,CAACA;AACHA,YAAM;AACRD,aAASC,QAAQ,YAAYD,OAAOE,YAAYF;AAEhDG,IAAAA,aAAYH,QAAQC,GAAAA;AAEpB,UAAMG,QAAQJ,OAAOK,WAAWC,oBAAoBC,IAAIN,GAAAA,KAAQ,CAAC;AACjEG,UAAMW,SAASA;AACfN,IAAAA,UAAST,QAAQC,KAAKG,KAAAA;EACxB;AACF;AAZgBU;;;AH/CT,SAASE,OAAOC,MAAcC,OAAe;AAClD,SAAO,CAACC,QAAaC,MAAmB;AACtCC,IAAAA,aAAYF,QAAQC,CAAAA;AACpB,UAAME,QAAQH,OAAOI,WAAWC,oBAAoBC,IAAIL,CAAAA,KAAM,CAAC;AAC/D,QAAI,CAACE,MAAMI;AACTJ,YAAMI,SAAS,CAAC;AAElBJ,UAAMI,OAAOT,QAAQC;AACrBS,IAAAA,UAASR,QAAQC,GAAGE,KAAAA;EACtB;AACF;AAVgBN;AAYT,SAASY,OAAOC,KAAaX,OAAY;AAC9C,SAAO,CAACC,QAAaC,MAAoB;AACvC,QAAI,CAACA,GAAG;AACNA,UAAI;AACJD,eAASA,OAAOW;IAClB;AAEAT,IAAAA,aAAYF,QAAQC,CAAAA;AACpB,UAAME,QAAQH,OAAOI,WAAWC,oBAAoBC,IAAIL,CAAAA,KAAM,CAAC;AAC/D,QAAI,CAACE,MAAMS;AACTT,YAAMS,SAAS,CAAC;AAElBT,UAAMS,OAAOF,OAAOX;AACpBS,IAAAA,UAASR,QAAQC,GAAGE,KAAAA;EACtB;AACF;AAfgBM;;;AIPhB,cAAc;;;ACPd,SAASI,aAAa;;;;;;;;;;;AAKtB,IAAaC,MAAN,6BAAAA,KAAA;EACcC,UAAUA;EACZ,CAACC,kBAAkC,CAAA;EAEpDC,UAAUC,IAAgB;AACxB,SAAKF,gBAAgBG,KAAKD,EAAAA;EAC5B;AACF,GAPO;AAAMJ,MAAAA,WAAAA;EADZM;GACYN,GAAAA;;;ACLb,SAASO,iBAAiB;AAMnB,IAAeC,UAAf,cAA0EC,IAAAA;EACtEC;EACTC,YAAYC,KAAc;AACxB,UAAK;AACL,SAAKF,MAAME,OAAOC,UAAU,IAAI;AAEhCC,cAAU,KAAKJ,KAAK,KAAKK,IAAIC,KAAK,IAAI,CAAA;AACtC,SAAKC,UAAU,MAAM;AACnB,aAAOC,QAAQC,aAAa,KAAKT;IACnC,CAAA;EACF;AAGF;AAbsBF;;;ACNtB,SAASY,aAAAA,kBAAiB;AAInB,IAAeC,SAAf,cAAuCC,IAAAA;EAEnCC;EACTC,YAAYC,KAAc;AACxB,UAAK;AACL,SAAKF,MAAME,OAAOC,WAAU,IAAI;AAEhCC,aAAS,KAAKJ,KAAK,KAAKK,IAAIC,KAAK,IAAI,CAAA;AAErC,SAAKC,UAAU,MAAM;AACnB,aAAOC,QAAQC,YAAY,KAAKT;IAClC,CAAA;EACF;AACF;AAbsBF;;;ACJtB,SAASY,aAAAA,kBAAiB;AAInB,IAAeC,eAAf,cAA6CC,IAAAA;EAEzCC;EAETC,YAAYC,KAAc;AACxB,UAAK;AAEL,SAAKF,MAAME,OAAOC,WAAU,IAAI;AAEhC,SAAKC,UAAU,MAAM;AACnB,aAAOC,QAAQC,kBAAkB,KAAKN;IACxC,CAAA;AACAO,mBAAe,KAAKP,KAAK,KAAKQ,IAAIC,KAAK,IAAI,CAAA;EAC7C;AACF;AAdsBX;;;ACJtB,SAASY,aAAAA,kBAAiB;AAGnB,IAAeC,QAAf,cAAsCC,IAAAA;EAClCC;EAETC,YAAYC,KAAc;AACxB,UAAK;AAEL,SAAKF,MAAME,OAAOC,WAAU,IAAI;AAChCC,YAAQ,KAAKJ,KAAK,KAAKK,IAAIC,KAAK,IAAI,CAAA;AACpC,SAAKC,UAAU,MAAM;AACnB,aAAOC,QAAQC,WAAW,KAAKT;IACjC,CAAA;EACF;AAGF;AAdsBF;;;ACHtB,SAASY,aAAAA,kBAAiB;AAInB,IAAeC,UAAf,cAA+BC,IAAAA;EAC3BC;EACTC,YAAYC,KAAc;AACxB,UAAK;AACL,SAAKF,MAAME,OAAOC,WAAU,IAAI;AAEhCC,cAAU,KAAKJ,KAAK,KAAKK,IAAIC,KAAK,IAAI,CAAA;AAEtC,SAAKC,UAAU,MAAM;AACnB,aAAOC,QAAQC,aAAa,KAAKT;IACnC,CAAA;EACF;AAGF;AAdsBF;;;ACJtB,SAASY,aAAAA,kBAAiB;AAmBnB,IAAMC,UAAN,cAAsBC,IAAAA;EAClBC;EAETC,YAAYC,KAAc;AACxB,UAAK;AAEL,UAAMF,MAAM,KAAKA,MAAME,OAAOC,WAAU,IAAI;AAE5C,QAAI,KAAKC,MAAM;AACbC,cAAQL,KAAK,KAAKI,KAAKE,KAAK,IAAI,CAAA;AAChC,WAAKC,UAAU,MAAM;AACnB,eAAOC,QAAQC,WAAWT;MAC5B,CAAA;IACF;AAEA,QAAI,KAAKU,QAAQ;AACfC,gBAAUX,KAAK,KAAKU,OAAOJ,KAAK,IAAI,CAAA;AAEpC,WAAKC,UAAU,MAAM;AACnB,eAAOC,QAAQI,aAAaZ;MAC9B,CAAA;IACF;AACA,QAAI,KAAKa,WAAW;AAClBC,qBAAed,KAAK,KAAKa,UAAUP,KAAK,IAAI,CAAA;AAE5C,WAAKC,UAAU,MAAM;AACnB,eAAOC,QAAQO,kBAAkBf;MACnC,CAAA;IACF;AACA,QAAI,KAAKgB,OAAO;AACdC,eAASjB,KAAK,KAAKgB,MAAMV,KAAK,IAAI,CAAA;AAElC,WAAKC,UAAU,MAAM;AACnB,eAAOC,QAAQU,YAAYlB;MAC7B,CAAA;IACF;AAEA,QAAI,KAAKmB,QAAQ;AACfC,gBAAUpB,KAAK,KAAKmB,OAAOb,KAAK,IAAI,CAAA;AACpC,WAAKC,UAAU,MAAM;AACnB,eAAOC,QAAQa,aAAarB;MAC9B,CAAA;IACF;EACF;AACF;AA5CaF;","names":["setModelVar","setState","setModelVar","setState","BaseParam","type","key","target","k","index","setModelVar","state","_namespace","__STATE_NAMESPACE__","get","params","existItem","find","item","Object","assign","push","setState","Pipe","opts","pipe","pipeOpts","Body","Head","toLowerCase","Query","Param","Arg","setModelVar","setState","Route","route","type","target","key","prototype","setModelVar","state","_namespace","__STATE_NAMESPACE__","get","http","setState","Get","Post","Put","Patch","Delete","Controller","Rpc","types","rpc","Event","isEvent","setModelVar","setState","Guard","guards","target","key","prototype","setModelVar","state","_namespace","__STATE_NAMESPACE__","get","push","setState","Plugin","plugins","Interceptor","interceptors","Filter","filter","Header","name","value","target","k","setModelVar","state","_namespace","__STATE_NAMESPACE__","get","header","setState","Define","key","prototype","define","Empty","Dev","emitter","UNMOUNT_SYMBOL","onUnmount","cb","push","Empty","getSymbol","PFilter","Dev","key","constructor","tag","getSymbol","addFilter","use","bind","onUnmount","Context","filterRecord","getSymbol","PGuard","Dev","key","constructor","tag","getSymbol","addGuard","use","bind","onUnmount","Context","guardRecord","getSymbol","PInterceptor","Dev","key","constructor","tag","getSymbol","onUnmount","Context","interceptorRecord","addInterceptor","use","bind","getSymbol","PPipe","Dev","key","constructor","tag","getSymbol","addPipe","use","bind","onUnmount","Context","pipeRecord","getSymbol","PPlugin","Dev","key","constructor","tag","getSymbol","addPlugin","use","bind","onUnmount","Context","pluginRecord","getSymbol","PModule","Dev","key","constructor","tag","getSymbol","pipe","addPipe","bind","onUnmount","Context","pipeRecord","plugin","addPlugin","pluginRecord","intercept","addInterceptor","interceptorRecord","guard","addGuard","guardRecord","filter","addFilter","filterRecord"]}
1
+ {"version":3,"sources":["../src/decorators/index.ts","../src/decorators/param.ts","../src/decorators/route.ts","../src/decorators/aop.ts","../src/index.ts","../src/modules/dev.ts","../src/modules/filter.ts","../src/modules/guard.ts","../src/modules/interceptor.ts","../src/modules/pipe.ts","../src/modules/plugin.ts","../src/modules/module.ts"],"sourcesContent":["import { setModelVar, setState } from 'phecda-core'\n\nexport function Header(name: string, value: string) {\n return (target: any, k: PropertyKey) => {\n setModelVar(target, k)\n const state = target._namespace.__STATE_NAMESPACE__.get(k) || {}\n if (!state.header)\n state.header = {}\n\n state.header[name] = value\n setState(target, k, state)\n }\n}\n\nexport function Define(key: string, value: any) {\n return (target: any, k?: PropertyKey) => {\n if (!k) {\n k = '__CLASS'\n target = target.prototype\n }\n\n setModelVar(target, k)\n const state = target._namespace.__STATE_NAMESPACE__.get(k) || {}\n if (!state.define)\n state.define = {}\n\n state.define[key] = value\n setState(target, k, state)\n }\n}\n\nexport * from './param'\nexport * from './route'\nexport * from './aop'\n","import { setModelVar, setState } from 'phecda-core'\n\nexport function BaseParam(type: string, key: string): any {\n return (target: any, k: PropertyKey, index: number) => {\n setModelVar(target, k)\n\n const state = target._namespace.__STATE_NAMESPACE__.get(k) || {}\n if (!state.params)\n state.params = []\n const existItem = state.params.find((item: any) => item.index === index)\n if (existItem)\n Object.assign(existItem, { type, key })\n\n else\n state.params.push({ type, key, index })\n\n setState(target, k, state)\n }\n}\n\nexport function Pipe(key?: string, opts?: any) {\n return (target: any, k: PropertyKey, index: number) => {\n setModelVar(target, k)\n\n const state = target._namespace.__STATE_NAMESPACE__.get(k) || {}\n\n if (!state.params)\n state.params = []\n\n const existItem = state.params.find((item: any) => item.index === index)\n if (existItem)\n Object.assign(existItem, { pipe: key, pipeOpts: opts })\n\n else\n state.params.push({ pipe: key, pipeOpts: opts, index })\n\n setState(target, k, state)\n }\n}\n\nexport function Body(key = '') {\n return BaseParam('body', key)\n}\n// req.headers\nexport function Head(key: string) {\n return BaseParam('headers', key.toLowerCase())\n}\n\nexport function Query(key = '') {\n return BaseParam('query', key)\n}\nexport function Param(key: string) {\n return BaseParam('params', key)\n}\n\n// work for micro service\nexport function Arg() {\n return BaseParam('params', '')\n}\n","import { setModelVar, setState } from 'phecda-core'\n\nexport function Route(route: string, type?: string): any {\n return (target: any, key?: PropertyKey) => {\n if (!key)\n key = '__CLASS'\n target = key === '__CLASS' ? target.prototype : target\n\n setModelVar(target, key)\n\n const state = target._namespace.__STATE_NAMESPACE__.get(key) || {}\n state.http = {\n route,\n type,\n }\n setState(target, key, state)\n }\n}\n\nexport function Get(route: string) {\n return Route(route, 'get')\n}\n\nexport function Post(route: string) {\n return Route(route, 'post')\n}\nexport function Put(route: string) {\n return Route(route, 'put')\n}\n\nexport function Patch(route: string) {\n return Route(route, 'patch')\n}\nexport function Delete(route: string) {\n return Route(route, 'delete')\n}\n\nexport function Controller(route = '') {\n return Route(route)\n}\n\nexport function Rpc(...types: ('mq' | 'redis' | string)[]) {\n return (target: any, key?: PropertyKey) => {\n if (!key)\n key = '__CLASS'\n target = key === '__CLASS' ? target.prototype : target\n setModelVar(target, key)\n const state = target._namespace.__STATE_NAMESPACE__.get(key) || {}\n if (!state.rpc)\n state.rpc = {}\n\n state.rpc.type = types\n setState(target, key, state)\n }\n}\nexport function Event(isEvent = true) {\n return (target: any, key?: PropertyKey) => {\n if (!key)\n key = '__CLASS'\n target = key === '__CLASS' ? target.prototype : target\n setModelVar(target, key)\n const state = target._namespace.__STATE_NAMESPACE__.get(key) || {}\n if (!state.rpc)\n state.rpc = {}\n\n state.rpc.isEvent = isEvent\n setState(target, key, state)\n }\n}\n","import { setModelVar, setState } from 'phecda-core'\n\nexport function Guard(...guards: string[]): any {\n return (target: any, key?: PropertyKey) => {\n if (!key)\n key = '__CLASS'\n target = key === '__CLASS' ? target.prototype : target\n\n setModelVar(target, key)\n\n const state = target._namespace.__STATE_NAMESPACE__.get(key) || {}\n if (!state.guards)\n state.guards = []\n state.guards.push(...guards)\n setState(target, key, state)\n }\n}\n\nexport function Plugin(...plugins: string[]): any {\n return (target: any, key?: PropertyKey) => {\n if (!key)\n key = '__CLASS'\n target = key === '__CLASS' ? target.prototype : target\n\n setModelVar(target, key)\n\n const state = target._namespace.__STATE_NAMESPACE__.get(key) || {}\n if (!state.plugins)\n state.plugins = []\n state.plugins.push(...plugins)\n setState(target, key, state)\n }\n}\n\nexport function Interceptor(...interceptors: string[]): any {\n return (target: any, key?: PropertyKey) => {\n if (!key)\n key = '__CLASS'\n target = key === '__CLASS' ? target.prototype : target\n\n setModelVar(target, key)\n\n const state = target._namespace.__STATE_NAMESPACE__.get(key) || {}\n if (!state.interceptors)\n state.interceptors = []\n state.interceptors.push(...interceptors)\n setState(target, key, state)\n }\n}\nexport function Filter(filter: string): any {\n return (target: any, key?: PropertyKey) => {\n if (!key)\n key = '__CLASS'\n target = key === '__CLASS' ? target.prototype : target\n\n setModelVar(target, key)\n\n const state = target._namespace.__STATE_NAMESPACE__.get(key) || {}\n state.filter = filter\n setState(target, key, state)\n }\n}\n","export * from './context'\nexport * from './types'\nexport * from './core'\nexport * from './decorators'\nexport * from './exception'\nexport * from './pipe'\nexport * from './meta'\nexport * from 'phecda-core'\nexport * from './helper'\nexport * from './common'\nexport * from './modules'\nexport * from './compiler'\nexport * from './utils'\n","import { Empty } from 'phecda-core'\nimport { UNMOUNT_SYMBOL } from '../common'\nimport { emitter } from '../core'\n\n@Empty\nexport class Dev {\n protected readonly emitter = emitter\n private readonly [UNMOUNT_SYMBOL]: (() => void)[] = []\n\n onUnmount(cb: () => void) {\n this[UNMOUNT_SYMBOL].push(cb)\n }\n}\n","import { getSymbol } from 'phecda-core'\nimport { Context, addFilter } from '../context'\nimport type { Exception } from '../exception'\nimport type { P } from '../types'\nimport { Dev } from './dev'\n\nexport abstract class PFilter<C = any, E extends Exception = Exception > extends Dev {\n readonly key: string\n constructor(tag?: string) {\n super()\n this.key = tag || getSymbol(this)\n\n addFilter(this.key, this.use.bind(this))\n this.onUnmount(() => {\n delete Context.filterRecord[this.key]\n })\n }\n\n abstract use(error: Error | E, tag?: string, ctx?: C): P.Error\n}\n","import { getSymbol } from 'phecda-core'\nimport { Context, addGuard } from '../context'\nimport { Dev } from './dev'\n\nexport abstract class PGuard<C = any> extends Dev {\n abstract use(tag: string, ctx: C): Promise<boolean> | boolean\n readonly key: string\n constructor(tag?: string) {\n super()\n this.key = tag || getSymbol(this)\n\n addGuard(this.key, this.use.bind(this))\n\n this.onUnmount(() => {\n delete Context.guardRecord[this.key]\n })\n }\n}\n","import { getSymbol } from 'phecda-core'\nimport { Context, addInterceptor } from '../context'\nimport { Dev } from './dev'\n\nexport abstract class PInterceptor<C = any> extends Dev {\n abstract use(tag: string, ctx: C): Function | Promise<Function> | any\n readonly key: string\n\n constructor(tag?: string) {\n super()\n\n this.key = tag || getSymbol(this)\n\n this.onUnmount(() => {\n delete Context.interceptorRecord[this.key]\n })\n addInterceptor(this.key, this.use.bind(this))\n }\n}\n","import { getSymbol } from 'phecda-core'\nimport { Context, addPipe } from '../context'\nimport { Dev } from './dev'\nexport abstract class PPipe<C = any> extends Dev {\n readonly key: string\n\n constructor(tag?: string) {\n super()\n\n this.key = tag || getSymbol(this)\n addPipe(this.key, this.use.bind(this))\n this.onUnmount(() => {\n delete Context.pipeRecord[this.key]\n })\n }\n\n abstract use(param: { arg: any; option?: any; key: string; type: string; index: number; reflect: any }, tag: string, ctx: C): any\n}\n","import { getSymbol } from 'phecda-core'\nimport { Context, addPlugin } from '../context'\nimport { Dev } from '../modules/dev'\n\nexport abstract class PPlugin extends Dev {\n readonly key: string\n constructor(tag?: string) {\n super()\n this.key = tag || getSymbol(this)\n\n addPlugin(this.key, this.use.bind(this))\n\n this.onUnmount(() => {\n delete Context.pluginRecord[this.key]\n })\n }\n\n abstract use(...args: any): void\n}\n","import { getSymbol } from 'phecda-core'\nimport type { P } from '../types'\nimport { Context, addFilter, addGuard, addInterceptor, addPipe, addPlugin } from '../context'\nimport type { Exception } from '../exception'\nimport { Dev } from './dev'\n\nexport interface PModule<C = any> {\n\n intercept(tag: string, ctx: C): Function | Promise<Function> | any\n\n guard(tag: string, ctx: C): Promise<boolean> | boolean\n\n pipe(param: { arg: any; option?: any; key: string; type: string; index: number; reflect: any }, tag: string, ctx: C): any\n\n filter< E extends Exception = Exception>(error: Error | E, tag?: string, ctx?: C): P.Error\n\n plugin(...args: any): void\n}\n\nexport class PModule extends Dev {\n readonly key: string\n\n constructor(tag?: string) {\n super()\n\n const key = this.key = tag || getSymbol(this)\n\n if (this.pipe) {\n addPipe(key, this.pipe.bind(this))\n this.onUnmount(() => {\n delete Context.pipeRecord[key]\n })\n }\n\n if (this.plugin) {\n addPlugin(key, this.plugin.bind(this))\n\n this.onUnmount(() => {\n delete Context.pluginRecord[key]\n })\n }\n if (this.intercept) {\n addInterceptor(key, this.intercept.bind(this))\n\n this.onUnmount(() => {\n delete Context.interceptorRecord[key]\n })\n }\n if (this.guard) {\n addGuard(key, this.guard.bind(this))\n\n this.onUnmount(() => {\n delete Context.guardRecord[key]\n })\n }\n\n if (this.filter) {\n addFilter(key, this.filter.bind(this))\n this.onUnmount(() => {\n delete Context.filterRecord[key]\n })\n }\n }\n}\n"],"mappings":"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","names":["setModelVar","setState","setModelVar","setState","BaseParam","type","key","target","k","index","setModelVar","state","_namespace","__STATE_NAMESPACE__","get","params","existItem","find","item","Object","assign","push","setState","Pipe","opts","pipe","pipeOpts","Body","Head","toLowerCase","Query","Param","Arg","setModelVar","setState","Route","route","type","target","key","prototype","setModelVar","state","_namespace","__STATE_NAMESPACE__","get","http","setState","Get","Post","Put","Patch","Delete","Controller","Rpc","types","rpc","Event","isEvent","setModelVar","setState","Guard","guards","target","key","prototype","setModelVar","state","_namespace","__STATE_NAMESPACE__","get","push","setState","Plugin","plugins","Interceptor","interceptors","Filter","filter","Header","name","value","target","k","setModelVar","state","_namespace","__STATE_NAMESPACE__","get","header","setState","Define","key","prototype","define","Empty","Dev","emitter","UNMOUNT_SYMBOL","onUnmount","cb","push","Empty","getSymbol","PFilter","Dev","key","constructor","tag","getSymbol","addFilter","use","bind","onUnmount","Context","filterRecord","getSymbol","PGuard","Dev","key","constructor","tag","getSymbol","addGuard","use","bind","onUnmount","Context","guardRecord","getSymbol","PInterceptor","Dev","key","constructor","tag","getSymbol","onUnmount","Context","interceptorRecord","addInterceptor","use","bind","getSymbol","PPipe","Dev","key","constructor","tag","getSymbol","addPipe","use","bind","onUnmount","Context","pipeRecord","getSymbol","PPlugin","Dev","key","constructor","tag","getSymbol","addPlugin","use","bind","onUnmount","Context","pluginRecord","getSymbol","PModule","Dev","key","constructor","tag","getSymbol","pipe","addPipe","bind","onUnmount","Context","pipeRecord","plugin","addPlugin","pluginRecord","intercept","addInterceptor","interceptorRecord","guard","addGuard","guardRecord","filter","addFilter","filterRecord"]}
@@ -1,6 +1,5 @@
1
1
  import amqplib from 'amqplib';
2
- import { M as Meta, F as Factory } from '../../core-c27b4cf4.js';
3
- import { T as ToInstance } from '../../types-8415bd5d.js';
2
+ import { M as Meta, F as Factory, T as ToControllerMap } from '../../core-72951cf9.js';
4
3
  import 'phecda-core';
5
4
 
6
5
  interface Options {
@@ -18,6 +17,6 @@ interface RabbitmqCtx {
18
17
  }
19
18
  declare function bind(ch: amqplib.Channel, queue: string, { moduleMap, meta }: Awaited<ReturnType<typeof Factory>>, opts?: Options): Promise<void>;
20
19
 
21
- declare function createClient<S extends Record<string, any>>(ch: amqplib.Channel, queue: string, controllers: S): Promise<ToInstance<S>>;
20
+ declare function createClient<S extends Record<string, any>>(ch: amqplib.Channel, queue: string, controllers: S): Promise<ToControllerMap<S>>;
22
21
 
23
22
  export { Options, RabbitmqCtx, bind, createClient };
@@ -2,18 +2,18 @@
2
2
 
3
3
 
4
4
 
5
- var _chunk7OB6K45Tjs = require('../../chunk-7OB6K45T.js');
5
+ var _chunkJZGLQ4FQjs = require('../../chunk-JZGLQ4FQ.js');
6
6
 
7
7
 
8
8
 
9
- var _chunkAAF47ZC6js = require('../../chunk-AAF47ZC6.js');
9
+ var _chunkZZ2QKZ46js = require('../../chunk-ZZ2QKZ46.js');
10
10
 
11
11
  // src/rpc/rabbitmq/bind.ts
12
12
  async function bind(ch, queue, { moduleMap, meta }, opts) {
13
13
  const metaMap = /* @__PURE__ */ new Map();
14
14
  const existQueue = /* @__PURE__ */ new Set();
15
15
  const { globalGuards = [], globalInterceptors = [] } = opts || {};
16
- _chunk7OB6K45Tjs.isAopDepInject.call(void 0, meta, {
16
+ _chunkJZGLQ4FQjs.isAopDepInject.call(void 0, meta, {
17
17
  guards: globalGuards,
18
18
  interceptors: globalInterceptors
19
19
  });
@@ -24,14 +24,14 @@ async function bind(ch, queue, { moduleMap, meta }, opts) {
24
24
  metaMap.set(`${name}-${method}`, item);
25
25
  }
26
26
  }
27
- _chunkAAF47ZC6js.__name.call(void 0, handleMeta, "handleMeta");
27
+ _chunkZZ2QKZ46js.__name.call(void 0, handleMeta, "handleMeta");
28
28
  handleMeta();
29
29
  await ch.assertQueue(queue);
30
30
  ch.consume(queue, async (msg) => {
31
31
  if (msg) {
32
32
  const data = JSON.parse(msg.content.toString());
33
33
  const { tag, args, queue: queue2, id } = data;
34
- const context = new (0, _chunk7OB6K45Tjs.Context)(tag, {
34
+ const context = new (0, _chunkJZGLQ4FQjs.Context)(tag, {
35
35
  type: "rabbitmq",
36
36
  moduleMap,
37
37
  meta: metaMap.get(tag),
@@ -43,7 +43,7 @@ async function bind(ch, queue, { moduleMap, meta }, opts) {
43
43
  await ch.assertQueue(queue2);
44
44
  if (!metaMap.has(tag)) {
45
45
  queue2 && ch.sendToQueue(queue2, Buffer.from(JSON.stringify({
46
- data: new (0, _chunk7OB6K45Tjs.BadRequestException)(`service "${tag}" doesn't exist`).data,
46
+ data: new (0, _chunkJZGLQ4FQjs.BadRequestException)(`service "${tag}" doesn't exist`).data,
47
47
  error: true,
48
48
  id
49
49
  })));
@@ -99,13 +99,13 @@ async function bind(ch, queue, { moduleMap, meta }, opts) {
99
99
  }, {
100
100
  noAck: true
101
101
  });
102
- if (_chunkAAF47ZC6js.IS_DEV) {
102
+ if (_chunkZZ2QKZ46js.IS_DEV) {
103
103
  _optionalChain([globalThis, 'access', _2 => _2.__PS_HMR__, 'optionalAccess', _3 => _3.push, 'call', _4 => _4(async () => {
104
104
  handleMeta();
105
105
  })]);
106
106
  }
107
107
  }
108
- _chunkAAF47ZC6js.__name.call(void 0, bind, "bind");
108
+ _chunkZZ2QKZ46js.__name.call(void 0, bind, "bind");
109
109
 
110
110
  // src/rpc/rabbitmq/client.ts
111
111
  var _events = require('events');
@@ -153,7 +153,7 @@ async function createClient(ch, queue, controllers) {
153
153
  }
154
154
  return ret;
155
155
  }
156
- _chunkAAF47ZC6js.__name.call(void 0, createClient, "createClient");
156
+ _chunkZZ2QKZ46js.__name.call(void 0, createClient, "createClient");
157
157
 
158
158
 
159
159
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/rpc/rabbitmq/bind.ts","../../../src/rpc/rabbitmq/client.ts"],"names":["bind","ch","queue","moduleMap","meta","opts","metaMap","Map","existQueue","Set","globalGuards","globalInterceptors","isAopDepInject","guards","interceptors","handleMeta","item","data","rpc","method","name","type","includes","set","assertQueue","consume","msg","JSON","parse","content","toString","tag","args","id","context","Context","get","has","sendToQueue","Buffer","from","stringify","BadRequestException","error","params","filter","paramsType","useGuard","cache","useInterceptor","undefined","handleArgs","usePipe","map","key","pipe","pipeOpts","index","i","arg","reflect","funcData","ret","usePostInterceptor","e","useFilter","noAck","IS_DEV","globalThis","__PS_HMR__","push","EventEmitter","randomUUID","createClient","controllers","emitter","uniQueue","emit","Proxy","target","p","Error","isEvent","Promise","resolve","reject","once"],"mappings":"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","sourcesContent":["import type amqplib from 'amqplib'\nimport type { Factory } from '../../core'\nimport type { Meta } from '../../meta'\nimport { BadRequestException } from '../../exception'\nimport { Context, isAopDepInject } from '../../context'\nimport { IS_DEV } from '../../common'\n\nexport interface Options {\n globalGuards?: string[]\n globalInterceptors?: string[]\n}\nexport interface RabbitmqCtx {\n type: 'rabbitmq'\n meta?: Meta\n moduleMap: Record<string, any>\n ch: amqplib.Channel\n msg: amqplib.ConsumeMessage\n // JSON parse msg.content\n data: any\n [key: string]: any\n\n}\n\nexport async function bind(ch: amqplib.Channel, queue: string, { moduleMap, meta }: Awaited<ReturnType<typeof Factory>>, opts?: Options) {\n const metaMap = new Map<string, Meta>()\n\n const existQueue = new Set<string>()\n const { globalGuards = [], globalInterceptors = [] } = opts || {}\n\n isAopDepInject(meta, {\n guards: globalGuards,\n interceptors: globalInterceptors,\n })\n\n function handleMeta() {\n for (const item of meta) {\n const { data: { rpc, method, name } } = item\n\n if (rpc?.type && rpc.type.includes('mq'))\n metaMap.set(`${name}-${method}`, item)\n }\n }\n\n handleMeta()\n\n await ch.assertQueue(queue)\n\n ch.consume(queue, async (msg) => {\n if (msg) {\n const data = JSON.parse(msg.content.toString())\n const { tag, args, queue, id } = data\n const context = new Context(tag, {\n type: 'rabbitmq',\n moduleMap,\n meta: metaMap.get(tag),\n data,\n ch,\n msg,\n })\n if (!existQueue.has(queue))\n await ch.assertQueue(queue)\n if (!metaMap.has(tag)) {\n queue && ch.sendToQueue(queue, Buffer.from(JSON.stringify({\n data: new BadRequestException(`service \"${tag}\" doesn't exist`).data,\n error: true,\n id,\n })))\n\n return\n }\n\n const {\n data: {\n guards, interceptors, params, name, method, filter,\n },\n paramsType,\n } = metaMap.get(tag)!\n try {\n await context.useGuard([...globalGuards, ...guards])\n const cache = await context.useInterceptor([...globalInterceptors, ...interceptors])\n if (cache !== undefined) {\n if (queue)\n ch.sendToQueue(queue, Buffer.from(JSON.stringify({ data: cache, id })))\n\n return\n }\n const handleArgs = await context.usePipe(params.map(({ type, key, pipe, pipeOpts, index }, i) => {\n return { arg: args[i], pipe, pipeOpts, key, type, index, reflect: paramsType[index] }\n }))\n\n const funcData = await moduleMap.get(name)[method](...handleArgs)\n const ret = await context.usePostInterceptor(funcData)\n if (queue)\n ch.sendToQueue(queue, Buffer.from(JSON.stringify({ data: ret, id })))\n }\n catch (e) {\n const ret = await context.useFilter(e, filter)\n if (queue) {\n ch.sendToQueue(queue, Buffer.from(JSON.stringify({\n data: ret,\n error: true,\n id,\n })))\n }\n }\n }\n }, { noAck: true })\n\n if (IS_DEV) {\n globalThis.__PS_HMR__?.push(async () => {\n handleMeta()\n })\n }\n}\n","import { EventEmitter } from 'events'\nimport { randomUUID } from 'crypto'\nimport type amqplib from 'amqplib'\nimport type { ToInstance } from '../../types'\nexport async function createClient<S extends Record<string, any>>(ch: amqplib.Channel, queue: string, controllers: S): Promise<ToInstance<S>> {\n const ret = {} as any\n const emitter = new EventEmitter()\n const uniQueue = `PS:${randomUUID()}`\n\n await ch.assertQueue(uniQueue)\n ch.consume(uniQueue, (msg) => {\n if (!msg)\n return\n const { data, id, error } = JSON.parse(msg.content.toString())\n emitter.emit(id, data, error)\n })\n\n for (const i in controllers) {\n ret[i] = new Proxy(new controllers[i](), {\n get(target, p: string) {\n const id = randomUUID()\n if (typeof target[p] !== 'function')\n throw new Error(`\"${p}\" in \"${i}\" is not an exposed rpc `)\n\n const { tag, rpc, isEvent } = target[p]()\n if (!rpc.includes('mq'))\n throw new Error(`\"${p}\" in \"${i}\" doesn't support rabbitmq`)\n return (...args: any) => {\n ch.sendToQueue(queue, Buffer.from(\n JSON.stringify(\n {\n id,\n tag,\n args,\n queue: isEvent ? undefined : uniQueue,\n },\n ),\n ))\n if (isEvent)\n return null\n\n return new Promise((resolve, reject) => {\n emitter.once(id, (data: any, error: boolean) => {\n if (error)\n reject(data)\n\n else resolve(data)\n })\n })\n }\n },\n })\n }\n\n return ret\n}\n"]}
1
+ {"version":3,"sources":["../../../src/rpc/rabbitmq/bind.ts","../../../src/rpc/rabbitmq/client.ts"],"names":["bind","ch","queue","moduleMap","meta","opts","metaMap","Map","existQueue","Set","globalGuards","globalInterceptors","isAopDepInject","guards","interceptors","handleMeta","item","data","rpc","method","name","type","includes","set","assertQueue","consume","msg","JSON","parse","content","toString","tag","args","id","context","Context","get","has","sendToQueue","Buffer","from","stringify","BadRequestException","error","params","filter","paramsType","useGuard","cache","useInterceptor","undefined","handleArgs","usePipe","map","key","pipe","pipeOpts","index","i","arg","reflect","funcData","ret","usePostInterceptor","e","useFilter","noAck","IS_DEV","globalThis","__PS_HMR__","push","EventEmitter","randomUUID","createClient","controllers","emitter","uniQueue","emit","Proxy","target","p","Error","isEvent","Promise","resolve","reject","once"],"mappings":"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","sourcesContent":["import type amqplib from 'amqplib'\nimport type { Factory } from '../../core'\nimport type { Meta } from '../../meta'\nimport { BadRequestException } from '../../exception'\nimport { Context, isAopDepInject } from '../../context'\nimport { IS_DEV } from '../../common'\n\nexport interface Options {\n globalGuards?: string[]\n globalInterceptors?: string[]\n}\nexport interface RabbitmqCtx {\n type: 'rabbitmq'\n meta?: Meta\n moduleMap: Record<string, any>\n ch: amqplib.Channel\n msg: amqplib.ConsumeMessage\n // JSON parse msg.content\n data: any\n [key: string]: any\n\n}\n\nexport async function bind(ch: amqplib.Channel, queue: string, { moduleMap, meta }: Awaited<ReturnType<typeof Factory>>, opts?: Options) {\n const metaMap = new Map<string, Meta>()\n\n const existQueue = new Set<string>()\n const { globalGuards = [], globalInterceptors = [] } = opts || {}\n\n isAopDepInject(meta, {\n guards: globalGuards,\n interceptors: globalInterceptors,\n })\n\n function handleMeta() {\n for (const item of meta) {\n const { data: { rpc, method, name } } = item\n\n if (rpc?.type && rpc.type.includes('mq'))\n metaMap.set(`${name}-${method}`, item)\n }\n }\n\n handleMeta()\n\n await ch.assertQueue(queue)\n\n ch.consume(queue, async (msg) => {\n if (msg) {\n const data = JSON.parse(msg.content.toString())\n const { tag, args, queue, id } = data\n const context = new Context(tag, {\n type: 'rabbitmq',\n moduleMap,\n meta: metaMap.get(tag),\n data,\n ch,\n msg,\n })\n if (!existQueue.has(queue))\n await ch.assertQueue(queue)\n if (!metaMap.has(tag)) {\n queue && ch.sendToQueue(queue, Buffer.from(JSON.stringify({\n data: new BadRequestException(`service \"${tag}\" doesn't exist`).data,\n error: true,\n id,\n })))\n\n return\n }\n\n const {\n data: {\n guards, interceptors, params, name, method, filter,\n },\n paramsType,\n } = metaMap.get(tag)!\n try {\n await context.useGuard([...globalGuards, ...guards])\n const cache = await context.useInterceptor([...globalInterceptors, ...interceptors])\n if (cache !== undefined) {\n if (queue)\n ch.sendToQueue(queue, Buffer.from(JSON.stringify({ data: cache, id })))\n\n return\n }\n const handleArgs = await context.usePipe(params.map(({ type, key, pipe, pipeOpts, index }, i) => {\n return { arg: args[i], pipe, pipeOpts, key, type, index, reflect: paramsType[index] }\n }))\n\n const funcData = await moduleMap.get(name)[method](...handleArgs)\n const ret = await context.usePostInterceptor(funcData)\n if (queue)\n ch.sendToQueue(queue, Buffer.from(JSON.stringify({ data: ret, id })))\n }\n catch (e) {\n const ret = await context.useFilter(e, filter)\n if (queue) {\n ch.sendToQueue(queue, Buffer.from(JSON.stringify({\n data: ret,\n error: true,\n id,\n })))\n }\n }\n }\n }, { noAck: true })\n\n if (IS_DEV) {\n globalThis.__PS_HMR__?.push(async () => {\n handleMeta()\n })\n }\n}\n","import { EventEmitter } from 'events'\nimport { randomUUID } from 'crypto'\nimport type amqplib from 'amqplib'\nimport type { ToControllerMap } from '../../types'\nexport async function createClient<S extends Record<string, any>>(ch: amqplib.Channel, queue: string, controllers: S): Promise<ToControllerMap<S>> {\n const ret = {} as any\n const emitter = new EventEmitter()\n const uniQueue = `PS:${randomUUID()}`\n\n await ch.assertQueue(uniQueue)\n ch.consume(uniQueue, (msg) => {\n if (!msg)\n return\n const { data, id, error } = JSON.parse(msg.content.toString())\n emitter.emit(id, data, error)\n })\n\n for (const i in controllers) {\n ret[i] = new Proxy(new controllers[i](), {\n get(target, p: string) {\n const id = randomUUID()\n if (typeof target[p] !== 'function')\n throw new Error(`\"${p}\" in \"${i}\" is not an exposed rpc `)\n\n const { tag, rpc, isEvent } = target[p]()\n if (!rpc.includes('mq'))\n throw new Error(`\"${p}\" in \"${i}\" doesn't support rabbitmq`)\n return (...args: any) => {\n ch.sendToQueue(queue, Buffer.from(\n JSON.stringify(\n {\n id,\n tag,\n args,\n queue: isEvent ? undefined : uniQueue,\n },\n ),\n ))\n if (isEvent)\n return null\n\n return new Promise((resolve, reject) => {\n emitter.once(id, (data: any, error: boolean) => {\n if (error)\n reject(data)\n\n else resolve(data)\n })\n })\n }\n },\n })\n }\n\n return ret\n}\n"]}
@@ -2,11 +2,11 @@ import {
2
2
  BadRequestException,
3
3
  Context,
4
4
  isAopDepInject
5
- } from "../../chunk-GSJ5A2MA.mjs";
5
+ } from "../../chunk-ATMZNJSE.mjs";
6
6
  import {
7
7
  IS_DEV,
8
8
  __name
9
- } from "../../chunk-AYJWOIAW.mjs";
9
+ } from "../../chunk-DQUH5BP6.mjs";
10
10
 
11
11
  // src/rpc/rabbitmq/bind.ts
12
12
  async function bind(ch, queue, { moduleMap, meta }, opts) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/rpc/rabbitmq/bind.ts","../../../src/rpc/rabbitmq/client.ts"],"sourcesContent":["import type amqplib from 'amqplib'\nimport type { Factory } from '../../core'\nimport type { Meta } from '../../meta'\nimport { BadRequestException } from '../../exception'\nimport { Context, isAopDepInject } from '../../context'\nimport { IS_DEV } from '../../common'\n\nexport interface Options {\n globalGuards?: string[]\n globalInterceptors?: string[]\n}\nexport interface RabbitmqCtx {\n type: 'rabbitmq'\n meta?: Meta\n moduleMap: Record<string, any>\n ch: amqplib.Channel\n msg: amqplib.ConsumeMessage\n // JSON parse msg.content\n data: any\n [key: string]: any\n\n}\n\nexport async function bind(ch: amqplib.Channel, queue: string, { moduleMap, meta }: Awaited<ReturnType<typeof Factory>>, opts?: Options) {\n const metaMap = new Map<string, Meta>()\n\n const existQueue = new Set<string>()\n const { globalGuards = [], globalInterceptors = [] } = opts || {}\n\n isAopDepInject(meta, {\n guards: globalGuards,\n interceptors: globalInterceptors,\n })\n\n function handleMeta() {\n for (const item of meta) {\n const { data: { rpc, method, name } } = item\n\n if (rpc?.type && rpc.type.includes('mq'))\n metaMap.set(`${name}-${method}`, item)\n }\n }\n\n handleMeta()\n\n await ch.assertQueue(queue)\n\n ch.consume(queue, async (msg) => {\n if (msg) {\n const data = JSON.parse(msg.content.toString())\n const { tag, args, queue, id } = data\n const context = new Context(tag, {\n type: 'rabbitmq',\n moduleMap,\n meta: metaMap.get(tag),\n data,\n ch,\n msg,\n })\n if (!existQueue.has(queue))\n await ch.assertQueue(queue)\n if (!metaMap.has(tag)) {\n queue && ch.sendToQueue(queue, Buffer.from(JSON.stringify({\n data: new BadRequestException(`service \"${tag}\" doesn't exist`).data,\n error: true,\n id,\n })))\n\n return\n }\n\n const {\n data: {\n guards, interceptors, params, name, method, filter,\n },\n paramsType,\n } = metaMap.get(tag)!\n try {\n await context.useGuard([...globalGuards, ...guards])\n const cache = await context.useInterceptor([...globalInterceptors, ...interceptors])\n if (cache !== undefined) {\n if (queue)\n ch.sendToQueue(queue, Buffer.from(JSON.stringify({ data: cache, id })))\n\n return\n }\n const handleArgs = await context.usePipe(params.map(({ type, key, pipe, pipeOpts, index }, i) => {\n return { arg: args[i], pipe, pipeOpts, key, type, index, reflect: paramsType[index] }\n }))\n\n const funcData = await moduleMap.get(name)[method](...handleArgs)\n const ret = await context.usePostInterceptor(funcData)\n if (queue)\n ch.sendToQueue(queue, Buffer.from(JSON.stringify({ data: ret, id })))\n }\n catch (e) {\n const ret = await context.useFilter(e, filter)\n if (queue) {\n ch.sendToQueue(queue, Buffer.from(JSON.stringify({\n data: ret,\n error: true,\n id,\n })))\n }\n }\n }\n }, { noAck: true })\n\n if (IS_DEV) {\n globalThis.__PS_HMR__?.push(async () => {\n handleMeta()\n })\n }\n}\n","import { EventEmitter } from 'events'\nimport { randomUUID } from 'crypto'\nimport type amqplib from 'amqplib'\nimport type { ToInstance } from '../../types'\nexport async function createClient<S extends Record<string, any>>(ch: amqplib.Channel, queue: string, controllers: S): Promise<ToInstance<S>> {\n const ret = {} as any\n const emitter = new EventEmitter()\n const uniQueue = `PS:${randomUUID()}`\n\n await ch.assertQueue(uniQueue)\n ch.consume(uniQueue, (msg) => {\n if (!msg)\n return\n const { data, id, error } = JSON.parse(msg.content.toString())\n emitter.emit(id, data, error)\n })\n\n for (const i in controllers) {\n ret[i] = new Proxy(new controllers[i](), {\n get(target, p: string) {\n const id = randomUUID()\n if (typeof target[p] !== 'function')\n throw new Error(`\"${p}\" in \"${i}\" is not an exposed rpc `)\n\n const { tag, rpc, isEvent } = target[p]()\n if (!rpc.includes('mq'))\n throw new Error(`\"${p}\" in \"${i}\" doesn't support rabbitmq`)\n return (...args: any) => {\n ch.sendToQueue(queue, Buffer.from(\n JSON.stringify(\n {\n id,\n tag,\n args,\n queue: isEvent ? undefined : uniQueue,\n },\n ),\n ))\n if (isEvent)\n return null\n\n return new Promise((resolve, reject) => {\n emitter.once(id, (data: any, error: boolean) => {\n if (error)\n reject(data)\n\n else resolve(data)\n })\n })\n }\n },\n })\n }\n\n return ret\n}\n"],"mappings":"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","names":["bind","ch","queue","moduleMap","meta","opts","metaMap","Map","existQueue","Set","globalGuards","globalInterceptors","isAopDepInject","guards","interceptors","handleMeta","item","data","rpc","method","name","type","includes","set","assertQueue","consume","msg","JSON","parse","content","toString","tag","args","id","context","Context","get","has","sendToQueue","Buffer","from","stringify","BadRequestException","error","params","filter","paramsType","useGuard","cache","useInterceptor","undefined","handleArgs","usePipe","map","key","pipe","pipeOpts","index","i","arg","reflect","funcData","ret","usePostInterceptor","e","useFilter","noAck","IS_DEV","globalThis","__PS_HMR__","push","EventEmitter","randomUUID","createClient","ch","queue","controllers","ret","emitter","EventEmitter","uniQueue","randomUUID","assertQueue","consume","msg","data","id","error","JSON","parse","content","toString","emit","i","Proxy","get","target","p","Error","tag","rpc","isEvent","includes","args","sendToQueue","Buffer","from","stringify","undefined","Promise","resolve","reject","once"]}
1
+ {"version":3,"sources":["../../../src/rpc/rabbitmq/bind.ts","../../../src/rpc/rabbitmq/client.ts"],"sourcesContent":["import type amqplib from 'amqplib'\nimport type { Factory } from '../../core'\nimport type { Meta } from '../../meta'\nimport { BadRequestException } from '../../exception'\nimport { Context, isAopDepInject } from '../../context'\nimport { IS_DEV } from '../../common'\n\nexport interface Options {\n globalGuards?: string[]\n globalInterceptors?: string[]\n}\nexport interface RabbitmqCtx {\n type: 'rabbitmq'\n meta?: Meta\n moduleMap: Record<string, any>\n ch: amqplib.Channel\n msg: amqplib.ConsumeMessage\n // JSON parse msg.content\n data: any\n [key: string]: any\n\n}\n\nexport async function bind(ch: amqplib.Channel, queue: string, { moduleMap, meta }: Awaited<ReturnType<typeof Factory>>, opts?: Options) {\n const metaMap = new Map<string, Meta>()\n\n const existQueue = new Set<string>()\n const { globalGuards = [], globalInterceptors = [] } = opts || {}\n\n isAopDepInject(meta, {\n guards: globalGuards,\n interceptors: globalInterceptors,\n })\n\n function handleMeta() {\n for (const item of meta) {\n const { data: { rpc, method, name } } = item\n\n if (rpc?.type && rpc.type.includes('mq'))\n metaMap.set(`${name}-${method}`, item)\n }\n }\n\n handleMeta()\n\n await ch.assertQueue(queue)\n\n ch.consume(queue, async (msg) => {\n if (msg) {\n const data = JSON.parse(msg.content.toString())\n const { tag, args, queue, id } = data\n const context = new Context(tag, {\n type: 'rabbitmq',\n moduleMap,\n meta: metaMap.get(tag),\n data,\n ch,\n msg,\n })\n if (!existQueue.has(queue))\n await ch.assertQueue(queue)\n if (!metaMap.has(tag)) {\n queue && ch.sendToQueue(queue, Buffer.from(JSON.stringify({\n data: new BadRequestException(`service \"${tag}\" doesn't exist`).data,\n error: true,\n id,\n })))\n\n return\n }\n\n const {\n data: {\n guards, interceptors, params, name, method, filter,\n },\n paramsType,\n } = metaMap.get(tag)!\n try {\n await context.useGuard([...globalGuards, ...guards])\n const cache = await context.useInterceptor([...globalInterceptors, ...interceptors])\n if (cache !== undefined) {\n if (queue)\n ch.sendToQueue(queue, Buffer.from(JSON.stringify({ data: cache, id })))\n\n return\n }\n const handleArgs = await context.usePipe(params.map(({ type, key, pipe, pipeOpts, index }, i) => {\n return { arg: args[i], pipe, pipeOpts, key, type, index, reflect: paramsType[index] }\n }))\n\n const funcData = await moduleMap.get(name)[method](...handleArgs)\n const ret = await context.usePostInterceptor(funcData)\n if (queue)\n ch.sendToQueue(queue, Buffer.from(JSON.stringify({ data: ret, id })))\n }\n catch (e) {\n const ret = await context.useFilter(e, filter)\n if (queue) {\n ch.sendToQueue(queue, Buffer.from(JSON.stringify({\n data: ret,\n error: true,\n id,\n })))\n }\n }\n }\n }, { noAck: true })\n\n if (IS_DEV) {\n globalThis.__PS_HMR__?.push(async () => {\n handleMeta()\n })\n }\n}\n","import { EventEmitter } from 'events'\nimport { randomUUID } from 'crypto'\nimport type amqplib from 'amqplib'\nimport type { ToControllerMap } from '../../types'\nexport async function createClient<S extends Record<string, any>>(ch: amqplib.Channel, queue: string, controllers: S): Promise<ToControllerMap<S>> {\n const ret = {} as any\n const emitter = new EventEmitter()\n const uniQueue = `PS:${randomUUID()}`\n\n await ch.assertQueue(uniQueue)\n ch.consume(uniQueue, (msg) => {\n if (!msg)\n return\n const { data, id, error } = JSON.parse(msg.content.toString())\n emitter.emit(id, data, error)\n })\n\n for (const i in controllers) {\n ret[i] = new Proxy(new controllers[i](), {\n get(target, p: string) {\n const id = randomUUID()\n if (typeof target[p] !== 'function')\n throw new Error(`\"${p}\" in \"${i}\" is not an exposed rpc `)\n\n const { tag, rpc, isEvent } = target[p]()\n if (!rpc.includes('mq'))\n throw new Error(`\"${p}\" in \"${i}\" doesn't support rabbitmq`)\n return (...args: any) => {\n ch.sendToQueue(queue, Buffer.from(\n JSON.stringify(\n {\n id,\n tag,\n args,\n queue: isEvent ? undefined : uniQueue,\n },\n ),\n ))\n if (isEvent)\n return null\n\n return new Promise((resolve, reject) => {\n emitter.once(id, (data: any, error: boolean) => {\n if (error)\n reject(data)\n\n else resolve(data)\n })\n })\n }\n },\n })\n }\n\n return ret\n}\n"],"mappings":"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","names":["bind","ch","queue","moduleMap","meta","opts","metaMap","Map","existQueue","Set","globalGuards","globalInterceptors","isAopDepInject","guards","interceptors","handleMeta","item","data","rpc","method","name","type","includes","set","assertQueue","consume","msg","JSON","parse","content","toString","tag","args","id","context","Context","get","has","sendToQueue","Buffer","from","stringify","BadRequestException","error","params","filter","paramsType","useGuard","cache","useInterceptor","undefined","handleArgs","usePipe","map","key","pipe","pipeOpts","index","i","arg","reflect","funcData","ret","usePostInterceptor","e","useFilter","noAck","IS_DEV","globalThis","__PS_HMR__","push","EventEmitter","randomUUID","createClient","ch","queue","controllers","ret","emitter","EventEmitter","uniQueue","randomUUID","assertQueue","consume","msg","data","id","error","JSON","parse","content","toString","emit","i","Proxy","get","target","p","Error","tag","rpc","isEvent","includes","args","sendToQueue","Buffer","from","stringify","undefined","Promise","resolve","reject","once"]}
@@ -1,6 +1,5 @@
1
1
  import Redis from 'ioredis';
2
- import { M as Meta, F as Factory } from '../../core-c27b4cf4.js';
3
- import { T as ToInstance } from '../../types-8415bd5d.js';
2
+ import { M as Meta, F as Factory, T as ToControllerMap } from '../../core-72951cf9.js';
4
3
  import 'phecda-core';
5
4
 
6
5
  interface Options {
@@ -19,6 +18,6 @@ interface RedisCtx {
19
18
  }
20
19
  declare function bind(redis: Redis, channel: string, { moduleMap, meta }: Awaited<ReturnType<typeof Factory>>, opts?: Options): void;
21
20
 
22
- declare function createClient<S extends Record<string, any>>(redis: Redis, queue: string, controllers: S): ToInstance<S>;
21
+ declare function createClient<S extends Record<string, any>>(redis: Redis, queue: string, controllers: S): ToControllerMap<S>;
23
22
 
24
23
  export { Options, RedisCtx, bind, createClient };
@@ -2,11 +2,11 @@
2
2
 
3
3
 
4
4
 
5
- var _chunk7OB6K45Tjs = require('../../chunk-7OB6K45T.js');
5
+ var _chunkJZGLQ4FQjs = require('../../chunk-JZGLQ4FQ.js');
6
6
 
7
7
 
8
8
 
9
- var _chunkAAF47ZC6js = require('../../chunk-AAF47ZC6.js');
9
+ var _chunkZZ2QKZ46js = require('../../chunk-ZZ2QKZ46.js');
10
10
 
11
11
  // src/rpc/redis/bind.ts
12
12
  var _ioredis = require('ioredis'); var _ioredis2 = _interopRequireDefault(_ioredis);
@@ -14,7 +14,7 @@ function bind(redis, channel, { moduleMap, meta }, opts) {
14
14
  const metaMap = /* @__PURE__ */ new Map();
15
15
  const pub = new (0, _ioredis2.default)(redis.options);
16
16
  const { globalGuards = [], globalInterceptors = [] } = opts || {};
17
- _chunk7OB6K45Tjs.isAopDepInject.call(void 0, meta, {
17
+ _chunkJZGLQ4FQjs.isAopDepInject.call(void 0, meta, {
18
18
  guards: globalGuards,
19
19
  interceptors: globalInterceptors
20
20
  });
@@ -25,14 +25,14 @@ function bind(redis, channel, { moduleMap, meta }, opts) {
25
25
  metaMap.set(`${name}-${method}`, item);
26
26
  }
27
27
  }
28
- _chunkAAF47ZC6js.__name.call(void 0, handleMeta, "handleMeta");
28
+ _chunkZZ2QKZ46js.__name.call(void 0, handleMeta, "handleMeta");
29
29
  handleMeta();
30
30
  redis.subscribe(channel);
31
31
  redis.on("message", async (channel2, msg) => {
32
32
  if (msg) {
33
33
  const data = JSON.parse(msg);
34
34
  const { tag, args, id, queue } = data;
35
- const context = new (0, _chunk7OB6K45Tjs.Context)(tag, {
35
+ const context = new (0, _chunkJZGLQ4FQjs.Context)(tag, {
36
36
  type: "redis",
37
37
  moduleMap,
38
38
  redis,
@@ -43,7 +43,7 @@ function bind(redis, channel, { moduleMap, meta }, opts) {
43
43
  });
44
44
  if (!metaMap.has(tag)) {
45
45
  queue && pub.publish(queue, JSON.stringify({
46
- data: new (0, _chunk7OB6K45Tjs.BadRequestException)(`service "${tag}" doesn't exist`).data,
46
+ data: new (0, _chunkJZGLQ4FQjs.BadRequestException)(`service "${tag}" doesn't exist`).data,
47
47
  error: true,
48
48
  id
49
49
  }));
@@ -94,13 +94,13 @@ function bind(redis, channel, { moduleMap, meta }, opts) {
94
94
  }
95
95
  }
96
96
  });
97
- if (_chunkAAF47ZC6js.IS_DEV) {
97
+ if (_chunkZZ2QKZ46js.IS_DEV) {
98
98
  _optionalChain([globalThis, 'access', _3 => _3.__PS_HMR__, 'optionalAccess', _4 => _4.push, 'call', _5 => _5(async () => {
99
99
  handleMeta();
100
100
  })]);
101
101
  }
102
102
  }
103
- _chunkAAF47ZC6js.__name.call(void 0, bind, "bind");
103
+ _chunkZZ2QKZ46js.__name.call(void 0, bind, "bind");
104
104
 
105
105
  // src/rpc/redis/client.ts
106
106
  var _crypto = require('crypto');
@@ -148,7 +148,7 @@ function createClient(redis, queue, controllers) {
148
148
  }
149
149
  return ret;
150
150
  }
151
- _chunkAAF47ZC6js.__name.call(void 0, createClient, "createClient");
151
+ _chunkZZ2QKZ46js.__name.call(void 0, createClient, "createClient");
152
152
 
153
153
 
154
154
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/rpc/redis/bind.ts","../../../src/rpc/redis/client.ts"],"names":["Redis","bind","redis","channel","moduleMap","meta","opts","metaMap","Map","pub","options","globalGuards","globalInterceptors","isAopDepInject","guards","interceptors","handleMeta","item","data","rpc","method","name","type","includes","set","subscribe","on","msg","JSON","parse","tag","args","id","queue","context","Context","get","has","publish","stringify","BadRequestException","error","params","filter","paramsType","useGuard","cache","useInterceptor","undefined","handleArgs","usePipe","map","key","pipe","pipeOpts","index","i","arg","reflect","funcData","res","usePostInterceptor","e","ret","useFilter","IS_DEV","globalThis","__PS_HMR__","push","randomUUID","EventEmitter","createClient","controllers","sub","uniQueue","emitter","_","emit","Proxy","target","p","Error","isEvent","Promise","resolve","reject","once"],"mappings":"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","sourcesContent":["import Redis from 'ioredis'\nimport type { Factory } from '../../core'\nimport type { Meta } from '../../meta'\nimport { BadRequestException } from '../../exception'\nimport { Context, isAopDepInject } from '../../context'\nimport { IS_DEV } from '../../common'\n\nexport interface Options {\n globalGuards?: string[]\n globalInterceptors?: string[]\n\n}\n\nexport interface RedisCtx {\n type: 'redis'\n meta?: Meta\n moduleMap: Record<string, any>\n redis: Redis\n msg: string\n channel: string\n // JSON parse msg\n data: any\n [key: string]: any\n}\n\nexport function bind(redis: Redis, channel: string, { moduleMap, meta }: Awaited<ReturnType<typeof Factory>>, opts?: Options) {\n const metaMap = new Map<string, Meta>()\n\n const pub = new Redis(redis.options)\n const { globalGuards = [], globalInterceptors = [] } = opts || {}\n\n isAopDepInject(meta, {\n guards: globalGuards,\n interceptors: globalInterceptors,\n })\n function handleMeta() {\n for (const item of meta) {\n const { data: { rpc, method, name } } = item\n\n if (rpc?.type && rpc.type.includes('mq'))\n metaMap.set(`${name}-${method}`, item)\n }\n }\n\n handleMeta()\n\n redis.subscribe(channel)\n\n redis.on('message', async (channel, msg) => {\n if (msg) {\n const data = JSON.parse(msg)\n const { tag, args, id, queue } = data\n const context = new Context(tag, {\n type: 'redis',\n moduleMap,\n redis,\n meta: metaMap.get(tag),\n msg,\n channel,\n data,\n })\n if (!metaMap.has(tag)) {\n queue && pub.publish(queue, JSON.stringify({\n data: new BadRequestException(`service \"${tag}\" doesn't exist`).data,\n error: true,\n id,\n }))\n return\n }\n const {\n data: {\n guards, interceptors, params, name, method, filter,\n },\n paramsType,\n } = metaMap.get(tag)!\n try {\n await context.useGuard([...globalGuards, ...guards])\n const cache = await context.useInterceptor([...globalInterceptors, ...interceptors])\n if (cache !== undefined) {\n if (queue)\n pub.publish(queue, JSON.stringify({ data: cache, id }))\n\n return\n }\n\n const handleArgs = await context.usePipe(params.map(({ type, key, pipe, pipeOpts, index }, i) => {\n return { arg: args[i], pipe, pipeOpts, key, type, index, reflect: paramsType[index] }\n }))\n\n const funcData = await moduleMap.get(name)[method](...handleArgs)\n const res = await context.usePostInterceptor(funcData)\n\n queue && pub.publish(queue, JSON.stringify({ data: res, id }))\n }\n catch (e) {\n const ret = await context.useFilter(e, filter)\n queue && pub.publish(queue, JSON.stringify({\n data: ret,\n error: true,\n id,\n }))\n }\n }\n })\n\n if (IS_DEV) {\n globalThis.__PS_HMR__?.push(async () => {\n handleMeta()\n })\n }\n}\n","import { randomUUID } from 'crypto'\nimport EventEmitter from 'events'\nimport Redis from 'ioredis'\nimport type { ToInstance } from '../../types'\n\nexport function createClient<S extends Record<string, any>>(redis: Redis, queue: string, controllers: S): ToInstance<S> {\n const ret = {} as any\n const sub = new Redis(redis.options)\n const uniQueue = randomUUID()\n\n const emitter = new EventEmitter()\n sub.subscribe(uniQueue)\n\n sub.on('message', (_, msg) => {\n const { data, id, error } = JSON.parse(msg)\n emitter.emit(id, data, error)\n })\n\n for (const i in controllers) {\n ret[i] = new Proxy(new controllers[i](), {\n get(target, p: string) {\n return (...args: any) => {\n const id = randomUUID()\n if (typeof target[p] !== 'function')\n throw new Error(`\"${p}\" in \"${i}\" is not an exposed rpc `)\n\n const { tag, rpc, isEvent } = target[p]()\n if (!rpc.includes('redis'))\n throw new Error(`\"${p}\" in \"${i}\" doesn't support redis`)\n\n redis.publish(queue, JSON.stringify({\n args,\n id,\n tag,\n queue: isEvent ? undefined : uniQueue,\n\n }))\n if (isEvent)\n return null\n\n return new Promise((resolve, reject) => {\n emitter.once(id, (data, error) => {\n if (error)\n reject(data)\n\n else\n resolve(data)\n })\n })\n }\n },\n })\n }\n\n return ret\n}\n"]}
1
+ {"version":3,"sources":["../../../src/rpc/redis/bind.ts","../../../src/rpc/redis/client.ts"],"names":["Redis","bind","redis","channel","moduleMap","meta","opts","metaMap","Map","pub","options","globalGuards","globalInterceptors","isAopDepInject","guards","interceptors","handleMeta","item","data","rpc","method","name","type","includes","set","subscribe","on","msg","JSON","parse","tag","args","id","queue","context","Context","get","has","publish","stringify","BadRequestException","error","params","filter","paramsType","useGuard","cache","useInterceptor","undefined","handleArgs","usePipe","map","key","pipe","pipeOpts","index","i","arg","reflect","funcData","res","usePostInterceptor","e","ret","useFilter","IS_DEV","globalThis","__PS_HMR__","push","randomUUID","EventEmitter","createClient","controllers","sub","uniQueue","emitter","_","emit","Proxy","target","p","Error","isEvent","Promise","resolve","reject","once"],"mappings":"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","sourcesContent":["import Redis from 'ioredis'\nimport type { Factory } from '../../core'\nimport type { Meta } from '../../meta'\nimport { BadRequestException } from '../../exception'\nimport { Context, isAopDepInject } from '../../context'\nimport { IS_DEV } from '../../common'\n\nexport interface Options {\n globalGuards?: string[]\n globalInterceptors?: string[]\n\n}\n\nexport interface RedisCtx {\n type: 'redis'\n meta?: Meta\n moduleMap: Record<string, any>\n redis: Redis\n msg: string\n channel: string\n // JSON parse msg\n data: any\n [key: string]: any\n}\n\nexport function bind(redis: Redis, channel: string, { moduleMap, meta }: Awaited<ReturnType<typeof Factory>>, opts?: Options) {\n const metaMap = new Map<string, Meta>()\n\n const pub = new Redis(redis.options)\n const { globalGuards = [], globalInterceptors = [] } = opts || {}\n\n isAopDepInject(meta, {\n guards: globalGuards,\n interceptors: globalInterceptors,\n })\n function handleMeta() {\n for (const item of meta) {\n const { data: { rpc, method, name } } = item\n\n if (rpc?.type && rpc.type.includes('mq'))\n metaMap.set(`${name}-${method}`, item)\n }\n }\n\n handleMeta()\n\n redis.subscribe(channel)\n\n redis.on('message', async (channel, msg) => {\n if (msg) {\n const data = JSON.parse(msg)\n const { tag, args, id, queue } = data\n const context = new Context(tag, {\n type: 'redis',\n moduleMap,\n redis,\n meta: metaMap.get(tag),\n msg,\n channel,\n data,\n })\n if (!metaMap.has(tag)) {\n queue && pub.publish(queue, JSON.stringify({\n data: new BadRequestException(`service \"${tag}\" doesn't exist`).data,\n error: true,\n id,\n }))\n return\n }\n const {\n data: {\n guards, interceptors, params, name, method, filter,\n },\n paramsType,\n } = metaMap.get(tag)!\n try {\n await context.useGuard([...globalGuards, ...guards])\n const cache = await context.useInterceptor([...globalInterceptors, ...interceptors])\n if (cache !== undefined) {\n if (queue)\n pub.publish(queue, JSON.stringify({ data: cache, id }))\n\n return\n }\n\n const handleArgs = await context.usePipe(params.map(({ type, key, pipe, pipeOpts, index }, i) => {\n return { arg: args[i], pipe, pipeOpts, key, type, index, reflect: paramsType[index] }\n }))\n\n const funcData = await moduleMap.get(name)[method](...handleArgs)\n const res = await context.usePostInterceptor(funcData)\n\n queue && pub.publish(queue, JSON.stringify({ data: res, id }))\n }\n catch (e) {\n const ret = await context.useFilter(e, filter)\n queue && pub.publish(queue, JSON.stringify({\n data: ret,\n error: true,\n id,\n }))\n }\n }\n })\n\n if (IS_DEV) {\n globalThis.__PS_HMR__?.push(async () => {\n handleMeta()\n })\n }\n}\n","import { randomUUID } from 'crypto'\nimport EventEmitter from 'events'\nimport Redis from 'ioredis'\nimport type { ToControllerMap } from '../../types'\n\nexport function createClient<S extends Record<string, any>>(redis: Redis, queue: string, controllers: S): ToControllerMap<S> {\n const ret = {} as any\n const sub = new Redis(redis.options)\n const uniQueue = randomUUID()\n\n const emitter = new EventEmitter()\n sub.subscribe(uniQueue)\n\n sub.on('message', (_, msg) => {\n const { data, id, error } = JSON.parse(msg)\n emitter.emit(id, data, error)\n })\n\n for (const i in controllers) {\n ret[i] = new Proxy(new controllers[i](), {\n get(target, p: string) {\n return (...args: any) => {\n const id = randomUUID()\n if (typeof target[p] !== 'function')\n throw new Error(`\"${p}\" in \"${i}\" is not an exposed rpc `)\n\n const { tag, rpc, isEvent } = target[p]()\n if (!rpc.includes('redis'))\n throw new Error(`\"${p}\" in \"${i}\" doesn't support redis`)\n\n redis.publish(queue, JSON.stringify({\n args,\n id,\n tag,\n queue: isEvent ? undefined : uniQueue,\n\n }))\n if (isEvent)\n return null\n\n return new Promise((resolve, reject) => {\n emitter.once(id, (data, error) => {\n if (error)\n reject(data)\n\n else\n resolve(data)\n })\n })\n }\n },\n })\n }\n\n return ret\n}\n"]}
@@ -2,11 +2,11 @@ import {
2
2
  BadRequestException,
3
3
  Context,
4
4
  isAopDepInject
5
- } from "../../chunk-GSJ5A2MA.mjs";
5
+ } from "../../chunk-ATMZNJSE.mjs";
6
6
  import {
7
7
  IS_DEV,
8
8
  __name
9
- } from "../../chunk-AYJWOIAW.mjs";
9
+ } from "../../chunk-DQUH5BP6.mjs";
10
10
 
11
11
  // src/rpc/redis/bind.ts
12
12
  import Redis from "ioredis";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/rpc/redis/bind.ts","../../../src/rpc/redis/client.ts"],"sourcesContent":["import Redis from 'ioredis'\nimport type { Factory } from '../../core'\nimport type { Meta } from '../../meta'\nimport { BadRequestException } from '../../exception'\nimport { Context, isAopDepInject } from '../../context'\nimport { IS_DEV } from '../../common'\n\nexport interface Options {\n globalGuards?: string[]\n globalInterceptors?: string[]\n\n}\n\nexport interface RedisCtx {\n type: 'redis'\n meta?: Meta\n moduleMap: Record<string, any>\n redis: Redis\n msg: string\n channel: string\n // JSON parse msg\n data: any\n [key: string]: any\n}\n\nexport function bind(redis: Redis, channel: string, { moduleMap, meta }: Awaited<ReturnType<typeof Factory>>, opts?: Options) {\n const metaMap = new Map<string, Meta>()\n\n const pub = new Redis(redis.options)\n const { globalGuards = [], globalInterceptors = [] } = opts || {}\n\n isAopDepInject(meta, {\n guards: globalGuards,\n interceptors: globalInterceptors,\n })\n function handleMeta() {\n for (const item of meta) {\n const { data: { rpc, method, name } } = item\n\n if (rpc?.type && rpc.type.includes('mq'))\n metaMap.set(`${name}-${method}`, item)\n }\n }\n\n handleMeta()\n\n redis.subscribe(channel)\n\n redis.on('message', async (channel, msg) => {\n if (msg) {\n const data = JSON.parse(msg)\n const { tag, args, id, queue } = data\n const context = new Context(tag, {\n type: 'redis',\n moduleMap,\n redis,\n meta: metaMap.get(tag),\n msg,\n channel,\n data,\n })\n if (!metaMap.has(tag)) {\n queue && pub.publish(queue, JSON.stringify({\n data: new BadRequestException(`service \"${tag}\" doesn't exist`).data,\n error: true,\n id,\n }))\n return\n }\n const {\n data: {\n guards, interceptors, params, name, method, filter,\n },\n paramsType,\n } = metaMap.get(tag)!\n try {\n await context.useGuard([...globalGuards, ...guards])\n const cache = await context.useInterceptor([...globalInterceptors, ...interceptors])\n if (cache !== undefined) {\n if (queue)\n pub.publish(queue, JSON.stringify({ data: cache, id }))\n\n return\n }\n\n const handleArgs = await context.usePipe(params.map(({ type, key, pipe, pipeOpts, index }, i) => {\n return { arg: args[i], pipe, pipeOpts, key, type, index, reflect: paramsType[index] }\n }))\n\n const funcData = await moduleMap.get(name)[method](...handleArgs)\n const res = await context.usePostInterceptor(funcData)\n\n queue && pub.publish(queue, JSON.stringify({ data: res, id }))\n }\n catch (e) {\n const ret = await context.useFilter(e, filter)\n queue && pub.publish(queue, JSON.stringify({\n data: ret,\n error: true,\n id,\n }))\n }\n }\n })\n\n if (IS_DEV) {\n globalThis.__PS_HMR__?.push(async () => {\n handleMeta()\n })\n }\n}\n","import { randomUUID } from 'crypto'\nimport EventEmitter from 'events'\nimport Redis from 'ioredis'\nimport type { ToInstance } from '../../types'\n\nexport function createClient<S extends Record<string, any>>(redis: Redis, queue: string, controllers: S): ToInstance<S> {\n const ret = {} as any\n const sub = new Redis(redis.options)\n const uniQueue = randomUUID()\n\n const emitter = new EventEmitter()\n sub.subscribe(uniQueue)\n\n sub.on('message', (_, msg) => {\n const { data, id, error } = JSON.parse(msg)\n emitter.emit(id, data, error)\n })\n\n for (const i in controllers) {\n ret[i] = new Proxy(new controllers[i](), {\n get(target, p: string) {\n return (...args: any) => {\n const id = randomUUID()\n if (typeof target[p] !== 'function')\n throw new Error(`\"${p}\" in \"${i}\" is not an exposed rpc `)\n\n const { tag, rpc, isEvent } = target[p]()\n if (!rpc.includes('redis'))\n throw new Error(`\"${p}\" in \"${i}\" doesn't support redis`)\n\n redis.publish(queue, JSON.stringify({\n args,\n id,\n tag,\n queue: isEvent ? undefined : uniQueue,\n\n }))\n if (isEvent)\n return null\n\n return new Promise((resolve, reject) => {\n emitter.once(id, (data, error) => {\n if (error)\n reject(data)\n\n else\n resolve(data)\n })\n })\n }\n },\n })\n }\n\n return ret\n}\n"],"mappings":"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","names":["Redis","bind","redis","channel","moduleMap","meta","opts","metaMap","Map","pub","Redis","options","globalGuards","globalInterceptors","isAopDepInject","guards","interceptors","handleMeta","item","data","rpc","method","name","type","includes","set","subscribe","on","msg","JSON","parse","tag","args","id","queue","context","Context","get","has","publish","stringify","BadRequestException","error","params","filter","paramsType","useGuard","cache","useInterceptor","undefined","handleArgs","usePipe","map","key","pipe","pipeOpts","index","i","arg","reflect","funcData","res","usePostInterceptor","e","ret","useFilter","IS_DEV","globalThis","__PS_HMR__","push","randomUUID","EventEmitter","Redis","createClient","redis","queue","controllers","ret","sub","Redis","options","uniQueue","randomUUID","emitter","EventEmitter","subscribe","on","_","msg","data","id","error","JSON","parse","emit","i","Proxy","get","target","p","args","Error","tag","rpc","isEvent","includes","publish","stringify","undefined","Promise","resolve","reject","once"]}
1
+ {"version":3,"sources":["../../../src/rpc/redis/bind.ts","../../../src/rpc/redis/client.ts"],"sourcesContent":["import Redis from 'ioredis'\nimport type { Factory } from '../../core'\nimport type { Meta } from '../../meta'\nimport { BadRequestException } from '../../exception'\nimport { Context, isAopDepInject } from '../../context'\nimport { IS_DEV } from '../../common'\n\nexport interface Options {\n globalGuards?: string[]\n globalInterceptors?: string[]\n\n}\n\nexport interface RedisCtx {\n type: 'redis'\n meta?: Meta\n moduleMap: Record<string, any>\n redis: Redis\n msg: string\n channel: string\n // JSON parse msg\n data: any\n [key: string]: any\n}\n\nexport function bind(redis: Redis, channel: string, { moduleMap, meta }: Awaited<ReturnType<typeof Factory>>, opts?: Options) {\n const metaMap = new Map<string, Meta>()\n\n const pub = new Redis(redis.options)\n const { globalGuards = [], globalInterceptors = [] } = opts || {}\n\n isAopDepInject(meta, {\n guards: globalGuards,\n interceptors: globalInterceptors,\n })\n function handleMeta() {\n for (const item of meta) {\n const { data: { rpc, method, name } } = item\n\n if (rpc?.type && rpc.type.includes('mq'))\n metaMap.set(`${name}-${method}`, item)\n }\n }\n\n handleMeta()\n\n redis.subscribe(channel)\n\n redis.on('message', async (channel, msg) => {\n if (msg) {\n const data = JSON.parse(msg)\n const { tag, args, id, queue } = data\n const context = new Context(tag, {\n type: 'redis',\n moduleMap,\n redis,\n meta: metaMap.get(tag),\n msg,\n channel,\n data,\n })\n if (!metaMap.has(tag)) {\n queue && pub.publish(queue, JSON.stringify({\n data: new BadRequestException(`service \"${tag}\" doesn't exist`).data,\n error: true,\n id,\n }))\n return\n }\n const {\n data: {\n guards, interceptors, params, name, method, filter,\n },\n paramsType,\n } = metaMap.get(tag)!\n try {\n await context.useGuard([...globalGuards, ...guards])\n const cache = await context.useInterceptor([...globalInterceptors, ...interceptors])\n if (cache !== undefined) {\n if (queue)\n pub.publish(queue, JSON.stringify({ data: cache, id }))\n\n return\n }\n\n const handleArgs = await context.usePipe(params.map(({ type, key, pipe, pipeOpts, index }, i) => {\n return { arg: args[i], pipe, pipeOpts, key, type, index, reflect: paramsType[index] }\n }))\n\n const funcData = await moduleMap.get(name)[method](...handleArgs)\n const res = await context.usePostInterceptor(funcData)\n\n queue && pub.publish(queue, JSON.stringify({ data: res, id }))\n }\n catch (e) {\n const ret = await context.useFilter(e, filter)\n queue && pub.publish(queue, JSON.stringify({\n data: ret,\n error: true,\n id,\n }))\n }\n }\n })\n\n if (IS_DEV) {\n globalThis.__PS_HMR__?.push(async () => {\n handleMeta()\n })\n }\n}\n","import { randomUUID } from 'crypto'\nimport EventEmitter from 'events'\nimport Redis from 'ioredis'\nimport type { ToControllerMap } from '../../types'\n\nexport function createClient<S extends Record<string, any>>(redis: Redis, queue: string, controllers: S): ToControllerMap<S> {\n const ret = {} as any\n const sub = new Redis(redis.options)\n const uniQueue = randomUUID()\n\n const emitter = new EventEmitter()\n sub.subscribe(uniQueue)\n\n sub.on('message', (_, msg) => {\n const { data, id, error } = JSON.parse(msg)\n emitter.emit(id, data, error)\n })\n\n for (const i in controllers) {\n ret[i] = new Proxy(new controllers[i](), {\n get(target, p: string) {\n return (...args: any) => {\n const id = randomUUID()\n if (typeof target[p] !== 'function')\n throw new Error(`\"${p}\" in \"${i}\" is not an exposed rpc `)\n\n const { tag, rpc, isEvent } = target[p]()\n if (!rpc.includes('redis'))\n throw new Error(`\"${p}\" in \"${i}\" doesn't support redis`)\n\n redis.publish(queue, JSON.stringify({\n args,\n id,\n tag,\n queue: isEvent ? undefined : uniQueue,\n\n }))\n if (isEvent)\n return null\n\n return new Promise((resolve, reject) => {\n emitter.once(id, (data, error) => {\n if (error)\n reject(data)\n\n else\n resolve(data)\n })\n })\n }\n },\n })\n }\n\n return ret\n}\n"],"mappings":"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","names":["Redis","bind","redis","channel","moduleMap","meta","opts","metaMap","Map","pub","Redis","options","globalGuards","globalInterceptors","isAopDepInject","guards","interceptors","handleMeta","item","data","rpc","method","name","type","includes","set","subscribe","on","msg","JSON","parse","tag","args","id","queue","context","Context","get","has","publish","stringify","BadRequestException","error","params","filter","paramsType","useGuard","cache","useInterceptor","undefined","handleArgs","usePipe","map","key","pipe","pipeOpts","index","i","arg","reflect","funcData","res","usePostInterceptor","e","ret","useFilter","IS_DEV","globalThis","__PS_HMR__","push","randomUUID","EventEmitter","Redis","createClient","redis","queue","controllers","ret","sub","Redis","options","uniQueue","randomUUID","emitter","EventEmitter","subscribe","on","_","msg","data","id","error","JSON","parse","emit","i","Proxy","get","target","p","args","Error","tag","rpc","isEvent","includes","publish","stringify","undefined","Promise","resolve","reject","once"]}
@@ -1,6 +1,5 @@
1
1
  import { Request, Response, Router } from 'express';
2
- import { M as Meta, F as Factory } from '../../core-c27b4cf4.js';
3
- import '../../types-8415bd5d.js';
2
+ import { M as Meta, F as Factory } from '../../core-72951cf9.js';
4
3
  import 'phecda-core';
5
4
 
6
5
  interface ExpressCtx {