phecda-server 4.0.7 → 4.1.1
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.
- package/dist/{chunk-DQUH5BP6.mjs → chunk-5KOB2WHH.mjs} +1 -1
- package/dist/{chunk-DQUH5BP6.mjs.map → chunk-5KOB2WHH.mjs.map} +1 -1
- package/dist/{chunk-WWYSLFOI.js → chunk-5L4K7XEB.js} +33 -31
- package/dist/chunk-5L4K7XEB.js.map +1 -0
- package/dist/{chunk-FCLWCFQS.js → chunk-63KBHOSB.js} +3 -3
- package/dist/{chunk-ZZ2QKZ46.js → chunk-BDIQWWHN.js} +1 -1
- package/dist/{chunk-ZZ2QKZ46.js.map → chunk-BDIQWWHN.js.map} +1 -1
- package/dist/{chunk-ATMZNJSE.mjs → chunk-MIIYJMMM.mjs} +19 -15
- package/dist/chunk-MIIYJMMM.mjs.map +1 -0
- package/dist/{chunk-43ZXHSVH.mjs → chunk-Q3V3ERU3.mjs} +2 -2
- package/dist/{chunk-JZGLQ4FQ.js → chunk-WBHZCJSN.js} +61 -57
- package/dist/chunk-WBHZCJSN.js.map +1 -0
- package/dist/{chunk-F5PQVQTY.mjs → chunk-WQBXOVND.mjs} +16 -14
- package/dist/chunk-WQBXOVND.mjs.map +1 -0
- package/dist/{core-72951cf9.d.ts → core-d080d872.d.ts} +21 -13
- package/dist/index.d.ts +24 -25
- package/dist/index.js +57 -57
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4 -4
- package/dist/index.mjs.map +1 -1
- package/dist/rpc/rabbitmq/index.d.ts +2 -5
- package/dist/rpc/rabbitmq/index.js +22 -20
- package/dist/rpc/rabbitmq/index.js.map +1 -1
- package/dist/rpc/rabbitmq/index.mjs +17 -15
- package/dist/rpc/rabbitmq/index.mjs.map +1 -1
- package/dist/rpc/redis/index.d.ts +2 -5
- package/dist/rpc/redis/index.js +23 -21
- package/dist/rpc/redis/index.js.map +1 -1
- package/dist/rpc/redis/index.mjs +18 -16
- package/dist/rpc/redis/index.mjs.map +1 -1
- package/dist/server/express/index.d.ts +2 -5
- package/dist/server/express/index.js +28 -26
- package/dist/server/express/index.js.map +1 -1
- package/dist/server/express/index.mjs +9 -7
- package/dist/server/express/index.mjs.map +1 -1
- package/dist/server/fastify/index.d.ts +2 -5
- package/dist/server/fastify/index.js +26 -24
- package/dist/server/fastify/index.js.map +1 -1
- package/dist/server/fastify/index.mjs +9 -7
- package/dist/server/fastify/index.mjs.map +1 -1
- package/dist/server/h3/index.d.ts +2 -5
- package/dist/server/h3/index.js +150 -160
- package/dist/server/h3/index.js.map +1 -1
- package/dist/server/h3/index.mjs +144 -154
- package/dist/server/h3/index.mjs.map +1 -1
- package/dist/server/koa/index.d.ts +2 -5
- package/dist/server/koa/index.js +28 -26
- package/dist/server/koa/index.js.map +1 -1
- package/dist/server/koa/index.mjs +9 -7
- package/dist/server/koa/index.mjs.map +1 -1
- package/dist/test.d.ts +1 -1
- package/dist/test.js +5 -5
- package/dist/test.mjs +2 -2
- package/package.json +4 -1
- package/dist/chunk-ATMZNJSE.mjs.map +0 -1
- package/dist/chunk-F5PQVQTY.mjs.map +0 -1
- package/dist/chunk-JZGLQ4FQ.js.map +0 -1
- package/dist/chunk-WWYSLFOI.js.map +0 -1
- /package/dist/{chunk-FCLWCFQS.js.map → chunk-63KBHOSB.js.map} +0 -0
- /package/dist/{chunk-43ZXHSVH.mjs.map → chunk-Q3V3ERU3.mjs.map} +0 -0
package/dist/index.mjs.map
CHANGED
|
@@ -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":"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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
|
+
{"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// work for hmr\n// exec callback when module unmount\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 extends P.BaseContext = 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, ctx?: C): P.Error\n}\n","import { getSymbol } from 'phecda-core'\nimport { Context, addGuard } from '../context'\nimport { Dev } from './dev'\nimport { P } from '../types'\n\nexport abstract class PGuard<C extends P.BaseContext = any> extends Dev {\n abstract use(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\n\n","import { getSymbol } from 'phecda-core'\nimport { Context, addInterceptor } from '../context'\nimport { Dev } from './dev'\nimport { P } from '../types'\n\nexport abstract class PInterceptor<C extends P.BaseContext = any> extends Dev {\n abstract use( 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'\nimport { P } from '../types'\nexport abstract class PPipe<C extends P.BaseContext = 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 }, 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 extends P.BaseContext = any,E extends Exception = Exception> {\n\n intercept( ctx: C): Function | Promise<Function> | any\n\n guard( ctx: C): Promise<boolean> | boolean\n\n pipe(param: { arg: any; option?: any; key: string; type: string; index: number; reflect: any }, ctx: C): any\n\n filter(error: Error | E, 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\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,19 +1,16 @@
|
|
|
1
1
|
import amqplib from 'amqplib';
|
|
2
|
-
import {
|
|
2
|
+
import { P, F as Factory, T as ToControllerMap } from '../../core-d080d872.js';
|
|
3
3
|
import 'phecda-core';
|
|
4
4
|
|
|
5
5
|
interface Options {
|
|
6
6
|
globalGuards?: string[];
|
|
7
7
|
globalInterceptors?: string[];
|
|
8
8
|
}
|
|
9
|
-
interface RabbitmqCtx {
|
|
9
|
+
interface RabbitmqCtx extends P.BaseContext {
|
|
10
10
|
type: 'rabbitmq';
|
|
11
|
-
meta?: Meta;
|
|
12
|
-
moduleMap: Record<string, any>;
|
|
13
11
|
ch: amqplib.Channel;
|
|
14
12
|
msg: amqplib.ConsumeMessage;
|
|
15
13
|
data: any;
|
|
16
|
-
[key: string]: any;
|
|
17
14
|
}
|
|
18
15
|
declare function bind(ch: amqplib.Channel, queue: string, { moduleMap, meta }: Awaited<ReturnType<typeof Factory>>, opts?: Options): Promise<void>;
|
|
19
16
|
|
|
@@ -2,54 +2,56 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkWBHZCJSNjs = require('../../chunk-WBHZCJSN.js');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkBDIQWWHNjs = require('../../chunk-BDIQWWHN.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
|
-
_chunkJZGLQ4FQjs.isAopDepInject.call(void 0, meta, {
|
|
17
|
-
guards: globalGuards,
|
|
18
|
-
interceptors: globalInterceptors
|
|
19
|
-
});
|
|
20
16
|
function handleMeta() {
|
|
17
|
+
_chunkWBHZCJSNjs.isAopDepInject.call(void 0, meta, {
|
|
18
|
+
guards: globalGuards,
|
|
19
|
+
interceptors: globalInterceptors
|
|
20
|
+
});
|
|
21
21
|
for (const item of meta) {
|
|
22
22
|
const { data: { rpc, method, name } } = item;
|
|
23
23
|
if (_optionalChain([rpc, 'optionalAccess', _ => _.type]) && rpc.type.includes("mq"))
|
|
24
24
|
metaMap.set(`${name}-${method}`, item);
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
|
|
27
|
+
_chunkBDIQWWHNjs.__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, _chunkJZGLQ4FQjs.Context)(tag, {
|
|
35
|
-
type: "rabbitmq",
|
|
36
|
-
moduleMap,
|
|
37
|
-
meta: metaMap.get(tag),
|
|
38
|
-
data,
|
|
39
|
-
ch,
|
|
40
|
-
msg
|
|
41
|
-
});
|
|
42
34
|
if (!existQueue.has(queue2))
|
|
43
35
|
await ch.assertQueue(queue2);
|
|
44
36
|
if (!metaMap.has(tag)) {
|
|
45
37
|
queue2 && ch.sendToQueue(queue2, Buffer.from(JSON.stringify({
|
|
46
|
-
data: new (0,
|
|
38
|
+
data: new (0, _chunkWBHZCJSNjs.BadRequestException)(`service "${tag}" doesn't exist`).data,
|
|
47
39
|
error: true,
|
|
48
40
|
id
|
|
49
41
|
})));
|
|
50
42
|
return;
|
|
51
43
|
}
|
|
52
|
-
const
|
|
44
|
+
const meta2 = metaMap.get(tag);
|
|
45
|
+
const context = new (0, _chunkWBHZCJSNjs.Context)({
|
|
46
|
+
type: "rabbitmq",
|
|
47
|
+
moduleMap,
|
|
48
|
+
meta: meta2,
|
|
49
|
+
tag,
|
|
50
|
+
data,
|
|
51
|
+
ch,
|
|
52
|
+
msg
|
|
53
|
+
});
|
|
54
|
+
const { data: { guards, interceptors, params, name, method, filter }, paramsType } = meta2;
|
|
53
55
|
try {
|
|
54
56
|
await context.useGuard([
|
|
55
57
|
...globalGuards,
|
|
@@ -99,13 +101,13 @@ async function bind(ch, queue, { moduleMap, meta }, opts) {
|
|
|
99
101
|
}, {
|
|
100
102
|
noAck: true
|
|
101
103
|
});
|
|
102
|
-
if (
|
|
104
|
+
if (_chunkBDIQWWHNjs.IS_DEV) {
|
|
103
105
|
_optionalChain([globalThis, 'access', _2 => _2.__PS_HMR__, 'optionalAccess', _3 => _3.push, 'call', _4 => _4(async () => {
|
|
104
106
|
handleMeta();
|
|
105
107
|
})]);
|
|
106
108
|
}
|
|
107
109
|
}
|
|
108
|
-
|
|
110
|
+
_chunkBDIQWWHNjs.__name.call(void 0, bind, "bind");
|
|
109
111
|
|
|
110
112
|
// src/rpc/rabbitmq/client.ts
|
|
111
113
|
var _events = require('events');
|
|
@@ -153,7 +155,7 @@ async function createClient(ch, queue, controllers) {
|
|
|
153
155
|
}
|
|
154
156
|
return ret;
|
|
155
157
|
}
|
|
156
|
-
|
|
158
|
+
_chunkBDIQWWHNjs.__name.call(void 0, createClient, "createClient");
|
|
157
159
|
|
|
158
160
|
|
|
159
161
|
|
|
@@ -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","
|
|
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","handleMeta","isAopDepInject","guards","interceptors","item","data","rpc","method","name","type","includes","set","assertQueue","consume","msg","JSON","parse","content","toString","tag","args","id","has","sendToQueue","Buffer","from","stringify","BadRequestException","error","get","context","Context","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'\nimport { P } from '../../types'\n\nexport interface Options {\n globalGuards?: string[]\n globalInterceptors?: string[]\n}\nexport interface RabbitmqCtx extends P.BaseContext {\n type: 'rabbitmq'\n ch: amqplib.Channel\n msg: amqplib.ConsumeMessage\n data: any\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\n function handleMeta() {\n\n isAopDepInject(meta, {\n guards: globalGuards,\n interceptors: globalInterceptors,\n })\n\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\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 meta = metaMap.get(tag)!\n const context = new Context<RabbitmqCtx>({\n type: 'rabbitmq',\n moduleMap,\n meta,\n tag,\n data,\n ch,\n msg,\n })\n const {\n data: {\n guards, interceptors, params, name, method, filter,\n },\n paramsType,\n } = meta\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,22 +2,22 @@ import {
|
|
|
2
2
|
BadRequestException,
|
|
3
3
|
Context,
|
|
4
4
|
isAopDepInject
|
|
5
|
-
} from "../../chunk-
|
|
5
|
+
} from "../../chunk-MIIYJMMM.mjs";
|
|
6
6
|
import {
|
|
7
7
|
IS_DEV,
|
|
8
8
|
__name
|
|
9
|
-
} from "../../chunk-
|
|
9
|
+
} from "../../chunk-5KOB2WHH.mjs";
|
|
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
|
-
isAopDepInject(meta, {
|
|
17
|
-
guards: globalGuards,
|
|
18
|
-
interceptors: globalInterceptors
|
|
19
|
-
});
|
|
20
16
|
function handleMeta() {
|
|
17
|
+
isAopDepInject(meta, {
|
|
18
|
+
guards: globalGuards,
|
|
19
|
+
interceptors: globalInterceptors
|
|
20
|
+
});
|
|
21
21
|
for (const item of meta) {
|
|
22
22
|
const { data: { rpc, method, name } } = item;
|
|
23
23
|
if (rpc?.type && rpc.type.includes("mq"))
|
|
@@ -31,14 +31,6 @@ async function bind(ch, queue, { moduleMap, meta }, opts) {
|
|
|
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 Context(tag, {
|
|
35
|
-
type: "rabbitmq",
|
|
36
|
-
moduleMap,
|
|
37
|
-
meta: metaMap.get(tag),
|
|
38
|
-
data,
|
|
39
|
-
ch,
|
|
40
|
-
msg
|
|
41
|
-
});
|
|
42
34
|
if (!existQueue.has(queue2))
|
|
43
35
|
await ch.assertQueue(queue2);
|
|
44
36
|
if (!metaMap.has(tag)) {
|
|
@@ -49,7 +41,17 @@ async function bind(ch, queue, { moduleMap, meta }, opts) {
|
|
|
49
41
|
})));
|
|
50
42
|
return;
|
|
51
43
|
}
|
|
52
|
-
const
|
|
44
|
+
const meta2 = metaMap.get(tag);
|
|
45
|
+
const context = new Context({
|
|
46
|
+
type: "rabbitmq",
|
|
47
|
+
moduleMap,
|
|
48
|
+
meta: meta2,
|
|
49
|
+
tag,
|
|
50
|
+
data,
|
|
51
|
+
ch,
|
|
52
|
+
msg
|
|
53
|
+
});
|
|
54
|
+
const { data: { guards, interceptors, params, name, method, filter }, paramsType } = meta2;
|
|
53
55
|
try {
|
|
54
56
|
await context.useGuard([
|
|
55
57
|
...globalGuards,
|
|
@@ -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
|
|
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'\nimport { P } from '../../types'\n\nexport interface Options {\n globalGuards?: string[]\n globalInterceptors?: string[]\n}\nexport interface RabbitmqCtx extends P.BaseContext {\n type: 'rabbitmq'\n ch: amqplib.Channel\n msg: amqplib.ConsumeMessage\n data: any\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\n function handleMeta() {\n\n isAopDepInject(meta, {\n guards: globalGuards,\n interceptors: globalInterceptors,\n })\n\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\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 meta = metaMap.get(tag)!\n const context = new Context<RabbitmqCtx>({\n type: 'rabbitmq',\n moduleMap,\n meta,\n tag,\n data,\n ch,\n msg,\n })\n const {\n data: {\n guards, interceptors, params, name, method, filter,\n },\n paramsType,\n } = meta\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","handleMeta","isAopDepInject","guards","interceptors","item","data","rpc","method","name","type","includes","set","assertQueue","consume","msg","JSON","parse","content","toString","tag","args","id","has","sendToQueue","Buffer","from","stringify","BadRequestException","error","get","context","Context","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,20 +1,17 @@
|
|
|
1
1
|
import Redis from 'ioredis';
|
|
2
|
-
import {
|
|
2
|
+
import { P, F as Factory, T as ToControllerMap } from '../../core-d080d872.js';
|
|
3
3
|
import 'phecda-core';
|
|
4
4
|
|
|
5
5
|
interface Options {
|
|
6
6
|
globalGuards?: string[];
|
|
7
7
|
globalInterceptors?: string[];
|
|
8
8
|
}
|
|
9
|
-
interface RedisCtx {
|
|
9
|
+
interface RedisCtx extends P.BaseContext {
|
|
10
10
|
type: 'redis';
|
|
11
|
-
meta?: Meta;
|
|
12
|
-
moduleMap: Record<string, any>;
|
|
13
11
|
redis: Redis;
|
|
14
12
|
msg: string;
|
|
15
13
|
channel: string;
|
|
16
14
|
data: any;
|
|
17
|
-
[key: string]: any;
|
|
18
15
|
}
|
|
19
16
|
declare function bind(redis: Redis, channel: string, { moduleMap, meta }: Awaited<ReturnType<typeof Factory>>, opts?: Options): void;
|
|
20
17
|
|
package/dist/rpc/redis/index.js
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkWBHZCJSNjs = require('../../chunk-WBHZCJSN.js');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkBDIQWWHNjs = require('../../chunk-BDIQWWHN.js');
|
|
10
10
|
|
|
11
11
|
// src/rpc/redis/bind.ts
|
|
12
12
|
var _ioredis = require('ioredis'); var _ioredis2 = _interopRequireDefault(_ioredis);
|
|
@@ -14,42 +14,44 @@ 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
|
-
_chunkJZGLQ4FQjs.isAopDepInject.call(void 0, meta, {
|
|
18
|
-
guards: globalGuards,
|
|
19
|
-
interceptors: globalInterceptors
|
|
20
|
-
});
|
|
21
17
|
function handleMeta() {
|
|
18
|
+
_chunkWBHZCJSNjs.isAopDepInject.call(void 0, meta, {
|
|
19
|
+
guards: globalGuards,
|
|
20
|
+
interceptors: globalInterceptors
|
|
21
|
+
});
|
|
22
22
|
for (const item of meta) {
|
|
23
23
|
const { data: { rpc, method, name } } = item;
|
|
24
24
|
if (_optionalChain([rpc, 'optionalAccess', _2 => _2.type]) && rpc.type.includes("mq"))
|
|
25
25
|
metaMap.set(`${name}-${method}`, item);
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
|
|
28
|
+
_chunkBDIQWWHNjs.__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, _chunkJZGLQ4FQjs.Context)(tag, {
|
|
36
|
-
type: "redis",
|
|
37
|
-
moduleMap,
|
|
38
|
-
redis,
|
|
39
|
-
meta: metaMap.get(tag),
|
|
40
|
-
msg,
|
|
41
|
-
channel: channel2,
|
|
42
|
-
data
|
|
43
|
-
});
|
|
44
35
|
if (!metaMap.has(tag)) {
|
|
45
36
|
queue && pub.publish(queue, JSON.stringify({
|
|
46
|
-
data: new (0,
|
|
37
|
+
data: new (0, _chunkWBHZCJSNjs.BadRequestException)(`service "${tag}" doesn't exist`).data,
|
|
47
38
|
error: true,
|
|
48
39
|
id
|
|
49
40
|
}));
|
|
50
41
|
return;
|
|
51
42
|
}
|
|
52
|
-
const
|
|
43
|
+
const meta2 = metaMap.get(tag);
|
|
44
|
+
const context = new (0, _chunkWBHZCJSNjs.Context)({
|
|
45
|
+
type: "redis",
|
|
46
|
+
moduleMap,
|
|
47
|
+
redis,
|
|
48
|
+
meta: meta2,
|
|
49
|
+
msg,
|
|
50
|
+
channel: channel2,
|
|
51
|
+
tag,
|
|
52
|
+
data
|
|
53
|
+
});
|
|
54
|
+
const { data: { guards, interceptors, params, name, method, filter }, paramsType } = meta2;
|
|
53
55
|
try {
|
|
54
56
|
await context.useGuard([
|
|
55
57
|
...globalGuards,
|
|
@@ -94,13 +96,13 @@ function bind(redis, channel, { moduleMap, meta }, opts) {
|
|
|
94
96
|
}
|
|
95
97
|
}
|
|
96
98
|
});
|
|
97
|
-
if (
|
|
99
|
+
if (_chunkBDIQWWHNjs.IS_DEV) {
|
|
98
100
|
_optionalChain([globalThis, 'access', _3 => _3.__PS_HMR__, 'optionalAccess', _4 => _4.push, 'call', _5 => _5(async () => {
|
|
99
101
|
handleMeta();
|
|
100
102
|
})]);
|
|
101
103
|
}
|
|
102
104
|
}
|
|
103
|
-
|
|
105
|
+
_chunkBDIQWWHNjs.__name.call(void 0, bind, "bind");
|
|
104
106
|
|
|
105
107
|
// src/rpc/redis/client.ts
|
|
106
108
|
var _crypto = require('crypto');
|
|
@@ -148,7 +150,7 @@ function createClient(redis, queue, controllers) {
|
|
|
148
150
|
}
|
|
149
151
|
return ret;
|
|
150
152
|
}
|
|
151
|
-
|
|
153
|
+
_chunkBDIQWWHNjs.__name.call(void 0, createClient, "createClient");
|
|
152
154
|
|
|
153
155
|
|
|
154
156
|
|
|
@@ -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","
|
|
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","handleMeta","isAopDepInject","guards","interceptors","item","data","rpc","method","name","type","includes","set","subscribe","on","msg","JSON","parse","tag","args","id","queue","has","publish","stringify","BadRequestException","error","get","context","Context","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'\nimport { P } from '../../types'\n\nexport interface Options {\n globalGuards?: string[]\n globalInterceptors?: string[]\n}\nexport interface RedisCtx extends P.BaseContext{\n type: 'redis'\n redis: Redis\n msg: string\n channel: string\n data: any\n\n}\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\n function handleMeta() {\n isAopDepInject(meta, {\n guards: globalGuards,\n interceptors: globalInterceptors,\n })\n\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 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\n const meta= metaMap.get(tag)!\n const context = new Context( {\n type: 'redis',\n moduleMap,\n redis,\n meta,\n msg,\n channel,\n tag,\n data,\n })\n \n const {\n data: {\n guards, interceptors, params, name, method, filter,\n },\n paramsType,\n } = meta\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"]}
|