phecda-server 5.1.0 → 5.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -10
- package/assets/ps.json +25 -0
- package/{bin → assets}/schema.json +55 -55
- package/assets/tsconfig.json +21 -0
- package/bin/cli.mjs +150 -189
- package/dist/{chunk-6UQYEBAN.js → chunk-5BVUCNMA.js} +19 -20
- package/dist/{chunk-QG4X6H5Y.js → chunk-BSE2DSDK.js} +121 -124
- package/dist/{chunk-OTHER3YM.mjs → chunk-CKQW3FDK.mjs} +4 -5
- package/dist/{chunk-6W7CGOZC.mjs → chunk-JE6BBDXW.mjs} +64 -67
- package/dist/{chunk-5DOVDDO7.mjs → chunk-V3WIKOP3.mjs} +11 -6
- package/dist/{chunk-H4N6SHNG.mjs → chunk-VLV3AO3H.mjs} +0 -1
- package/dist/{chunk-GHOKWS5V.js → chunk-VMLHTEW3.js} +48 -43
- package/dist/{chunk-Z4YJHEXT.js → chunk-ZP7HNASU.js} +0 -1
- package/dist/core-7f6d2be6.d.ts +27 -0
- package/dist/{helper-fcbf6aa8.d.ts → helper-49c7213c.d.ts} +1 -1
- package/dist/{helper-867a598d.d.ts → helper-5d755442.d.ts} +1 -1
- package/dist/helper.d.ts +25 -0
- package/dist/helper.js +21 -0
- package/dist/helper.mjs +21 -0
- package/dist/index.d.ts +5 -25
- package/dist/index.js +39 -58
- package/dist/index.mjs +6 -25
- package/dist/rpc/bullmq/index.d.ts +3 -2
- package/dist/rpc/bullmq/index.js +12 -13
- package/dist/rpc/bullmq/index.mjs +2 -3
- package/dist/rpc/kafka/index.d.ts +3 -2
- package/dist/rpc/kafka/index.js +10 -11
- package/dist/rpc/kafka/index.mjs +2 -3
- package/dist/rpc/nats/index.d.ts +3 -2
- package/dist/rpc/nats/index.js +11 -12
- package/dist/rpc/nats/index.mjs +2 -3
- package/dist/rpc/rabbitmq/index.d.ts +3 -2
- package/dist/rpc/rabbitmq/index.js +13 -14
- package/dist/rpc/rabbitmq/index.mjs +2 -3
- package/dist/rpc/redis/index.d.ts +3 -2
- package/dist/rpc/redis/index.js +11 -12
- package/dist/rpc/redis/index.mjs +2 -3
- package/dist/server/elysia/index.d.ts +3 -2
- package/dist/server/elysia/index.js +20 -21
- package/dist/server/elysia/index.mjs +3 -4
- package/dist/server/express/index.d.ts +3 -2
- package/dist/server/express/index.js +18 -19
- package/dist/server/express/index.mjs +2 -3
- package/dist/server/fastify/index.d.ts +3 -2
- package/dist/server/fastify/index.js +19 -20
- package/dist/server/fastify/index.mjs +3 -4
- package/dist/server/h3/index.d.ts +3 -2
- package/dist/server/h3/index.js +16 -17
- package/dist/server/h3/index.mjs +2 -3
- package/dist/server/hono/index.d.ts +3 -2
- package/dist/server/hono/index.js +17 -18
- package/dist/server/hono/index.mjs +2 -3
- package/dist/server/hyper-express/index.d.ts +3 -2
- package/dist/server/hyper-express/index.js +17 -18
- package/dist/server/hyper-express/index.mjs +2 -3
- package/dist/server/koa/index.d.ts +3 -2
- package/dist/server/koa/index.js +18 -19
- package/dist/server/koa/index.mjs +2 -3
- package/dist/test.d.ts +2 -1
- package/dist/test.js +6 -7
- package/dist/test.mjs +2 -3
- package/dist/{core-fd134ffa.d.ts → types-81be0ba3.d.ts} +2 -24
- package/package.json +62 -54
- package/register/index.mjs +40 -40
- package/register/loader.mjs +367 -341
- package/register/utils.mjs +56 -81
- package/dist/chunk-423JPSEB.js +0 -253
- package/dist/chunk-423JPSEB.js.map +0 -1
- package/dist/chunk-4R55T3HG.js +0 -253
- package/dist/chunk-4R55T3HG.js.map +0 -1
- package/dist/chunk-4YVAW3L4.mjs +0 -76
- package/dist/chunk-4YVAW3L4.mjs.map +0 -1
- package/dist/chunk-5DOVDDO7.mjs.map +0 -1
- package/dist/chunk-5WQ2SMIK.js +0 -295
- package/dist/chunk-5WQ2SMIK.js.map +0 -1
- package/dist/chunk-6MQP6OHU.mjs +0 -295
- package/dist/chunk-6MQP6OHU.mjs.map +0 -1
- package/dist/chunk-6Q2PCC3A.mjs +0 -295
- package/dist/chunk-6Q2PCC3A.mjs.map +0 -1
- package/dist/chunk-6UQYEBAN.js.map +0 -1
- package/dist/chunk-6W7CGOZC.mjs.map +0 -1
- package/dist/chunk-7Y37NSBM.js +0 -88
- package/dist/chunk-7Y37NSBM.js.map +0 -1
- package/dist/chunk-BQBSVGMG.mjs +0 -253
- package/dist/chunk-BQBSVGMG.mjs.map +0 -1
- package/dist/chunk-BZP6GKM6.mjs +0 -565
- package/dist/chunk-BZP6GKM6.mjs.map +0 -1
- package/dist/chunk-C5JAHCS2.mjs +0 -88
- package/dist/chunk-C5JAHCS2.mjs.map +0 -1
- package/dist/chunk-DTBKDALR.mjs +0 -295
- package/dist/chunk-DTBKDALR.mjs.map +0 -1
- package/dist/chunk-GHOKWS5V.js.map +0 -1
- package/dist/chunk-H4N6SHNG.mjs.map +0 -1
- package/dist/chunk-ICYHM4UM.js +0 -565
- package/dist/chunk-ICYHM4UM.js.map +0 -1
- package/dist/chunk-LOLXPM4J.mjs +0 -529
- package/dist/chunk-LOLXPM4J.mjs.map +0 -1
- package/dist/chunk-MSS6A2TU.js +0 -585
- package/dist/chunk-MSS6A2TU.js.map +0 -1
- package/dist/chunk-NEM3FY7C.mjs +0 -537
- package/dist/chunk-NEM3FY7C.mjs.map +0 -1
- package/dist/chunk-OTHER3YM.mjs.map +0 -1
- package/dist/chunk-Q2FYFIEY.js +0 -295
- package/dist/chunk-Q2FYFIEY.js.map +0 -1
- package/dist/chunk-QG4X6H5Y.js.map +0 -1
- package/dist/chunk-QIEZ6YTG.mjs +0 -295
- package/dist/chunk-QIEZ6YTG.mjs.map +0 -1
- package/dist/chunk-QOAKHCM7.js +0 -295
- package/dist/chunk-QOAKHCM7.js.map +0 -1
- package/dist/chunk-QVUD6L5X.js +0 -565
- package/dist/chunk-QVUD6L5X.js.map +0 -1
- package/dist/chunk-RGLTGKAU.js +0 -537
- package/dist/chunk-RGLTGKAU.js.map +0 -1
- package/dist/chunk-SHRK3TVB.js +0 -295
- package/dist/chunk-SHRK3TVB.js.map +0 -1
- package/dist/chunk-TCH6S42Z.js +0 -529
- package/dist/chunk-TCH6S42Z.js.map +0 -1
- package/dist/chunk-UCGRFVHC.mjs +0 -253
- package/dist/chunk-UCGRFVHC.mjs.map +0 -1
- package/dist/chunk-VOISXWVF.mjs +0 -295
- package/dist/chunk-VOISXWVF.mjs.map +0 -1
- package/dist/chunk-W6BC5INO.mjs +0 -295
- package/dist/chunk-W6BC5INO.mjs.map +0 -1
- package/dist/chunk-X5WQRO4R.js +0 -295
- package/dist/chunk-X5WQRO4R.js.map +0 -1
- package/dist/chunk-XDMCVVD3.mjs +0 -585
- package/dist/chunk-XDMCVVD3.mjs.map +0 -1
- package/dist/chunk-XNTMYLK6.js +0 -76
- package/dist/chunk-XNTMYLK6.js.map +0 -1
- package/dist/chunk-Y6LI4FDO.js +0 -537
- package/dist/chunk-Y6LI4FDO.js.map +0 -1
- package/dist/chunk-YZ2AQ6IL.mjs +0 -537
- package/dist/chunk-YZ2AQ6IL.mjs.map +0 -1
- package/dist/chunk-Z4YJHEXT.js.map +0 -1
- package/dist/chunk-ZE336SKZ.js +0 -295
- package/dist/chunk-ZE336SKZ.js.map +0 -1
- package/dist/chunk-ZJD235TO.mjs +0 -565
- package/dist/chunk-ZJD235TO.mjs.map +0 -1
- package/dist/core-39f27fe8.d.ts +0 -131
- package/dist/core-930ea883.d.ts +0 -131
- package/dist/core-eb646fe5.d.ts +0 -139
- package/dist/helper-06d25b37.d.ts +0 -19
- package/dist/helper-48454c0b.d.ts +0 -20
- package/dist/helper-6133f78f.d.ts +0 -18
- package/dist/helper-73e8d2f0.d.ts +0 -18
- package/dist/helper-88b19c66.d.ts +0 -12
- package/dist/helper-9e206c66.d.ts +0 -12
- package/dist/helper-f29f082f.d.ts +0 -19
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/rpc/bullmq/index.js.map +0 -1
- package/dist/rpc/bullmq/index.mjs.map +0 -1
- package/dist/rpc/kafka/index.js.map +0 -1
- package/dist/rpc/kafka/index.mjs.map +0 -1
- package/dist/rpc/nats/index.js.map +0 -1
- package/dist/rpc/nats/index.mjs.map +0 -1
- package/dist/rpc/rabbitmq/index.js.map +0 -1
- package/dist/rpc/rabbitmq/index.mjs.map +0 -1
- package/dist/rpc/redis/index.js.map +0 -1
- package/dist/rpc/redis/index.mjs.map +0 -1
- package/dist/server/elysia/index.js.map +0 -1
- package/dist/server/elysia/index.mjs.map +0 -1
- package/dist/server/express/index.js.map +0 -1
- package/dist/server/express/index.mjs.map +0 -1
- package/dist/server/fastify/index.js.map +0 -1
- package/dist/server/fastify/index.mjs.map +0 -1
- package/dist/server/h3/index.js.map +0 -1
- package/dist/server/h3/index.mjs.map +0 -1
- package/dist/server/hono/index.js.map +0 -1
- package/dist/server/hono/index.mjs.map +0 -1
- package/dist/server/hyper-express/index.js.map +0 -1
- package/dist/server/hyper-express/index.mjs.map +0 -1
- package/dist/server/koa/index.js.map +0 -1
- package/dist/server/koa/index.mjs.map +0 -1
- package/dist/test.js.map +0 -1
- package/dist/test.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/exception/base.ts","../src/exception/validate.ts","../src/pipe.ts","../src/exception/undefine.ts","../src/exception/forbidden.ts","../src/exception/bad-request.ts","../src/exception/not-found.ts","../src/exception/conflict.ts","../src/exception/bad-gateway.ts","../src/exception/invalid-input.ts","../src/exception/media-type.ts","../src/exception/payload-large.ts","../src/exception/timeout.ts","../src/exception/unauthorized.ts","../src/exception/unavailable-service.ts","../src/exception/framework.ts","../src/exception/timer.ts","../src/exception/worker.ts","../src/hmr.ts","../src/server/helper.ts","../src/rpc/helper.ts","../src/decorators/helper.ts","../src/context.ts","../src/filter.ts","../src/history.ts"],"sourcesContent":["import { ERROR_SYMBOL } from '../common'\r\n\r\nexport class Exception extends Error {\r\n constructor(public message: string, public status = 0, public description = 'Exception') {\r\n super(message)\r\n }\r\n\r\n get data() {\r\n return { message: this.message, description: this.description, status: this.status, [ERROR_SYMBOL]: true }\r\n }\r\n}\r\n","import { Exception } from './base'\r\n\r\nexport class ValidateException extends Exception {\r\n constructor(message: string) {\r\n super(message, 400, 'Validate exception')\r\n }\r\n}\r\n","import { isPhecda, plainToClass, transformInstance } from 'phecda-core'\r\nimport { ValidateException } from './exception/validate'\r\n\r\nimport type { PipeType } from './context'\r\n\r\nexport const defaultPipe: PipeType = ({ arg, reflect, index }) => {\r\n if (isPhecda(reflect)) {\r\n const instance = plainToClass(reflect, arg)\r\n const err = transformInstance(instance)\r\n if (err.length > 0)\r\n throw new ValidateException(err[0])\r\n\r\n arg = instance\r\n }\r\n else {\r\n if (arg === undefined && !reflect)\r\n return undefined\r\n\r\n if ([Number, Boolean].includes(reflect)) {\r\n arg = reflect(arg)\r\n\r\n if (reflect === Number && Object.is(arg, NaN))\r\n throw new ValidateException(`parameter ${Number(index) + 1} should be a number`)\r\n }\r\n }\r\n return arg\r\n}\r\n","import { Exception } from './base'\r\n\r\nexport class UndefinedException extends Exception {\r\n constructor(message: string) {\r\n super(message, 500, 'Undefined error')\r\n }\r\n}\r\n","import { Exception } from './base'\r\n\r\nexport class ForbiddenException extends Exception {\r\n constructor(message: string) {\r\n super(message, 403, 'Forbidden resource')\r\n }\r\n}\r\n","import { Exception } from './base'\r\n\r\nexport class BadRequestException extends Exception {\r\n constructor(message: string) {\r\n super(message, 400, 'Bad Request')\r\n }\r\n}\r\n","import { Exception } from './base'\r\n\r\nexport class NotFoundException extends Exception {\r\n constructor(message: string) {\r\n super(message, 404, 'Not Found')\r\n }\r\n}\r\n","import { Exception } from './base'\r\n\r\nexport class ConflictException extends Exception {\r\n constructor(message: string) {\r\n super(message, 409, 'Conflict')\r\n }\r\n}\r\n","import { Exception } from './base'\r\n\r\nexport class BadGatewayException extends Exception {\r\n constructor(message: string) {\r\n super(message, 502, 'Bad Gatrway')\r\n }\r\n}\r\n","import { Exception } from './base'\r\n\r\nexport class InvalidInputException extends Exception {\r\n constructor(message: string) {\r\n super(message, 502, 'Invalid Input')\r\n }\r\n}\r\n","import { Exception } from './base'\r\n\r\nexport class UnsupportedMediaTypeException extends Exception {\r\n constructor(message: string) {\r\n super(message, 415, 'Unsupported Media Type')\r\n }\r\n}\r\n","import { Exception } from './base'\r\n\r\nexport class PayloadLargeException extends Exception {\r\n constructor(message: string) {\r\n super(message, 413, 'Payload Too Large')\r\n }\r\n}\r\n","import { Exception } from './base'\r\n\r\nexport class TimeoutException extends Exception {\r\n constructor(message: string) {\r\n super(message, 408, 'Request Timeout',\r\n )\r\n }\r\n}\r\n","import { Exception } from './base'\r\n\r\nexport class UnauthorizedException extends Exception {\r\n constructor(message: string) {\r\n super(message, 401, 'Unauthorized')\r\n }\r\n}\r\n","import { Exception } from './base'\r\n\r\nexport class ServiceUnavailableException extends Exception {\r\n constructor(message: string) {\r\n super(message, 503, 'Service Unavailable')\r\n }\r\n}\r\n","import { Exception } from './base'\r\n\r\nexport class FrameworkException extends Exception {\r\n constructor(message: string) {\r\n super(`[phecda-server] ${message}`, 500, 'Framework Error')\r\n }\r\n}\r\n","import { Exception } from './base'\r\nexport class TimerException extends Exception {\r\n constructor(message: string) {\r\n super(message, 0, 'Timer Error')\r\n }\r\n}\r\n","import { Exception } from './base'\r\nexport class WorkerException extends Exception {\r\n constructor(message: string) {\r\n super(message, 0, 'Worker Error')\r\n }\r\n}\r\n","import { IS_HMR } from './common'\r\nexport function HMR(cb: (...args: any) => any) {\r\n if (IS_HMR)\r\n globalThis.__PS_HMR__?.push(cb)\r\n}\r\n","import { IncomingHttpHeaders } from 'node:http'\r\nimport { BaseContext, DefaultOptions } from '../types'\r\nimport type { ControllerMetaData } from '../meta'\r\n\r\nexport function resolveDep(ret: any, key: string) {\r\n if (key)\r\n return ret?.[key]\r\n return ret\r\n}\r\n\r\nexport interface HttpOptions extends DefaultOptions {\r\n\r\n /**\r\n * 专用路由的值,默认为/__PHECDA_SERVER__,处理phecda-client发出的合并请求\r\n */\r\n route?: string\r\n\r\n /**\r\n * 专用路由的插件(work for merge request),\r\n */\r\n plugins?: string[]\r\n\r\n}\r\n\r\nexport interface HttpContext extends BaseContext {\r\n parallel?: true\r\n index?: number\r\n query: Record<string, any>\r\n params: Record<string, string>\r\n body: Record<string, any>\r\n headers: IncomingHttpHeaders\r\n // redirect:(url:string)=>void\r\n\r\n}\r\nexport function argToReq(params: ControllerMetaData['params'], args: any[], headers: Record<string, any>) {\r\n const req = {\r\n body: {},\r\n query: {},\r\n params: {},\r\n headers,\r\n } as any\r\n\r\n params.forEach((param) => {\r\n if (param.key)\r\n req[param.type][param.key] = args[param.index]\r\n\r\n else\r\n req[param.type] = args[param.index]\r\n })\r\n\r\n return req\r\n}\r\n","import { hostname } from 'os'\r\nimport { BaseContext, DefaultOptions } from '../types'\r\n\r\nexport function genClientQueue(key?: string) {\r\n return `PS-${key ? `${key}-` : ''}${hostname()}-${process.pid}`\r\n}\r\n\r\nexport interface RpcServerOptions extends DefaultOptions {\r\n\r\n}\r\n\r\nexport interface RpcClientOptions {\r\n // add to clientQueue\r\n key?: string\r\n timeout?: number\r\n max?: number\r\n}\r\nexport interface RpcContext extends BaseContext {\r\n args: any[]\r\n id: string\r\n queue: string\r\n isEvent?: boolean\r\n}\r\n","export function shallowClone(obj: any) {\r\n return { ...obj }\r\n}\r\nexport function mergeObject(...args: any[]) {\r\n return Object.assign({}, ...args)\r\n}\r\nexport function mergeArray(...args: any[]) {\r\n return args.filter(item => !!item).flat()\r\n}\r\n","import pc from 'picocolors'\r\nimport Debug from 'debug'\r\nimport { defaultPipe } from './pipe'\r\nimport { ForbiddenException, FrameworkException } from './exception'\r\nimport { defaultFilter } from './filter'\r\nimport { Histroy } from './history'\r\nimport type { BaseContext, DefaultOptions } from './types'\r\nimport { IS_HMR, IS_STRICT } from './common'\r\nimport type { ControllerMeta, Meta } from './meta'\r\nimport { log } from './utils'\r\nimport type { Exception } from './exception'\r\nimport { resolveDep } from './helper'\r\n\r\nconst debug = Debug('phecda-server(Context)')\r\n\r\nexport interface PipeArg { arg: any; pipe?: string; key: string; type: string; index: number; reflect: any; define: Record<string, any> }\r\nexport type GuardType<C extends BaseContext = any> = ((ctx: C) => Promise<boolean> | boolean)\r\nexport type InterceptorType<C extends BaseContext = any> = (ctx: C) => (any | ((ret: any) => any))\r\nexport type PipeType<C extends BaseContext = any> = (arg: PipeArg, ctx: C) => Promise<any>\r\nexport type FilterType<C extends BaseContext = any, E extends Exception = any> = (err: E | Error, ctx?: C) => Error | any\r\n\r\nexport class Context<Data extends BaseContext> {\r\n method: string\r\n params: string[]\r\n history = new Histroy()\r\n\r\n static filterRecord: Record<PropertyKey, FilterType> = {\r\n default: defaultFilter,\r\n }\r\n\r\n static pipeRecord: Record<PropertyKey, PipeType> = {\r\n default: defaultPipe,\r\n }\r\n\r\n static guardRecord: Record<PropertyKey, GuardType> = {}\r\n static interceptorRecord: Record<PropertyKey, InterceptorType> = {}\r\n\r\n static pluginRecord: Record<PropertyKey, any> = {}\r\n private postInterceptors: Function[]\r\n\r\n constructor(public data: Data) {\r\n if (IS_HMR)\r\n // @ts-expect-error work for debug\r\n data._context = this\r\n }\r\n\r\n public async run<ReturnData = any, ReturnErr = any>(opts: DefaultOptions, successCb: (data: any) => ReturnData, failCb: (err: any) => ReturnErr) {\r\n const { meta, moduleMap } = this.data\r\n const { globalGuards = [], globalFilter, globalInterceptors = [], globalPipe } = opts\r\n const {\r\n paramsType,\r\n data: {\r\n guards, interceptors, params,\r\n tag, func, ctx, filter,\r\n\r\n },\r\n } = meta\r\n\r\n try {\r\n await this.useGuard([...globalGuards, ...guards])\r\n const i1 = await this.useInterceptor([...globalInterceptors, ...interceptors])\r\n if (i1 !== undefined)\r\n return successCb(i1)\r\n\r\n const args = await this.usePipe(params.map((param) => {\r\n return { arg: resolveDep(this.data[param.type], param.key), reflect: paramsType[param.index], ...param, pipe: param.pipe || globalPipe }\r\n }))\r\n const instance = moduleMap.get(tag)!\r\n if (ctx)\r\n instance[ctx] = this.data\r\n const returnData = await instance[func](...args)\r\n const i2 = await this.usePostInterceptor(returnData)\r\n if (i2 !== undefined)\r\n return successCb(i2)\r\n\r\n return successCb(returnData)\r\n }\r\n catch (e) {\r\n const err = await this.useFilter(e, filter || globalFilter)\r\n return failCb(err)\r\n }\r\n }\r\n\r\n private usePipe(args: PipeArg[]) {\r\n return Promise.all(args.map((item) => {\r\n if (item.pipe && !Context.pipeRecord[item.pipe]) {\r\n if (IS_STRICT) {\r\n throw new FrameworkException(`can't find pipe named '${item.pipe}'`)\r\n }\r\n\r\n else {\r\n debug(`Can't find pipe named \"${item.pipe}\" when handling the ${item.index + 1}th argument of the func \"${this.data.func}\" on module \"${this.data.tag}\",use default pipe instead`)\r\n\r\n return Context.pipeRecord.default(item, this.data)\r\n }\r\n }\r\n\r\n return Context.pipeRecord[item.pipe || 'default'](item, this.data)\r\n }))\r\n }\r\n\r\n private useFilter(arg: any, filter = 'default') {\r\n if (!Context.filterRecord[filter]) {\r\n if (IS_STRICT) {\r\n throw new FrameworkException(`can't find filter named \"${filter}\"`)\r\n }\r\n else {\r\n debug(`Can't find filter named \"${filter}\" when handling func \"${this.data.func}\" on module \"${this.data.tag}\",use default filter instead`)\r\n\r\n return Context.filterRecord.default(arg, this.data)\r\n }\r\n }\r\n\r\n return Context.filterRecord[filter](arg, this.data)\r\n }\r\n\r\n private async useGuard(guards: string[]) {\r\n for (const guard of guards) {\r\n if (this.history.record(guard, 'guard')) {\r\n if (!(guard in Context.guardRecord)) {\r\n if (IS_STRICT)\r\n throw new FrameworkException(`Can't find guard named \"${guard}\"`)\r\n else debug(`Can't find guard named \"${guard}\" when handling func \"${this.data.func}\" on module \"${this.data.tag}\",skip it`)\r\n continue\r\n }\r\n if (!await Context.guardRecord[guard](this.data))\r\n throw new ForbiddenException(`Guard exception--[${guard}]`)\r\n }\r\n }\r\n }\r\n\r\n private async usePostInterceptor(data: any) {\r\n for (const cb of this.postInterceptors) {\r\n const ret = await cb(data)\r\n if (ret !== undefined)\r\n return ret\r\n }\r\n }\r\n\r\n private async useInterceptor(interceptors: string[]) {\r\n const cb = []\r\n for (const interceptor of interceptors) {\r\n if (this.history.record(interceptor, 'interceptor')) {\r\n if (!(interceptor in Context.interceptorRecord)) {\r\n if (IS_STRICT)\r\n throw new FrameworkException(`can't find interceptor named \"${interceptor}\"`)\r\n else debug(`Can't find interceptor named \"${interceptor}\" when handling func \"${this.data.func}\" on module \"${this.data.tag}\",skip it`)\r\n\r\n continue\r\n }\r\n const interceptRet = await Context.interceptorRecord[interceptor](this.data)\r\n if (interceptRet !== undefined) {\r\n if (typeof interceptRet === 'function')\r\n cb.push(interceptRet)\r\n\r\n else\r\n return interceptRet\r\n }\r\n }\r\n }\r\n this.postInterceptors = cb\r\n }\r\n\r\n static usePlugin(plugins: string[]) {\r\n const ret = []\r\n for (const m of plugins) {\r\n if (!(m in Context.pluginRecord)) {\r\n if (IS_STRICT)\r\n throw new FrameworkException(`can't find middleware named '${m}'`)\r\n\r\n continue\r\n }\r\n ret.push(Context.pluginRecord[m])\r\n }\r\n return ret as any[]\r\n }\r\n}\r\n\r\nexport function addPlugin<T>(key: PropertyKey, handler: T) {\r\n if (Context.pluginRecord[key] && Context.pluginRecord[key] !== handler)\r\n log(`overwrite Plugin \"${String(key)}\"`, 'warn')\r\n\r\n Context.pluginRecord[key] = handler\r\n}\r\n\r\nexport function addPipe<C extends BaseContext>(key: PropertyKey, handler: PipeType<C>) {\r\n if (Context.pipeRecord[key] && Context.pipeRecord[key] !== handler)\r\n log(`overwrite Pipe \"${String(key)}\"`, 'warn')\r\n Context.pipeRecord[key] = handler\r\n}\r\n\r\nexport function addFilter<C extends BaseContext>(key: PropertyKey, handler: FilterType<C>) {\r\n if (Context.filterRecord[key] && Context.filterRecord[key] !== handler)\r\n log(`overwrite Filter \"${String(key)}\"`, 'warn')\r\n Context.filterRecord[key] = handler\r\n}\r\n\r\nexport function addGuard<C extends BaseContext>(key: PropertyKey, handler: GuardType<C>) {\r\n if (Context.guardRecord[key] && Context.guardRecord[key] !== handler)\r\n log(`overwrite Guard \"${String(key)}\"`, 'warn')\r\n Context.guardRecord[key] = handler\r\n}\r\n\r\nexport function addInterceptor<C extends BaseContext>(key: PropertyKey, handler: InterceptorType<C>) {\r\n if (Context.interceptorRecord[key] && Context.interceptorRecord[key] !== handler)\r\n log(`overwrite Interceptor \"${String(key)}\"`, 'warn')\r\n Context.interceptorRecord[key] = handler\r\n}\r\n\r\n// detect whether plugin/filter/pipe/guard/intercept is injected\r\nexport function detectAopDep(meta: Meta[], { guards, interceptors, plugins }: {\r\n guards?: string[]\r\n interceptors?: string[]\r\n plugins?: string[]\r\n} = {}, controller: string = 'http') {\r\n const pluginSet = new Set<string>(plugins)\r\n\r\n const guardSet = new Set<string>(guards)\r\n const interceptorSet = new Set<string>(interceptors)\r\n const pipeSet = new Set<string>()\r\n const filterSet = new Set<string>()\r\n const warningSet = new Set<string>();\r\n\r\n (meta as ControllerMeta[]).forEach(({ data }) => {\r\n if (data.controller !== controller) {\r\n if (data[controller])\r\n warningSet.add(`Module \"${data.tag === data.name ? data.name : `${data.name}(${data.tag})`}\" should use ${controller} controller to decorate class or remove ${controller} decorator on method \"${data.func}\"`)\r\n\r\n return\r\n }\r\n if (data.filter)\r\n filterSet.add(data.filter)\r\n\r\n data.interceptors.forEach(i => interceptorSet.add(i))\r\n data.guards.forEach(i => guardSet.add(i))\r\n data.plugins.forEach(i => pluginSet.add(i))\r\n data.params.forEach((i) => {\r\n if (i.pipe)\r\n pipeSet.add(i.pipe)\r\n })\r\n })\r\n\r\n const missPlugins = [...pluginSet].filter(i => !Context.pluginRecord[i])\r\n const missGuards = [...guardSet].filter(i => !Context.guardRecord[i])\r\n const missInterceptors = [...interceptorSet].filter(i => !Context.interceptorRecord[i])\r\n const missPipes = [...pipeSet].filter(i => !Context.pipeRecord[i])\r\n const missFilters = [...filterSet].filter(i => !Context.filterRecord[i])\r\n\r\n if (missPlugins.length)\r\n log(`${pc.white(`Plugin [${missPlugins.join(',')}]`)} doesn't exist`, 'warn')\r\n if (missGuards.length)\r\n log(`${pc.magenta(`Guard [${missGuards.join(',')}]`)} doesn't exist`, 'warn')\r\n\r\n if (missInterceptors.length)\r\n log(`${pc.cyan(`Interceptor [${missInterceptors.join(',')}]`)} doesn't exist`, 'warn')\r\n\r\n if (missPipes.length)\r\n log(`${pc.blue(`Pipe [${missPipes.join(',')}]`)} doesn't exist`, 'warn')\r\n\r\n if (missFilters.length)\r\n log(`${pc.red(`Filter [${missFilters.join(',')}]`)} doesn't exist`, 'warn')\r\n\r\n warningSet.forEach(warn => log(warn, 'warn'))\r\n\r\n return {\r\n missPlugins,\r\n missGuards,\r\n missInterceptors,\r\n missPipes,\r\n missFilters,\r\n }\r\n}\r\n","import { LOG_LEVEL } from './common'\r\nimport { Exception, UndefinedException } from './exception'\r\nimport { log } from './utils'\r\nimport type { FilterType } from './context'\r\n\r\nexport const defaultFilter: FilterType = (e) => {\r\n if (!(e instanceof Exception)) {\r\n log(e.message, 'error')\r\n if (LOG_LEVEL <= 0)\r\n console.error(e.stack)\r\n\r\n e = new UndefinedException(e.message || e)\r\n }\r\n else {\r\n log(`[${e.constructor.name}] ${e.message}`, 'error')\r\n if (LOG_LEVEL <= 0)\r\n console.error(e.stack)\r\n }\r\n\r\n return e.data\r\n}\r\n","export class Histroy {\r\n guard: string[] = []\r\n interceptor: string[] = []\r\n record(name: string, type: 'guard' | 'interceptor') {\r\n if (!this[type].includes(name)) {\r\n this[type].push(name)\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\n"],"mappings":"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","names":["Exception","Error","message","status","description","constructor","data","ERROR_SYMBOL","ValidateException","Exception","constructor","message","isPhecda","plainToClass","transformInstance","defaultPipe","arg","reflect","index","isPhecda","instance","plainToClass","err","transformInstance","length","ValidateException","undefined","Number","Boolean","includes","Object","is","NaN","UndefinedException","Exception","constructor","message","ForbiddenException","Exception","constructor","message","BadRequestException","Exception","constructor","message","NotFoundException","Exception","constructor","message","ConflictException","Exception","constructor","message","BadGatewayException","Exception","constructor","message","InvalidInputException","Exception","constructor","message","UnsupportedMediaTypeException","Exception","constructor","message","PayloadLargeException","Exception","constructor","message","TimeoutException","Exception","constructor","message","UnauthorizedException","Exception","constructor","message","ServiceUnavailableException","Exception","constructor","message","FrameworkException","Exception","constructor","message","TimerException","Exception","constructor","message","WorkerException","Exception","constructor","message","HMR","cb","IS_HMR","globalThis","__PS_HMR__","push","resolveDep","ret","key","argToReq","params","args","headers","req","body","query","forEach","param","type","index","hostname","genClientQueue","key","hostname","process","pid","shallowClone","obj","mergeObject","args","Object","assign","mergeArray","filter","item","flat","pc","Debug","defaultFilter","e","Exception","log","message","LOG_LEVEL","console","error","stack","UndefinedException","constructor","name","data","Histroy","guard","interceptor","record","name","type","includes","push","debug","Debug","Context","data","method","params","history","postInterceptors","constructor","Histroy","IS_HMR","_context","run","opts","successCb","failCb","meta","moduleMap","globalGuards","globalFilter","globalInterceptors","globalPipe","paramsType","guards","interceptors","tag","func","ctx","filter","useGuard","i1","useInterceptor","undefined","args","usePipe","map","param","arg","resolveDep","type","key","reflect","index","pipe","instance","get","returnData","i2","usePostInterceptor","e","err","useFilter","Promise","all","item","pipeRecord","IS_STRICT","FrameworkException","default","filterRecord","guard","record","guardRecord","ForbiddenException","cb","ret","interceptor","interceptorRecord","interceptRet","push","usePlugin","plugins","m","pluginRecord","defaultFilter","defaultPipe","addPlugin","handler","log","String","addPipe","addFilter","addGuard","addInterceptor","detectAopDep","controller","pluginSet","Set","guardSet","interceptorSet","pipeSet","filterSet","warningSet","forEach","add","name","i","missPlugins","missGuards","missInterceptors","missPipes","missFilters","length","pc","white","join","magenta","cyan","blue","red","warn"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/common.ts","../src/utils.ts"],"names":["UNMOUNT_SYMBOL","ERROR_SYMBOL","IS_HMR","process","env","NODE_ENV","IS_ONLY_GENERATE","PS_GENERATE","IS_STRICT","PS_STRICT","LOG_LEVEL","Number","PS_LOG_LEVEL","PS_EXIT_CODE","RELAUNCH","CODE","pc","time","internalLogger","console","setLogger","logger","log","msg","level","logLevel","info","warn","error","color","date","Date","current","now","interval","magenta","gray","getHours","getMinutes","getSeconds","Mix","InternalClass","ExtendClass","constructor","args","Object","assign"],"mappings":";;;;;;;;;AACO,IAAMA,iBAAiB;AAIvB,IAAMC,eAAe;AAErB,IAAMC,SAASC,QAAQC,IAAIC,aAAa;AACxC,IAAMC,mBAAmB,CAAC,CAACH,QAAQC,IAAIG;AACvC,IAAMC,YAAY,CAAC,CAACL,QAAQC,IAAIK;AAChC,IAAMC,YAAYC,OAAOR,QAAQC,IAAIQ,gBAAgB,CAAA;IAErD;UAAKC,eAAY;AAAZA,EAAAA,cAAAA,cACVC,cAAW,KAAXA;AADUD,EAAAA,cAAAA,cAEVE,UAAO,KAAPA;GAFUF,iBAAAA,eAAAA,CAAAA,EAAAA;;;ACZZ,OAAOG,QAAQ;AAIf,IAAIC;AAEJ,IAAIC,iBAAiBC;AAEd,SAASC,UAAUC,QAAwB;AAChDH,mBAAiBG;AACnB;AAFgBD;AAIT,SAASE,IAAIC,KAAaC,QAA2C,OAAO;AACjF,QAAMC,WAAW;IACfC,MAAM;IACNJ,KAAK;IACLK,MAAM;IACNC,OAAO;EACT,EAAEJ;AAEF,MAAIC,WAAWf;AACb;AAEF,QAAMmB,QAAS;IAAED,OAAO;IAAOF,MAAM;IAAQC,MAAM;IAAUL,KAAK;EAAQ,EAAYE;AACtF,QAAMM,OAAO,IAAIC,KAAAA;AACjB,QAAMC,UAAUD,KAAKE,IAAG;AACxB,QAAMC,WAAYjB,QAAQe,UAAUf,OAAQ,IAAIe,UAAUf,SAAS;AACnEA,SAAOe;AAEPd,iBAAeM,OAAO,GAAGR,GAAGmB,QAAQ,iBAAA,KAAsBnB,GAAGoB,KAAK,GAAGN,KAAKO,SAAQ,KAAMP,KAAKQ,WAAU,KAAMR,KAAKS,WAAU,GAAI,KAAKvB,GAAGa,OAAON,GAAAA,KAAQP,GAAGoB,KAAKF,QAAAA,GAAW;AAC5K;AAlBgBZ;AAoBT,SAASkB,IAA8DC,eAAmBC,aAAiB;AAChH,SAAO,cAAcD,cAAAA;IACnBE,eAAeC,MAAW;AACxB,YAAK;AACLC,aAAOC,OAAO,MAAM,IAAIJ,YAAAA,GAAeE,IAAAA,CAAAA;IACzC;EACF;AACF;AAPgBJ","sourcesContent":["// export const MERGE_SYMBOL = '__PS_MERGE__'// is parallel request in http\r\nexport const UNMOUNT_SYMBOL = '__PS_UNMOUNT__'// property that include unmount callbacks\r\n// export const MODULE_SYMBOL = '__PS_MODULE__'// req[MODULE_SYMBOL]=modulemap\r\n// export const META_SYMBOL = '__PS_META__'// req[META_SYMBOL]=meta\r\n// export const PS_SYMBOL = '__PS__'// (app/router)[PS_SYMBOL]=Factory(...)\r\nexport const ERROR_SYMBOL = '__PS_ERROR__'// only use in paralle request\r\n\r\nexport const IS_HMR = process.env.NODE_ENV === 'development'\r\nexport const IS_ONLY_GENERATE = !!process.env.PS_GENERATE// work for ci; only generate code\r\nexport const IS_STRICT = !!process.env.PS_STRICT// throw error if depends on an aop module which is not imported\r\nexport const LOG_LEVEL = Number(process.env.PS_LOG_LEVEL || 0)// internal logger\r\n\r\nexport enum PS_EXIT_CODE {\r\n RELAUNCH = 2,\r\n CODE = 4,\r\n}\r\n","import pc from 'picocolors'\r\nimport type { AbConstruct, Construct } from 'phecda-core'\r\nimport { LOG_LEVEL } from './common'\r\n\r\nlet time: number\r\n\r\nlet internalLogger = console\r\n\r\nexport function setLogger(logger: typeof console) {\r\n internalLogger = logger\r\n}\r\n\r\nexport function log(msg: string, level: 'error' | 'info' | 'warn' | 'log' = 'log') {\r\n const logLevel = {\r\n info: 0,\r\n log: 1,\r\n warn: 2,\r\n error: 3,\r\n }[level]\r\n\r\n if (logLevel < LOG_LEVEL)\r\n return\r\n\r\n const color = ({ error: 'red', info: 'gray', warn: 'yellow', log: 'green' } as const)[level]\r\n const date = new Date()\r\n const current = Date.now()\r\n const interval = (time && current - time) ? `+${current - time}` : ''\r\n time = current\r\n\r\n internalLogger[level](`${pc.magenta('[phecda-server]')} ${pc.gray(`${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`)} ${pc[color](msg)} ${pc.gray(interval)}`)\r\n}\r\n\r\nexport function Mix<C1 extends Construct | AbConstruct, C2 extends Construct>(InternalClass: C1, ExtendClass: C2) {\r\n return class extends InternalClass {\r\n constructor(...args: any) {\r\n super()\r\n Object.assign(this, new ExtendClass(...args))\r\n }\r\n } as new (...args: ConstructorParameters<C2>) => InstanceType<C1> & InstanceType<C2>\r\n}\r\n"]}
|
package/dist/chunk-ZE336SKZ.js
DELETED
|
@@ -1,295 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var _chunkY6LI4FDOjs = require('./chunk-Y6LI4FDO.js');
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var _chunkZ4YJHEXTjs = require('./chunk-Z4YJHEXT.js');
|
|
8
|
-
|
|
9
|
-
// src/decorators/param.ts
|
|
10
|
-
var _phecdacore = require('phecda-core');
|
|
11
|
-
function BaseParam(data) {
|
|
12
|
-
return (target, k, index) => {
|
|
13
|
-
if (!k)
|
|
14
|
-
return;
|
|
15
|
-
_phecdacore.setPropertyState.call(void 0, target, k, (state) => {
|
|
16
|
-
if (!state.params)
|
|
17
|
-
state.params = [
|
|
18
|
-
..._optionalChain([_phecdacore.getState.call(void 0, target, k), 'optionalAccess', _ => _.params]) || []
|
|
19
|
-
].map(_chunkY6LI4FDOjs.shallowClone);
|
|
20
|
-
const existItem = state.params.find((item) => item.index === index);
|
|
21
|
-
if (existItem)
|
|
22
|
-
Object.assign(existItem, data);
|
|
23
|
-
else
|
|
24
|
-
state.params.push({
|
|
25
|
-
...data,
|
|
26
|
-
index
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
_chunkZ4YJHEXTjs.__name.call(void 0, BaseParam, "BaseParam");
|
|
32
|
-
function Body(key = "") {
|
|
33
|
-
return BaseParam({
|
|
34
|
-
type: "body",
|
|
35
|
-
key
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
_chunkZ4YJHEXTjs.__name.call(void 0, Body, "Body");
|
|
39
|
-
function Head(key) {
|
|
40
|
-
return BaseParam({
|
|
41
|
-
type: "headers",
|
|
42
|
-
key: key.toLowerCase()
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
_chunkZ4YJHEXTjs.__name.call(void 0, Head, "Head");
|
|
46
|
-
function Query(key = "") {
|
|
47
|
-
return BaseParam({
|
|
48
|
-
type: "query",
|
|
49
|
-
key
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
_chunkZ4YJHEXTjs.__name.call(void 0, Query, "Query");
|
|
53
|
-
function Param(key) {
|
|
54
|
-
return BaseParam({
|
|
55
|
-
type: "params",
|
|
56
|
-
key
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
_chunkZ4YJHEXTjs.__name.call(void 0, Param, "Param");
|
|
60
|
-
function Arg(target, k, index) {
|
|
61
|
-
BaseParam({
|
|
62
|
-
type: "args",
|
|
63
|
-
key: `${index}`
|
|
64
|
-
})(target, k, index);
|
|
65
|
-
}
|
|
66
|
-
_chunkZ4YJHEXTjs.__name.call(void 0, Arg, "Arg");
|
|
67
|
-
|
|
68
|
-
// src/decorators/aop.ts
|
|
69
|
-
|
|
70
|
-
function Guard(...guards) {
|
|
71
|
-
return (target, k) => {
|
|
72
|
-
_phecdacore.setPropertyState.call(void 0, target, k, (state) => {
|
|
73
|
-
if (!state.guards)
|
|
74
|
-
state.guards = /* @__PURE__ */ new Set([
|
|
75
|
-
..._optionalChain([_phecdacore.getState.call(void 0, target, k), 'optionalAccess', _2 => _2.guards]) || []
|
|
76
|
-
]);
|
|
77
|
-
guards.forEach((guard) => {
|
|
78
|
-
if (state.guards.has(guard))
|
|
79
|
-
state.guards.delete(guard);
|
|
80
|
-
state.guards.add(guard);
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
_chunkZ4YJHEXTjs.__name.call(void 0, Guard, "Guard");
|
|
86
|
-
function Plugin(...plugins) {
|
|
87
|
-
return (target, k) => {
|
|
88
|
-
_phecdacore.setPropertyState.call(void 0, target, k, (state) => {
|
|
89
|
-
if (!state.plugins)
|
|
90
|
-
state.plugins = /* @__PURE__ */ new Set([
|
|
91
|
-
..._optionalChain([_phecdacore.getState.call(void 0, target, k), 'optionalAccess', _3 => _3.plugins]) || []
|
|
92
|
-
]);
|
|
93
|
-
plugins.forEach((plugin) => {
|
|
94
|
-
if (state.plugins.has(plugin))
|
|
95
|
-
state.plugins.delete(plugin);
|
|
96
|
-
state.plugins.add(plugin);
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
_chunkZ4YJHEXTjs.__name.call(void 0, Plugin, "Plugin");
|
|
102
|
-
function Interceptor(...interceptors) {
|
|
103
|
-
return (target, k) => {
|
|
104
|
-
_phecdacore.setPropertyState.call(void 0, target, k, (state) => {
|
|
105
|
-
if (!state.interceptors)
|
|
106
|
-
state.interceptors = /* @__PURE__ */ new Set([
|
|
107
|
-
..._optionalChain([_phecdacore.getState.call(void 0, target, k), 'optionalAccess', _4 => _4.interceptors]) || []
|
|
108
|
-
]);
|
|
109
|
-
interceptors.forEach((interceptor) => {
|
|
110
|
-
if (state.interceptors.has(interceptor))
|
|
111
|
-
state.interceptors.delete(interceptor);
|
|
112
|
-
state.interceptors.add(interceptor);
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
_chunkZ4YJHEXTjs.__name.call(void 0, Interceptor, "Interceptor");
|
|
118
|
-
function Filter(filter) {
|
|
119
|
-
return (target, k) => {
|
|
120
|
-
_phecdacore.setPropertyState.call(void 0, target, k, (state) => state.filter = filter);
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
_chunkZ4YJHEXTjs.__name.call(void 0, Filter, "Filter");
|
|
124
|
-
function Pipe(pipe) {
|
|
125
|
-
return (target, k, index) => {
|
|
126
|
-
if (typeof index === "number") {
|
|
127
|
-
BaseParam({
|
|
128
|
-
pipe
|
|
129
|
-
})(target, k, index);
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
_phecdacore.setPropertyState.call(void 0, target, k, (state) => state.pipe = pipe);
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
_chunkZ4YJHEXTjs.__name.call(void 0, Pipe, "Pipe");
|
|
136
|
-
|
|
137
|
-
// src/decorators/http.ts
|
|
138
|
-
|
|
139
|
-
function Route(route, type) {
|
|
140
|
-
return (target, k) => {
|
|
141
|
-
_phecdacore.setPropertyState.call(void 0, target, k, (state) => {
|
|
142
|
-
state.http = _chunkY6LI4FDOjs.mergeObject.call(void 0, state.http || _optionalChain([_phecdacore.getState.call(void 0, target, k), 'optionalAccess', _5 => _5.http]), {
|
|
143
|
-
route,
|
|
144
|
-
type
|
|
145
|
-
});
|
|
146
|
-
});
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
_chunkZ4YJHEXTjs.__name.call(void 0, Route, "Route");
|
|
150
|
-
function Header(headers) {
|
|
151
|
-
return (target, k) => {
|
|
152
|
-
_phecdacore.setPropertyState.call(void 0, target, k, (state) => {
|
|
153
|
-
if (!state.http)
|
|
154
|
-
state.http = _chunkY6LI4FDOjs.mergeObject.call(void 0, _optionalChain([_phecdacore.getState.call(void 0, target, k), 'optionalAccess', _6 => _6.http]));
|
|
155
|
-
state.http = _chunkY6LI4FDOjs.mergeObject.call(void 0, state.http, {
|
|
156
|
-
headers: _chunkY6LI4FDOjs.mergeObject.call(void 0, _optionalChain([state, 'access', _7 => _7.http, 'optionalAccess', _8 => _8.headers]), headers)
|
|
157
|
-
});
|
|
158
|
-
});
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
_chunkZ4YJHEXTjs.__name.call(void 0, Header, "Header");
|
|
162
|
-
function Get(route = "") {
|
|
163
|
-
return Route(route, "get");
|
|
164
|
-
}
|
|
165
|
-
_chunkZ4YJHEXTjs.__name.call(void 0, Get, "Get");
|
|
166
|
-
function Post(route = "") {
|
|
167
|
-
return Route(route, "post");
|
|
168
|
-
}
|
|
169
|
-
_chunkZ4YJHEXTjs.__name.call(void 0, Post, "Post");
|
|
170
|
-
function Put(route = "") {
|
|
171
|
-
return Route(route, "put");
|
|
172
|
-
}
|
|
173
|
-
_chunkZ4YJHEXTjs.__name.call(void 0, Put, "Put");
|
|
174
|
-
function Patch(route = "") {
|
|
175
|
-
return Route(route, "patch");
|
|
176
|
-
}
|
|
177
|
-
_chunkZ4YJHEXTjs.__name.call(void 0, Patch, "Patch");
|
|
178
|
-
function Delete(route = "") {
|
|
179
|
-
return Route(route, "delete");
|
|
180
|
-
}
|
|
181
|
-
_chunkZ4YJHEXTjs.__name.call(void 0, Delete, "Delete");
|
|
182
|
-
function Controller(prefix = "") {
|
|
183
|
-
return (target) => {
|
|
184
|
-
_phecdacore.setPropertyState.call(void 0, target, void 0, (state) => {
|
|
185
|
-
state.controller = "http";
|
|
186
|
-
state.http = _chunkY6LI4FDOjs.mergeObject.call(void 0, state.http || _optionalChain([_phecdacore.getState.call(void 0, target), 'optionalAccess', _9 => _9.http]), {
|
|
187
|
-
prefix
|
|
188
|
-
});
|
|
189
|
-
});
|
|
190
|
-
};
|
|
191
|
-
}
|
|
192
|
-
_chunkZ4YJHEXTjs.__name.call(void 0, Controller, "Controller");
|
|
193
|
-
|
|
194
|
-
// src/decorators/rpc.ts
|
|
195
|
-
|
|
196
|
-
function Event(isEvent = true) {
|
|
197
|
-
return (target, k) => {
|
|
198
|
-
_phecdacore.setPropertyState.call(void 0, target, k, (state) => {
|
|
199
|
-
state.rpc = _chunkY6LI4FDOjs.mergeObject.call(void 0, state.rpc || _optionalChain([_phecdacore.getState.call(void 0, target, k), 'optionalAccess', _10 => _10.rpc]), {
|
|
200
|
-
isEvent
|
|
201
|
-
});
|
|
202
|
-
});
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
_chunkZ4YJHEXTjs.__name.call(void 0, Event, "Event");
|
|
206
|
-
function Queue(queue = "") {
|
|
207
|
-
return (target, k) => {
|
|
208
|
-
_phecdacore.setPropertyState.call(void 0, target, k, (state) => {
|
|
209
|
-
state.rpc = _chunkY6LI4FDOjs.mergeObject.call(void 0, state.rpc || _optionalChain([_phecdacore.getState.call(void 0, target, k), 'optionalAccess', _11 => _11.rpc]), {
|
|
210
|
-
queue
|
|
211
|
-
});
|
|
212
|
-
});
|
|
213
|
-
};
|
|
214
|
-
}
|
|
215
|
-
_chunkZ4YJHEXTjs.__name.call(void 0, Queue, "Queue");
|
|
216
|
-
function Rpc() {
|
|
217
|
-
return (target) => {
|
|
218
|
-
_phecdacore.setPropertyState.call(void 0, target, void 0, (state) => {
|
|
219
|
-
state.controller = "rpc";
|
|
220
|
-
});
|
|
221
|
-
};
|
|
222
|
-
}
|
|
223
|
-
_chunkZ4YJHEXTjs.__name.call(void 0, Rpc, "Rpc");
|
|
224
|
-
|
|
225
|
-
// src/decorators/index.ts
|
|
226
|
-
|
|
227
|
-
function Injectable() {
|
|
228
|
-
return (target) => _phecdacore.Empty.call(void 0, target);
|
|
229
|
-
}
|
|
230
|
-
_chunkZ4YJHEXTjs.__name.call(void 0, Injectable, "Injectable");
|
|
231
|
-
var Ctx = /* @__PURE__ */ _chunkZ4YJHEXTjs.__name.call(void 0, (target, key) => {
|
|
232
|
-
_phecdacore.set.call(void 0, target, "context", key);
|
|
233
|
-
}, "Ctx");
|
|
234
|
-
function Define(key, value) {
|
|
235
|
-
return (target, k, index) => {
|
|
236
|
-
if (typeof index === "number") {
|
|
237
|
-
_phecdacore.setPropertyState.call(void 0, target, k, (state) => {
|
|
238
|
-
const parentState = _optionalChain([_phecdacore.getState.call(void 0, target, k), 'optionalAccess', _12 => _12.params]) || [];
|
|
239
|
-
if (!state.params)
|
|
240
|
-
state.params = [
|
|
241
|
-
...parentState
|
|
242
|
-
].map(_chunkY6LI4FDOjs.shallowClone);
|
|
243
|
-
const existItem = state.params.find((item) => item.index === index);
|
|
244
|
-
if (existItem)
|
|
245
|
-
existItem.define = _chunkY6LI4FDOjs.mergeObject.call(void 0, existItem.define, {
|
|
246
|
-
[key]: value
|
|
247
|
-
});
|
|
248
|
-
else
|
|
249
|
-
state.params.push({
|
|
250
|
-
define: {
|
|
251
|
-
[key]: value
|
|
252
|
-
},
|
|
253
|
-
index
|
|
254
|
-
});
|
|
255
|
-
});
|
|
256
|
-
return;
|
|
257
|
-
}
|
|
258
|
-
_phecdacore.setPropertyState.call(void 0, target, k, (state) => {
|
|
259
|
-
const parentState = _optionalChain([_phecdacore.getState.call(void 0, target, k), 'optionalAccess', _13 => _13.define]);
|
|
260
|
-
if (!state.define)
|
|
261
|
-
state.define = _chunkY6LI4FDOjs.mergeObject.call(void 0, parentState);
|
|
262
|
-
state.define[key] = value;
|
|
263
|
-
});
|
|
264
|
-
};
|
|
265
|
-
}
|
|
266
|
-
_chunkZ4YJHEXTjs.__name.call(void 0, Define, "Define");
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
exports.BaseParam = BaseParam; exports.Body = Body; exports.Head = Head; exports.Query = Query; exports.Param = Param; exports.Arg = Arg; exports.Guard = Guard; exports.Plugin = Plugin; exports.Interceptor = Interceptor; exports.Filter = Filter; exports.Pipe = Pipe; exports.Route = Route; exports.Header = Header; exports.Get = Get; exports.Post = Post; exports.Put = Put; exports.Patch = Patch; exports.Delete = Delete; exports.Controller = Controller; exports.Event = Event; exports.Queue = Queue; exports.Rpc = Rpc; exports.Injectable = Injectable; exports.Ctx = Ctx; exports.Define = Define;
|
|
295
|
-
//# sourceMappingURL=chunk-ZE336SKZ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/decorators/param.ts","../src/decorators/aop.ts","../src/decorators/http.ts","../src/decorators/rpc.ts","../src/decorators/index.ts"],"names":["getState","setPropertyState","BaseParam","data","target","k","index","state","params","map","shallowClone","existItem","find","item","Object","assign","push","Body","key","type","Head","toLowerCase","Query","Param","Arg","Guard","guards","Set","forEach","guard","has","delete","add","Plugin","plugins","plugin","Interceptor","interceptors","interceptor","Filter","filter","Pipe","pipe","Route","route","http","mergeObject","Header","headers","Get","Post","Put","Patch","Delete","Controller","prefix","undefined","controller","Event","isEvent","rpc","Queue","queue","Rpc","Empty","set","Injectable","Ctx","Define","value","parentState","define"],"mappings":"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","sourcesContent":["import { getState, setPropertyState } from 'phecda-core'\r\nimport { shallowClone } from './helper'\r\n\r\nexport function BaseParam(data: Record<string, any>): ParameterDecorator {\r\n return (target: any, k: PropertyKey | undefined, index: number) => {\r\n if (!k)\r\n return\r\n setPropertyState(target, k, (state) => {\r\n if (!state.params)\r\n state.params = [...(getState(target, k)?.params || [])].map(shallowClone)\r\n\r\n const existItem = state.params.find((item: any) => item.index === index)\r\n\r\n if (existItem)\r\n Object.assign(existItem, data)\r\n\r\n else\r\n state.params.push({ ...data, index })\r\n })\r\n }\r\n}\r\n\r\nexport function Body(key = '') {\r\n return BaseParam({\r\n type: 'body',\r\n key,\r\n })\r\n}\r\n// req.headers\r\nexport function Head(key: string) {\r\n return BaseParam({\r\n type: 'headers', key: key.toLowerCase(),\r\n })\r\n}\r\n\r\nexport function Query(key = '') {\r\n return BaseParam({ type: 'query', key })\r\n}\r\nexport function Param(key: string) {\r\n return BaseParam({\r\n type: 'params', key,\r\n })\r\n}\r\n\r\n// work for micro service\r\nexport function Arg(target: any, k: string, index: number) {\r\n BaseParam({\r\n type: 'args', key: `${index}`,\r\n })(target, k, index)\r\n}\r\n","import { getState, setPropertyState } from 'phecda-core'\r\nimport { BaseParam } from './param'\r\nexport function Guard(...guards: string[]) {\r\n return (target: any, k?: PropertyKey) => {\r\n setPropertyState(target, k, (state) => {\r\n if (!state.guards)\r\n state.guards = new Set([...(getState(target, k)?.guards || [])])\r\n\r\n guards.forEach((guard) => {\r\n if (state.guards.has(guard))\r\n state.guards.delete(guard)\r\n\r\n state.guards.add(guard)\r\n })\r\n })\r\n }\r\n}\r\n\r\nexport function Plugin(...plugins: string[]) {\r\n return (target: any, k?: PropertyKey) => {\r\n setPropertyState(target, k, (state) => {\r\n if (!state.plugins)\r\n state.plugins = new Set([...(getState(target, k)?.plugins || [])])\r\n\r\n plugins.forEach((plugin) => {\r\n if (state.plugins.has(plugin))\r\n state.plugins.delete(plugin)\r\n\r\n state.plugins.add(plugin)\r\n })\r\n })\r\n }\r\n}\r\n\r\nexport function Interceptor(...interceptors: string[]) {\r\n return (target: any, k?: PropertyKey) => {\r\n setPropertyState(target, k, (state) => {\r\n if (!state.interceptors)\r\n state.interceptors = new Set([...(getState(target, k)?.interceptors || [])])\r\n\r\n interceptors.forEach((interceptor) => {\r\n if (state.interceptors.has(interceptor))\r\n state.interceptors.delete(interceptor)\r\n\r\n state.interceptors.add(interceptor)\r\n })\r\n })\r\n }\r\n}\r\nexport function Filter(filter: string) {\r\n return (target: any, k?: PropertyKey) => {\r\n setPropertyState(target, k, state => state.filter = filter)\r\n }\r\n}\r\nexport function Pipe(pipe?: string) {\r\n return (target: any, k?: any, index?: any) => {\r\n if (typeof index === 'number') {\r\n BaseParam({ pipe })(target, k, index)\r\n\r\n return\r\n }\r\n setPropertyState(target, k, state => state.pipe = pipe)\r\n }\r\n}\r\n","import { getState, setPropertyState } from 'phecda-core'\r\nimport { mergeObject } from './helper'\r\n\r\nexport function Route(route: string, type: string): MethodDecorator {\r\n return (target: any, k: PropertyKey) => {\r\n setPropertyState(target, k, (state) => {\r\n state.http = mergeObject((state.http || getState(target, k)?.http),\r\n {\r\n route,\r\n type,\r\n })\r\n })\r\n }\r\n}\r\nexport function Header(headers: Record<string, string>): MethodDecorator {\r\n return (target: any, k: PropertyKey) => {\r\n setPropertyState(target, k, (state) => {\r\n if (!state.http)\r\n state.http = mergeObject(getState(target, k)?.http)\r\n\r\n state.http = mergeObject(state.http, {\r\n headers: mergeObject(state.http?.headers, headers),\r\n\r\n })\r\n })\r\n }\r\n}\r\n\r\nexport function Get(route = '') {\r\n return Route(route, 'get')\r\n}\r\n\r\nexport function Post(route = '') {\r\n return Route(route, 'post')\r\n}\r\nexport function Put(route = '') {\r\n return Route(route, 'put')\r\n}\r\n\r\nexport function Patch(route = '') {\r\n return Route(route, 'patch')\r\n}\r\nexport function Delete(route = '') {\r\n return Route(route, 'delete')\r\n}\r\n\r\nexport function Controller(prefix = '') {\r\n return (target: any) => {\r\n setPropertyState(target, undefined, (state) => {\r\n state.controller = 'http'\r\n state.http = mergeObject(state.http || getState(target)?.http, { prefix })\r\n })\r\n }\r\n}\r\n","import { getState, setPropertyState } from 'phecda-core'\r\nimport { mergeObject } from './helper'\r\n\r\nexport function Event(isEvent = true) {\r\n return (target: any, k?: PropertyKey) => {\r\n setPropertyState(target, k, (state) => {\r\n state.rpc = mergeObject(state.rpc || getState(target, k)?.rpc, { isEvent })\r\n })\r\n }\r\n}\r\nexport function Queue(queue = '') {\r\n return (target: any, k?: PropertyKey) => {\r\n setPropertyState(target, k, (state) => {\r\n state.rpc = mergeObject(state.rpc || getState(target, k)?.rpc, { queue })\r\n })\r\n }\r\n}\r\n\r\nexport function Rpc(): ClassDecorator {\r\n return (target: any) => {\r\n setPropertyState(target, undefined, (state) => {\r\n state.controller = 'rpc'\r\n })\r\n }\r\n}\r\n","import { Empty, getState, set, setPropertyState } from 'phecda-core'\r\nimport { mergeObject, shallowClone } from './helper'\r\n\r\nexport function Injectable() {\r\n return (target: any) => Empty(target)\r\n}\r\n\r\nexport const Ctx: PropertyDecorator = (target: any, key: PropertyKey) => {\r\n set(target, 'context', key)\r\n}\r\n\r\nexport function Define(key: string, value: any): any {\r\n return (target: any, k?: any, index?: number) => {\r\n if (typeof index === 'number') {\r\n setPropertyState(target, k, (state) => {\r\n const parentState = getState(target, k)?.params || []\r\n\r\n if (!state.params)\r\n state.params = [...parentState].map(shallowClone)\r\n const existItem = state.params.find((item: any) => item.index === index)\r\n if (existItem)\r\n existItem.define = mergeObject(existItem.define, { [key]: value })\r\n\r\n else\r\n state.params.push({ define: { [key]: value }, index })\r\n })\r\n return\r\n }\r\n setPropertyState(target, k, (state) => {\r\n const parentState = getState(target, k)?.define\r\n if (!state.define)\r\n state.define = mergeObject(parentState)\r\n\r\n state.define[key] = value\r\n })\r\n }\r\n}\r\n\r\nexport * from './param'\r\nexport * from './aop'\r\nexport * from './http'\r\nexport * from './rpc'\r\n"]}
|