phecda-server 4.0.3 → 4.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/{chunk-WRMLZ7NU.mjs → chunk-NFAA3WFR.mjs} +27 -16
  2. package/dist/chunk-NFAA3WFR.mjs.map +1 -0
  3. package/dist/{chunk-D3VS53JQ.js → chunk-R3N4HR7U.js} +29 -18
  4. package/dist/chunk-R3N4HR7U.js.map +1 -0
  5. package/dist/{core-7c2dd0c7.d.ts → core-ba036c2b.d.ts} +2 -1
  6. package/dist/index.d.ts +2 -2
  7. package/dist/index.js +5 -3
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.mjs +3 -1
  10. package/dist/index.mjs.map +1 -1
  11. package/dist/rpc/rabbitmq/index.d.ts +1 -1
  12. package/dist/rpc/rabbitmq/index.js +2 -4
  13. package/dist/rpc/rabbitmq/index.js.map +1 -1
  14. package/dist/rpc/rabbitmq/index.mjs +2 -4
  15. package/dist/rpc/rabbitmq/index.mjs.map +1 -1
  16. package/dist/rpc/redis/index.d.ts +1 -1
  17. package/dist/rpc/redis/index.js +2 -4
  18. package/dist/rpc/redis/index.js.map +1 -1
  19. package/dist/rpc/redis/index.mjs +2 -4
  20. package/dist/rpc/redis/index.mjs.map +1 -1
  21. package/dist/server/express/index.d.ts +1 -1
  22. package/dist/server/express/index.js +2 -4
  23. package/dist/server/express/index.js.map +1 -1
  24. package/dist/server/express/index.mjs +2 -4
  25. package/dist/server/express/index.mjs.map +1 -1
  26. package/dist/server/fastify/index.d.ts +1 -1
  27. package/dist/server/fastify/index.js +2 -4
  28. package/dist/server/fastify/index.js.map +1 -1
  29. package/dist/server/fastify/index.mjs +2 -4
  30. package/dist/server/fastify/index.mjs.map +1 -1
  31. package/dist/server/h3/index.d.ts +1 -1
  32. package/dist/server/h3/index.js +2 -4
  33. package/dist/server/h3/index.js.map +1 -1
  34. package/dist/server/h3/index.mjs +2 -4
  35. package/dist/server/h3/index.mjs.map +1 -1
  36. package/dist/server/koa/index.d.ts +1 -1
  37. package/dist/server/koa/index.js +2 -4
  38. package/dist/server/koa/index.js.map +1 -1
  39. package/dist/server/koa/index.mjs +2 -4
  40. package/dist/server/koa/index.mjs.map +1 -1
  41. package/dist/test.js +2 -2
  42. package/dist/test.mjs +1 -1
  43. package/package.json +1 -1
  44. package/register/compile.mjs +3 -7
  45. package/register/index.mjs +2 -4
  46. package/register/loader.mjs +22 -8
  47. package/dist/chunk-D3VS53JQ.js.map +0 -1
  48. package/dist/chunk-WRMLZ7NU.mjs.map +0 -1
@@ -131,16 +131,15 @@ async function Factory(Modules, opts = {}) {
131
131
  else
132
132
  emitter.on(eventName, fn);
133
133
  });
134
- async function update(Module) {
135
- const tag = Module.prototype?.__TAG__ || Module.name;
134
+ async function del(tag) {
136
135
  if (!moduleMap.has(tag))
137
136
  return;
138
- debug(`update module "${tag}"`);
139
137
  const instance = moduleMap.get(tag);
140
138
  if (instance?.[UNMOUNT_SYMBOL]) {
141
139
  for (const cb of instance[UNMOUNT_SYMBOL])
142
140
  await cb();
143
141
  }
142
+ debug(`del module "${tag}"`);
144
143
  log(`Module ${pc.yellow(`[${tag}]`)} unmount`);
145
144
  moduleMap.delete(tag);
146
145
  constructorMap.delete(tag);
@@ -148,21 +147,28 @@ async function Factory(Modules, opts = {}) {
148
147
  if (meta[i].data.tag === tag)
149
148
  meta.splice(i, 1);
150
149
  }
150
+ return instance;
151
+ }
152
+ __name(del, "del");
153
+ async function add(Module) {
154
+ const tag = Module.prototype?.__TAG__ || Module.name;
155
+ const oldInstance = await del(tag);
151
156
  const { instance: newModule } = await buildNestModule(Module);
152
- if (moduleGraph.has(tag)) {
157
+ debug(`add module "${tag}"`);
158
+ if (oldInstance && moduleGraph.has(tag)) {
153
159
  [
154
160
  ...moduleGraph.get(tag)
155
161
  ].forEach((tag2) => {
156
162
  const module = moduleMap.get(tag2);
157
163
  for (const key in module) {
158
- if (module[key] === instance)
164
+ if (module[key] === oldInstance)
159
165
  module[key] = newModule;
160
166
  }
161
167
  });
162
168
  }
163
169
  moduleMap.set(tag, newModule);
164
170
  }
165
- __name(update, "update");
171
+ __name(add, "add");
166
172
  async function buildNestModule(Module) {
167
173
  const paramtypes = getParamTypes(Module);
168
174
  let instance;
@@ -215,21 +221,26 @@ async function Factory(Modules, opts = {}) {
215
221
  __name(writeCode, "writeCode");
216
222
  writeCode();
217
223
  if (IS_DEV) {
218
- globalThis.__PS_HMR__ = async (file) => {
219
- debug(`reload file ${file}`);
220
- const module = await import(file);
221
- for (const i in module) {
222
- if (isPhecda(module[i]))
223
- await update(module[i]);
224
+ if (!globalThis.__PS_HMR__)
225
+ globalThis.__PS_HMR__ = [];
226
+ globalThis.__PS_HMR__?.push(async (files) => {
227
+ for (const file of files) {
228
+ debug(`reload file ${file}`);
229
+ const module = await import(file);
230
+ for (const i in module) {
231
+ if (isPhecda(module[i]))
232
+ await add(module[i]);
233
+ }
224
234
  }
225
- };
226
- globalThis.__PS_WRITEMETA__ = writeCode;
235
+ writeCode();
236
+ });
227
237
  }
228
238
  return {
229
239
  moduleMap,
230
240
  meta,
231
241
  constructorMap,
232
- update
242
+ add,
243
+ del
233
244
  };
234
245
  }
235
246
  __name(Factory, "Factory");
@@ -321,4 +332,4 @@ export {
321
332
  emitter,
322
333
  Factory
323
334
  };
324
- //# sourceMappingURL=chunk-WRMLZ7NU.mjs.map
335
+ //# sourceMappingURL=chunk-NFAA3WFR.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/meta.ts","../src/compiler/rpc.ts","../src/compiler/http.ts","../src/core.ts"],"sourcesContent":["import type { P } from './types'\n\nexport class Meta {\n constructor(public data: P.Meta, public handlers: P.Handler[], public paramsType: any[]) {\n\n }\n}\n","import type { P } from '../types'\n\nclass Compiler {\n classMap: Record<string, { [key: string]: string }> = {}\n constructor() { }\n\n getContent() {\n let content = ''\n\n for (const name in this.classMap) {\n content += `\n export class ${name}{\n ${Object.values(this.classMap[name]).reduce((p, c) => p + c)}\n }`\n }\n return content\n }\n\n addMethod(args: P.Meta) {\n const {\n rpc, name, method, tag,\n } = args\n if (!rpc || !rpc.type)\n return\n if (!this.classMap[name])\n this.classMap[name] = {}\n this.classMap[name][method] = `\n ${method}(){\n return {tag:'${tag}-${method}',isEvent:${!!rpc.isEvent},rpc:[${rpc.type.reduce((p, c) => {\n return `${p}\"${c}\",`\n }, '')}]}\n\n }\n `\n }\n}\n\nexport function generateRPCCode(meta: P.Meta[]) {\n const compiler = new Compiler()\n\n for (const i of meta)\n compiler.addMethod(i)\n return compiler.getContent()\n}\n","import type { P } from '../types'\n\nclass Compiler {\n classMap: Record<string, { [key: string]: string }> = {}\n constructor() { }\n\n getContent() {\n let content = ''\n\n for (const name in this.classMap) {\n content += `\n export class ${name}{\n ${Object.values(this.classMap[name]).reduce((p, c) => p + c)}\n }`\n }\n return content\n }\n\n // createRequest() {\n // let content = 'import {useC} from \\'phecda-server\\'\\n'\n // for (const name in this.classMap)\n // content += `export const {${Object.keys(this.classMap[name]).join(',')}}=useC(${name})\\n`\n // return content\n // }\n\n addMethod(args: P.Meta) {\n const {\n http, name, method, params, tag,\n } = args\n if (!http)\n return\n const url = http.route.replace(/\\/\\:([^\\/]*)/g, (_, js) => `/{{${js}}}`)\n if (!this.classMap[name])\n this.classMap[name] = {}\n this.classMap[name][method] = `\n ${method}(...args){\nconst ret={tag:\"${tag}-${method}\",body:{},headers:{},query:{},params:{},method:\"${http.type}\",url:\"${url}\",args}\n\n${params.reduce((p, c, i) => `${p}ret.${c.type}${c.key ? `['${c.key}']` : ''}=args[${i}]\\n${c.type === 'params' ? `ret.url=ret.url.replace('{{${c.key}}}',args[${i}])` : ''}\\n`, '')}\nreturn ret\n }\n `\n }\n}\n\nexport function generateHTTPCode(meta: P.Meta[]) {\n const compiler = new Compiler()\n\n for (const i of meta)\n compiler.addMethod(i)\n return compiler.getContent()\n}\n","import 'reflect-metadata'\nimport fs from 'fs'\nimport EventEmitter from 'node:events'\nimport type { Phecda } from 'phecda-core'\nimport { Empty, getExposeKey, getHandler, getState, injectProperty, isPhecda, registerAsync } from 'phecda-core'\nimport Debug from 'debug'\nimport pc from 'picocolors'\nimport type { Construct, Emitter, P } from './types'\nimport { Meta } from './meta'\nimport { log } from './utils'\nimport { IS_DEV, UNMOUNT_SYMBOL } from './common'\nimport { generateHTTPCode, generateRPCCode } from './compiler'\nexport function Injectable() {\n return (target: any) => Empty(target)\n}\nconst debug = Debug('phecda-server')\n// TODO: support both emitter types and origin emitter type in future\nexport const emitter: Emitter = new EventEmitter() as any\n\nexport async function Factory(Modules: (new (...args: any) => any)[], opts: {\n\n // HTTP generate code path\n http?: string\n // rpc generate code path\n rpc?: string\n} = {}) {\n const moduleMap = new Map<string, InstanceType<Construct>>()\n const meta: Meta[] = []\n const constructorMap = new Map()\n\n // only work for warn\n const constructorSet = new WeakSet()\n const moduleGraph = new Map<string, Set<string>>()\n const { http, rpc } = opts\n injectProperty('watcher', ({ eventName, instance, key, options }: { eventName: string; instance: any; key: string; options?: { once: boolean } }) => {\n const fn = typeof instance[key] === 'function' ? instance[key].bind(instance) : (v: any) => instance[key] = v\n\n // work for hmr\n if (!instance[UNMOUNT_SYMBOL])\n instance[UNMOUNT_SYMBOL] = []\n\n instance[UNMOUNT_SYMBOL].push(() => {\n (emitter as any).off(eventName, fn)\n })\n\n if (options?.once)\n (emitter as any).once(eventName, fn)\n\n else\n (emitter as any).on(eventName, fn)\n })\n\n // only remove module in moduleMap(won't remove indiect module)\n async function del(tag: string) {\n if (!moduleMap.has(tag))\n return\n\n const instance = moduleMap.get(tag)\n\n if (instance?.[UNMOUNT_SYMBOL]) {\n for (const cb of instance[UNMOUNT_SYMBOL])\n await cb()\n }\n\n debug(`del module \"${tag}\"`)\n\n log(`Module ${pc.yellow(`[${tag}]`)} unmount`)\n moduleMap.delete(tag)\n constructorMap.delete(tag)\n for (let i = meta.length - 1; i >= 0; i--) {\n if (meta[i].data.tag === tag)\n meta.splice(i, 1)\n }\n\n return instance\n }\n\n async function add(Module: Construct) {\n const tag = Module.prototype?.__TAG__ || Module.name\n const oldInstance = await del(tag)\n\n const { instance: newModule } = await buildNestModule(Module)\n\n debug(`add module \"${tag}\"`)\n\n if (oldInstance && moduleGraph.has(tag)) {\n [...moduleGraph.get(tag)!].forEach((tag) => {\n const module = moduleMap.get(tag)\n for (const key in module) {\n if (module[key] === oldInstance)\n module[key] = newModule\n }\n })\n }\n\n moduleMap.set(tag, newModule)\n }\n async function buildNestModule(Module: Construct) {\n const paramtypes = getParamTypes(Module) as Construct[]\n let instance: InstanceType<Construct>\n const tag = Module.prototype?.__TAG__ || Module.name\n if (moduleMap.has(tag)) {\n instance = moduleMap.get(tag)\n if (!instance)\n throw new Error(`exist Circular-Dependency or Multiple modules with the same name/tag [tag] ${tag}--[module] ${Module}`)\n\n if (constructorMap.get(tag) !== Module && !constructorSet.has(Module)) {\n constructorSet.add(Module)// a module will only warn once\n log(`Synonym module: Module taged \"${tag}\" has been loaded before, so phecda-server won't load Module \"${Module.name}\"`, 'warn')\n }\n return { instance, tag }\n }\n moduleMap.set(tag, undefined)\n if (paramtypes) {\n const paramtypesInstances = [] as any[]\n for (const i in paramtypes) {\n const { instance: sub, tag: subTag } = await buildNestModule(paramtypes[i])\n paramtypesInstances[i] = sub\n if (!moduleGraph.has(subTag))\n moduleGraph.set(subTag, new Set())\n moduleGraph.get(subTag)!.add(tag)\n }\n instance = new Module(...paramtypesInstances)\n }\n else {\n instance = new Module()\n }\n meta.push(...getMetaFromInstance(instance, tag, Module.name))\n await registerAsync(instance)\n moduleMap.set(tag, instance)\n log(`Module ${pc.yellow(`[${tag}]`)} mount\"`)\n constructorMap.set(tag, Module)\n return { instance, tag }\n }\n\n for (const Module of Modules)\n await buildNestModule(Module)\n\n function writeCode() {\n debug('write code')\n\n http && fs.promises.writeFile(http, generateHTTPCode(meta.map(item => item.data)))\n rpc && fs.promises.writeFile(rpc, generateRPCCode(meta.map(item => item.data)))\n }\n\n writeCode()\n if (IS_DEV) {\n if (!globalThis.__PS_HMR__)\n globalThis.__PS_HMR__ = []\n\n globalThis.__PS_HMR__?.push(async (files: string[]) => {\n for (const file of files) {\n debug(`reload file ${file}`)\n const module = await import(file)\n for (const i in module) {\n if (isPhecda(module[i]))\n await add(module[i])\n }\n }\n writeCode()\n })\n }\n\n return {\n moduleMap,\n meta,\n constructorMap,\n add,\n del,\n }\n}\n\nfunction getMetaFromInstance(instance: Phecda, tag: string, name: string) {\n const vars = getExposeKey(instance).filter(item => item !== '__CLASS')\n const baseState = (getState(instance, '__CLASS') || {}) as P.Meta\n initState(baseState)\n\n return vars.map((i) => {\n const meta = {} as P.Meta\n const state = (getState(instance, i) || {}) as P.Meta\n initState(state)\n if (state.http) {\n meta.http = {\n route: (baseState.http?.route || '') + (state.http.route),\n type: state.http.type,\n }\n }\n if (baseState.rpc)\n meta.rpc = baseState.rpc\n if (state.rpc) {\n meta.rpc = {\n ...meta.rpc,\n ...state.rpc,\n }\n }\n\n meta.name = name\n meta.tag = tag\n meta.method = i as string\n const params = [] as any[]\n for (const i of state.params || []) {\n params.unshift(i)\n if (i.index === 0)\n break\n }\n\n meta.params = params\n meta.define = { ...baseState.define, ...state.define }\n meta.header = { ...baseState.header, ...state.header }\n meta.plugins = [...new Set([...baseState.plugins, ...state.plugins])]\n meta.guards = [...new Set([...baseState.guards, ...state.guards])]\n meta.interceptors = [...new Set([...baseState.interceptors, ...state.interceptors])]\n\n return new Meta(meta as unknown as P.Meta, getHandler(instance, i), getParamTypes(instance, i as string) || [])\n })\n}\n\nfunction getParamTypes(Module: any, key?: string | symbol) {\n return Reflect.getMetadata('design:paramtypes', Module, key!)\n}\n\nfunction initState(state: any) {\n if (!state.define)\n state.define = {}\n if (!state.header)\n state.header = {}\n if (!state.plugins)\n state.plugins = []\n if (!state.guards)\n state.guards = []\n if (!state.interceptors)\n state.interceptors = []\n}\n"],"mappings":"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","names":["Meta","data","handlers","paramsType","constructor","Compiler","classMap","constructor","getContent","content","name","Object","values","reduce","p","c","addMethod","args","rpc","method","tag","type","isEvent","generateRPCCode","meta","compiler","i","Compiler","classMap","constructor","getContent","content","name","Object","values","reduce","p","c","addMethod","args","http","method","params","tag","url","route","replace","_","js","type","i","key","generateHTTPCode","meta","compiler","fs","EventEmitter","Empty","getExposeKey","getHandler","getState","injectProperty","isPhecda","registerAsync","Debug","pc","Injectable","target","Empty","debug","Debug","emitter","EventEmitter","Factory","Modules","opts","moduleMap","Map","meta","constructorMap","constructorSet","WeakSet","moduleGraph","http","rpc","injectProperty","eventName","instance","key","options","fn","bind","v","UNMOUNT_SYMBOL","push","off","once","on","del","tag","has","get","cb","log","pc","yellow","delete","i","length","data","splice","add","Module","prototype","__TAG__","name","oldInstance","newModule","buildNestModule","forEach","module","set","paramtypes","getParamTypes","Error","undefined","paramtypesInstances","sub","subTag","Set","getMetaFromInstance","registerAsync","writeCode","fs","promises","writeFile","generateHTTPCode","map","item","generateRPCCode","IS_DEV","globalThis","__PS_HMR__","files","file","isPhecda","vars","getExposeKey","filter","baseState","getState","initState","state","route","type","method","params","unshift","index","define","header","plugins","guards","interceptors","Meta","getHandler","Reflect","getMetadata"]}
@@ -131,16 +131,15 @@ async function Factory(Modules, opts = {}) {
131
131
  else
132
132
  emitter.on(eventName, fn);
133
133
  });
134
- async function update(Module) {
135
- const tag = _optionalChain([Module, 'access', _3 => _3.prototype, 'optionalAccess', _4 => _4.__TAG__]) || Module.name;
134
+ async function del(tag) {
136
135
  if (!moduleMap.has(tag))
137
136
  return;
138
- debug(`update module "${tag}"`);
139
137
  const instance = moduleMap.get(tag);
140
- if (_optionalChain([instance, 'optionalAccess', _5 => _5[_chunkLZAU5FUSjs.UNMOUNT_SYMBOL]])) {
138
+ if (_optionalChain([instance, 'optionalAccess', _3 => _3[_chunkLZAU5FUSjs.UNMOUNT_SYMBOL]])) {
141
139
  for (const cb of instance[_chunkLZAU5FUSjs.UNMOUNT_SYMBOL])
142
140
  await cb();
143
141
  }
142
+ debug(`del module "${tag}"`);
144
143
  _chunkLZAU5FUSjs.log.call(void 0, `Module ${_picocolors2.default.yellow(`[${tag}]`)} unmount`);
145
144
  moduleMap.delete(tag);
146
145
  constructorMap.delete(tag);
@@ -148,21 +147,28 @@ async function Factory(Modules, opts = {}) {
148
147
  if (meta[i].data.tag === tag)
149
148
  meta.splice(i, 1);
150
149
  }
150
+ return instance;
151
+ }
152
+ _chunkLZAU5FUSjs.__name.call(void 0, del, "del");
153
+ async function add(Module) {
154
+ const tag = _optionalChain([Module, 'access', _4 => _4.prototype, 'optionalAccess', _5 => _5.__TAG__]) || Module.name;
155
+ const oldInstance = await del(tag);
151
156
  const { instance: newModule } = await buildNestModule(Module);
152
- if (moduleGraph.has(tag)) {
157
+ debug(`add module "${tag}"`);
158
+ if (oldInstance && moduleGraph.has(tag)) {
153
159
  [
154
160
  ...moduleGraph.get(tag)
155
161
  ].forEach((tag2) => {
156
162
  const module = moduleMap.get(tag2);
157
163
  for (const key in module) {
158
- if (module[key] === instance)
164
+ if (module[key] === oldInstance)
159
165
  module[key] = newModule;
160
166
  }
161
167
  });
162
168
  }
163
169
  moduleMap.set(tag, newModule);
164
170
  }
165
- _chunkLZAU5FUSjs.__name.call(void 0, update, "update");
171
+ _chunkLZAU5FUSjs.__name.call(void 0, add, "add");
166
172
  async function buildNestModule(Module) {
167
173
  const paramtypes = getParamTypes(Module);
168
174
  let instance;
@@ -215,21 +221,26 @@ async function Factory(Modules, opts = {}) {
215
221
  _chunkLZAU5FUSjs.__name.call(void 0, writeCode, "writeCode");
216
222
  writeCode();
217
223
  if (_chunkLZAU5FUSjs.IS_DEV) {
218
- globalThis.__PS_HMR__ = async (file) => {
219
- debug(`reload file ${file}`);
220
- const module = await Promise.resolve().then(() => require(file));
221
- for (const i in module) {
222
- if (_phecdacore.isPhecda.call(void 0, module[i]))
223
- await update(module[i]);
224
+ if (!globalThis.__PS_HMR__)
225
+ globalThis.__PS_HMR__ = [];
226
+ _optionalChain([globalThis, 'access', _8 => _8.__PS_HMR__, 'optionalAccess', _9 => _9.push, 'call', _10 => _10(async (files) => {
227
+ for (const file of files) {
228
+ debug(`reload file ${file}`);
229
+ const module = await Promise.resolve().then(() => require(file));
230
+ for (const i in module) {
231
+ if (_phecdacore.isPhecda.call(void 0, module[i]))
232
+ await add(module[i]);
233
+ }
224
234
  }
225
- };
226
- globalThis.__PS_WRITEMETA__ = writeCode;
235
+ writeCode();
236
+ })]);
227
237
  }
228
238
  return {
229
239
  moduleMap,
230
240
  meta,
231
241
  constructorMap,
232
- update
242
+ add,
243
+ del
233
244
  };
234
245
  }
235
246
  _chunkLZAU5FUSjs.__name.call(void 0, Factory, "Factory");
@@ -243,7 +254,7 @@ function getMetaFromInstance(instance, tag, name) {
243
254
  initState(state);
244
255
  if (state.http) {
245
256
  meta.http = {
246
- route: (_optionalChain([baseState, 'access', _8 => _8.http, 'optionalAccess', _9 => _9.route]) || "") + state.http.route,
257
+ route: (_optionalChain([baseState, 'access', _11 => _11.http, 'optionalAccess', _12 => _12.route]) || "") + state.http.route,
247
258
  type: state.http.type
248
259
  };
249
260
  }
@@ -321,4 +332,4 @@ _chunkLZAU5FUSjs.__name.call(void 0, initState, "initState");
321
332
 
322
333
 
323
334
  exports.Meta = Meta; exports.generateRPCCode = generateRPCCode; exports.generateHTTPCode = generateHTTPCode; exports.Injectable = Injectable; exports.emitter = emitter; exports.Factory = Factory;
324
- //# sourceMappingURL=chunk-D3VS53JQ.js.map
335
+ //# sourceMappingURL=chunk-R3N4HR7U.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/meta.ts","../src/compiler/rpc.ts","../src/compiler/http.ts","../src/core.ts"],"names":["Meta","data","handlers","paramsType","constructor","Compiler","classMap","getContent","content","name","Object","values","reduce","p","c","addMethod","args","rpc","method","tag","type","isEvent","generateRPCCode","meta","compiler","i","http","params","url","route","replace","_","js","key","generateHTTPCode","fs","EventEmitter","Empty","getExposeKey","getHandler","getState","injectProperty","isPhecda","registerAsync","Debug","pc","Injectable","target","debug","emitter","Factory","Modules","opts","moduleMap","Map","constructorMap","constructorSet","WeakSet","moduleGraph","eventName","instance","options","fn","bind","v","UNMOUNT_SYMBOL","push","off","once","on","del","has","get","cb","log","yellow","delete","length","splice","add","Module","prototype","__TAG__","oldInstance","newModule","buildNestModule","forEach","module","set","paramtypes","getParamTypes","Error","undefined","paramtypesInstances","sub","subTag","Set","getMetaFromInstance","writeCode","promises","writeFile","map","item","IS_DEV","globalThis","__PS_HMR__","files","file","vars","filter","baseState","initState","state","unshift","index","define","header","plugins","guards","interceptors","Reflect","getMetadata"],"mappings":"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","sourcesContent":["import type { P } from './types'\n\nexport class Meta {\n constructor(public data: P.Meta, public handlers: P.Handler[], public paramsType: any[]) {\n\n }\n}\n","import type { P } from '../types'\n\nclass Compiler {\n classMap: Record<string, { [key: string]: string }> = {}\n constructor() { }\n\n getContent() {\n let content = ''\n\n for (const name in this.classMap) {\n content += `\n export class ${name}{\n ${Object.values(this.classMap[name]).reduce((p, c) => p + c)}\n }`\n }\n return content\n }\n\n addMethod(args: P.Meta) {\n const {\n rpc, name, method, tag,\n } = args\n if (!rpc || !rpc.type)\n return\n if (!this.classMap[name])\n this.classMap[name] = {}\n this.classMap[name][method] = `\n ${method}(){\n return {tag:'${tag}-${method}',isEvent:${!!rpc.isEvent},rpc:[${rpc.type.reduce((p, c) => {\n return `${p}\"${c}\",`\n }, '')}]}\n\n }\n `\n }\n}\n\nexport function generateRPCCode(meta: P.Meta[]) {\n const compiler = new Compiler()\n\n for (const i of meta)\n compiler.addMethod(i)\n return compiler.getContent()\n}\n","import type { P } from '../types'\n\nclass Compiler {\n classMap: Record<string, { [key: string]: string }> = {}\n constructor() { }\n\n getContent() {\n let content = ''\n\n for (const name in this.classMap) {\n content += `\n export class ${name}{\n ${Object.values(this.classMap[name]).reduce((p, c) => p + c)}\n }`\n }\n return content\n }\n\n // createRequest() {\n // let content = 'import {useC} from \\'phecda-server\\'\\n'\n // for (const name in this.classMap)\n // content += `export const {${Object.keys(this.classMap[name]).join(',')}}=useC(${name})\\n`\n // return content\n // }\n\n addMethod(args: P.Meta) {\n const {\n http, name, method, params, tag,\n } = args\n if (!http)\n return\n const url = http.route.replace(/\\/\\:([^\\/]*)/g, (_, js) => `/{{${js}}}`)\n if (!this.classMap[name])\n this.classMap[name] = {}\n this.classMap[name][method] = `\n ${method}(...args){\nconst ret={tag:\"${tag}-${method}\",body:{},headers:{},query:{},params:{},method:\"${http.type}\",url:\"${url}\",args}\n\n${params.reduce((p, c, i) => `${p}ret.${c.type}${c.key ? `['${c.key}']` : ''}=args[${i}]\\n${c.type === 'params' ? `ret.url=ret.url.replace('{{${c.key}}}',args[${i}])` : ''}\\n`, '')}\nreturn ret\n }\n `\n }\n}\n\nexport function generateHTTPCode(meta: P.Meta[]) {\n const compiler = new Compiler()\n\n for (const i of meta)\n compiler.addMethod(i)\n return compiler.getContent()\n}\n","import 'reflect-metadata'\nimport fs from 'fs'\nimport EventEmitter from 'node:events'\nimport type { Phecda } from 'phecda-core'\nimport { Empty, getExposeKey, getHandler, getState, injectProperty, isPhecda, registerAsync } from 'phecda-core'\nimport Debug from 'debug'\nimport pc from 'picocolors'\nimport type { Construct, Emitter, P } from './types'\nimport { Meta } from './meta'\nimport { log } from './utils'\nimport { IS_DEV, UNMOUNT_SYMBOL } from './common'\nimport { generateHTTPCode, generateRPCCode } from './compiler'\nexport function Injectable() {\n return (target: any) => Empty(target)\n}\nconst debug = Debug('phecda-server')\n// TODO: support both emitter types and origin emitter type in future\nexport const emitter: Emitter = new EventEmitter() as any\n\nexport async function Factory(Modules: (new (...args: any) => any)[], opts: {\n\n // HTTP generate code path\n http?: string\n // rpc generate code path\n rpc?: string\n} = {}) {\n const moduleMap = new Map<string, InstanceType<Construct>>()\n const meta: Meta[] = []\n const constructorMap = new Map()\n\n // only work for warn\n const constructorSet = new WeakSet()\n const moduleGraph = new Map<string, Set<string>>()\n const { http, rpc } = opts\n injectProperty('watcher', ({ eventName, instance, key, options }: { eventName: string; instance: any; key: string; options?: { once: boolean } }) => {\n const fn = typeof instance[key] === 'function' ? instance[key].bind(instance) : (v: any) => instance[key] = v\n\n // work for hmr\n if (!instance[UNMOUNT_SYMBOL])\n instance[UNMOUNT_SYMBOL] = []\n\n instance[UNMOUNT_SYMBOL].push(() => {\n (emitter as any).off(eventName, fn)\n })\n\n if (options?.once)\n (emitter as any).once(eventName, fn)\n\n else\n (emitter as any).on(eventName, fn)\n })\n\n // only remove module in moduleMap(won't remove indiect module)\n async function del(tag: string) {\n if (!moduleMap.has(tag))\n return\n\n const instance = moduleMap.get(tag)\n\n if (instance?.[UNMOUNT_SYMBOL]) {\n for (const cb of instance[UNMOUNT_SYMBOL])\n await cb()\n }\n\n debug(`del module \"${tag}\"`)\n\n log(`Module ${pc.yellow(`[${tag}]`)} unmount`)\n moduleMap.delete(tag)\n constructorMap.delete(tag)\n for (let i = meta.length - 1; i >= 0; i--) {\n if (meta[i].data.tag === tag)\n meta.splice(i, 1)\n }\n\n return instance\n }\n\n async function add(Module: Construct) {\n const tag = Module.prototype?.__TAG__ || Module.name\n const oldInstance = await del(tag)\n\n const { instance: newModule } = await buildNestModule(Module)\n\n debug(`add module \"${tag}\"`)\n\n if (oldInstance && moduleGraph.has(tag)) {\n [...moduleGraph.get(tag)!].forEach((tag) => {\n const module = moduleMap.get(tag)\n for (const key in module) {\n if (module[key] === oldInstance)\n module[key] = newModule\n }\n })\n }\n\n moduleMap.set(tag, newModule)\n }\n async function buildNestModule(Module: Construct) {\n const paramtypes = getParamTypes(Module) as Construct[]\n let instance: InstanceType<Construct>\n const tag = Module.prototype?.__TAG__ || Module.name\n if (moduleMap.has(tag)) {\n instance = moduleMap.get(tag)\n if (!instance)\n throw new Error(`exist Circular-Dependency or Multiple modules with the same name/tag [tag] ${tag}--[module] ${Module}`)\n\n if (constructorMap.get(tag) !== Module && !constructorSet.has(Module)) {\n constructorSet.add(Module)// a module will only warn once\n log(`Synonym module: Module taged \"${tag}\" has been loaded before, so phecda-server won't load Module \"${Module.name}\"`, 'warn')\n }\n return { instance, tag }\n }\n moduleMap.set(tag, undefined)\n if (paramtypes) {\n const paramtypesInstances = [] as any[]\n for (const i in paramtypes) {\n const { instance: sub, tag: subTag } = await buildNestModule(paramtypes[i])\n paramtypesInstances[i] = sub\n if (!moduleGraph.has(subTag))\n moduleGraph.set(subTag, new Set())\n moduleGraph.get(subTag)!.add(tag)\n }\n instance = new Module(...paramtypesInstances)\n }\n else {\n instance = new Module()\n }\n meta.push(...getMetaFromInstance(instance, tag, Module.name))\n await registerAsync(instance)\n moduleMap.set(tag, instance)\n log(`Module ${pc.yellow(`[${tag}]`)} mount\"`)\n constructorMap.set(tag, Module)\n return { instance, tag }\n }\n\n for (const Module of Modules)\n await buildNestModule(Module)\n\n function writeCode() {\n debug('write code')\n\n http && fs.promises.writeFile(http, generateHTTPCode(meta.map(item => item.data)))\n rpc && fs.promises.writeFile(rpc, generateRPCCode(meta.map(item => item.data)))\n }\n\n writeCode()\n if (IS_DEV) {\n if (!globalThis.__PS_HMR__)\n globalThis.__PS_HMR__ = []\n\n globalThis.__PS_HMR__?.push(async (files: string[]) => {\n for (const file of files) {\n debug(`reload file ${file}`)\n const module = await import(file)\n for (const i in module) {\n if (isPhecda(module[i]))\n await add(module[i])\n }\n }\n writeCode()\n })\n }\n\n return {\n moduleMap,\n meta,\n constructorMap,\n add,\n del,\n }\n}\n\nfunction getMetaFromInstance(instance: Phecda, tag: string, name: string) {\n const vars = getExposeKey(instance).filter(item => item !== '__CLASS')\n const baseState = (getState(instance, '__CLASS') || {}) as P.Meta\n initState(baseState)\n\n return vars.map((i) => {\n const meta = {} as P.Meta\n const state = (getState(instance, i) || {}) as P.Meta\n initState(state)\n if (state.http) {\n meta.http = {\n route: (baseState.http?.route || '') + (state.http.route),\n type: state.http.type,\n }\n }\n if (baseState.rpc)\n meta.rpc = baseState.rpc\n if (state.rpc) {\n meta.rpc = {\n ...meta.rpc,\n ...state.rpc,\n }\n }\n\n meta.name = name\n meta.tag = tag\n meta.method = i as string\n const params = [] as any[]\n for (const i of state.params || []) {\n params.unshift(i)\n if (i.index === 0)\n break\n }\n\n meta.params = params\n meta.define = { ...baseState.define, ...state.define }\n meta.header = { ...baseState.header, ...state.header }\n meta.plugins = [...new Set([...baseState.plugins, ...state.plugins])]\n meta.guards = [...new Set([...baseState.guards, ...state.guards])]\n meta.interceptors = [...new Set([...baseState.interceptors, ...state.interceptors])]\n\n return new Meta(meta as unknown as P.Meta, getHandler(instance, i), getParamTypes(instance, i as string) || [])\n })\n}\n\nfunction getParamTypes(Module: any, key?: string | symbol) {\n return Reflect.getMetadata('design:paramtypes', Module, key!)\n}\n\nfunction initState(state: any) {\n if (!state.define)\n state.define = {}\n if (!state.header)\n state.header = {}\n if (!state.plugins)\n state.plugins = []\n if (!state.guards)\n state.guards = []\n if (!state.interceptors)\n state.interceptors = []\n}\n"]}
@@ -16,7 +16,8 @@ declare function Factory(Modules: (new (...args: any) => any)[], opts?: {
16
16
  moduleMap: Map<string, any>;
17
17
  meta: Meta[];
18
18
  constructorMap: Map<any, any>;
19
- update: (Module: Construct) => Promise<void>;
19
+ add: (Module: Construct) => Promise<void>;
20
+ del: (tag: string) => Promise<any>;
20
21
  }>;
21
22
 
22
23
  export { Factory as F, Injectable as I, Meta as M, emitter as e };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { E as Exception, P, a as Emitter } from './types-ead02c5d.js';
2
2
  export { B as BaseError, C as Construct, M as MergeType, R as RequestType, S as ServerErr, T as ToInstance } from './types-ead02c5d.js';
3
- import { M as Meta } from './core-7c2dd0c7.js';
4
- export { F as Factory, I as Injectable, e as emitter } from './core-7c2dd0c7.js';
3
+ import { M as Meta } from './core-ba036c2b.js';
4
+ export { F as Factory, I as Injectable, e as emitter } from './core-ba036c2b.js';
5
5
  export * from 'phecda-core';
6
6
 
7
7
  declare class Histroy {
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var _chunkD3VS53JQjs = require('./chunk-D3VS53JQ.js');
8
+ var _chunkR3N4HR7Ujs = require('./chunk-R3N4HR7U.js');
9
9
 
10
10
 
11
11
  var _chunkFAHHXHL5js = require('./chunk-FAHHXHL5.js');
@@ -78,6 +78,8 @@ function Pipe(key, opts) {
78
78
  return (target, k, index) => {
79
79
  _phecdacore.setModelVar.call(void 0, target, k);
80
80
  const state = target._namespace.__STATE_NAMESPACE__.get(k) || {};
81
+ if (!state.params)
82
+ state.params = [];
81
83
  const existItem = state.params.find((item) => item.index === index);
82
84
  if (existItem)
83
85
  Object.assign(existItem, {
@@ -274,7 +276,7 @@ var __decorate = function(decorators, target, key, desc) {
274
276
  return c > 3 && r && Object.defineProperty(target, key, r), r;
275
277
  };
276
278
  var Dev = /* @__PURE__ */ _chunkLZAU5FUSjs.__name.call(void 0, (_class =class Dev2 {constructor() { _class.prototype.__init.call(this);_class.prototype.__init2.call(this); }
277
- __init() {this.emitter = exports.emitter = _chunkD3VS53JQjs.emitter}
279
+ __init() {this.emitter = exports.emitter = _chunkR3N4HR7Ujs.emitter}
278
280
  __init2() {this[_chunkLZAU5FUSjs.UNMOUNT_SYMBOL] = []}
279
281
  onUnmount(cb) {
280
282
  this[_chunkLZAU5FUSjs.UNMOUNT_SYMBOL].push(cb);
@@ -417,5 +419,5 @@ _chunkLZAU5FUSjs.__name.call(void 0, PPlugin, "PPlugin");
417
419
 
418
420
 
419
421
 
420
- exports.APP_SYMBOL = _chunkLZAU5FUSjs.APP_SYMBOL; exports.Arg = Arg; exports.BadGatewayException = _chunkYU7ROHTOjs.BadGatewayException; exports.BadRequestException = _chunkYU7ROHTOjs.BadRequestException; exports.BaseParam = BaseParam; exports.Body = Body; exports.ConflictException = _chunkYU7ROHTOjs.ConflictException; exports.Context = _chunkYU7ROHTOjs.Context; exports.Controller = Controller; exports.Define = Define; exports.Delete = Delete; exports.Dev = Dev; exports.Event = Event; exports.Exception = _chunkYU7ROHTOjs.Exception; exports.Factory = _chunkD3VS53JQjs.Factory; exports.ForbiddenException = _chunkYU7ROHTOjs.ForbiddenException; exports.FrameworkException = _chunkYU7ROHTOjs.FrameworkException; exports.Get = Get; exports.Guard = Guard; exports.Head = Head; exports.Header = Header; exports.IS_DEV = _chunkLZAU5FUSjs.IS_DEV; exports.IS_STRICT = _chunkLZAU5FUSjs.IS_STRICT; exports.Injectable = _chunkD3VS53JQjs.Injectable; exports.Interceptor = Interceptor; exports.InvalidInputException = _chunkYU7ROHTOjs.InvalidInputException; exports.MERGE_SYMBOL = _chunkLZAU5FUSjs.MERGE_SYMBOL; exports.META_SYMBOL = _chunkLZAU5FUSjs.META_SYMBOL; exports.MODULE_SYMBOL = _chunkLZAU5FUSjs.MODULE_SYMBOL; exports.Meta = _chunkD3VS53JQjs.Meta; exports.NotFoundException = _chunkYU7ROHTOjs.NotFoundException; exports.PFilter = PFilter; exports.PGuard = PGuard; exports.PInterceptor = PInterceptor; exports.PPipe = PPipe; exports.PPlugin = PPlugin; exports.Param = Param; exports.Patch = Patch; exports.PayloadLargeException = _chunkYU7ROHTOjs.PayloadLargeException; exports.Pipe = Pipe; exports.Plugin = Plugin; exports.Post = Post; exports.Put = Put; exports.Query = Query; exports.Route = Route; exports.Rpc = Rpc; exports.ServiceUnavailableException = _chunkYU7ROHTOjs.ServiceUnavailableException; exports.TimeoutException = _chunkYU7ROHTOjs.TimeoutException; exports.UNMOUNT_SYMBOL = _chunkLZAU5FUSjs.UNMOUNT_SYMBOL; exports.UnauthorizedException = _chunkYU7ROHTOjs.UnauthorizedException; exports.UndefinedException = _chunkYU7ROHTOjs.UndefinedException; exports.UnsupportedMediaTypeException = _chunkYU7ROHTOjs.UnsupportedMediaTypeException; exports.ValidateException = _chunkYU7ROHTOjs.ValidateException; exports.addGuard = _chunkYU7ROHTOjs.addGuard; exports.addInterceptor = _chunkYU7ROHTOjs.addInterceptor; exports.addPipe = _chunkYU7ROHTOjs.addPipe; exports.addPlugin = _chunkYU7ROHTOjs.addPlugin; exports.defaultPipe = _chunkYU7ROHTOjs.defaultPipe; exports.emitter = _chunkD3VS53JQjs.emitter; exports.generateHTTPCode = _chunkD3VS53JQjs.generateHTTPCode; exports.generateRPCCode = _chunkD3VS53JQjs.generateRPCCode; exports.guardRecord = _chunkYU7ROHTOjs.guardRecord; exports.isAopDepInject = _chunkYU7ROHTOjs.isAopDepInject; exports.resolveDep = _chunkFAHHXHL5js.resolveDep; exports.setFilter = _chunkYU7ROHTOjs.setFilter;
422
+ exports.APP_SYMBOL = _chunkLZAU5FUSjs.APP_SYMBOL; exports.Arg = Arg; exports.BadGatewayException = _chunkYU7ROHTOjs.BadGatewayException; exports.BadRequestException = _chunkYU7ROHTOjs.BadRequestException; exports.BaseParam = BaseParam; exports.Body = Body; exports.ConflictException = _chunkYU7ROHTOjs.ConflictException; exports.Context = _chunkYU7ROHTOjs.Context; exports.Controller = Controller; exports.Define = Define; exports.Delete = Delete; exports.Dev = Dev; exports.Event = Event; exports.Exception = _chunkYU7ROHTOjs.Exception; exports.Factory = _chunkR3N4HR7Ujs.Factory; exports.ForbiddenException = _chunkYU7ROHTOjs.ForbiddenException; exports.FrameworkException = _chunkYU7ROHTOjs.FrameworkException; exports.Get = Get; exports.Guard = Guard; exports.Head = Head; exports.Header = Header; exports.IS_DEV = _chunkLZAU5FUSjs.IS_DEV; exports.IS_STRICT = _chunkLZAU5FUSjs.IS_STRICT; exports.Injectable = _chunkR3N4HR7Ujs.Injectable; exports.Interceptor = Interceptor; exports.InvalidInputException = _chunkYU7ROHTOjs.InvalidInputException; exports.MERGE_SYMBOL = _chunkLZAU5FUSjs.MERGE_SYMBOL; exports.META_SYMBOL = _chunkLZAU5FUSjs.META_SYMBOL; exports.MODULE_SYMBOL = _chunkLZAU5FUSjs.MODULE_SYMBOL; exports.Meta = _chunkR3N4HR7Ujs.Meta; exports.NotFoundException = _chunkYU7ROHTOjs.NotFoundException; exports.PFilter = PFilter; exports.PGuard = PGuard; exports.PInterceptor = PInterceptor; exports.PPipe = PPipe; exports.PPlugin = PPlugin; exports.Param = Param; exports.Patch = Patch; exports.PayloadLargeException = _chunkYU7ROHTOjs.PayloadLargeException; exports.Pipe = Pipe; exports.Plugin = Plugin; exports.Post = Post; exports.Put = Put; exports.Query = Query; exports.Route = Route; exports.Rpc = Rpc; exports.ServiceUnavailableException = _chunkYU7ROHTOjs.ServiceUnavailableException; exports.TimeoutException = _chunkYU7ROHTOjs.TimeoutException; exports.UNMOUNT_SYMBOL = _chunkLZAU5FUSjs.UNMOUNT_SYMBOL; exports.UnauthorizedException = _chunkYU7ROHTOjs.UnauthorizedException; exports.UndefinedException = _chunkYU7ROHTOjs.UndefinedException; exports.UnsupportedMediaTypeException = _chunkYU7ROHTOjs.UnsupportedMediaTypeException; exports.ValidateException = _chunkYU7ROHTOjs.ValidateException; exports.addGuard = _chunkYU7ROHTOjs.addGuard; exports.addInterceptor = _chunkYU7ROHTOjs.addInterceptor; exports.addPipe = _chunkYU7ROHTOjs.addPipe; exports.addPlugin = _chunkYU7ROHTOjs.addPlugin; exports.defaultPipe = _chunkYU7ROHTOjs.defaultPipe; exports.emitter = _chunkR3N4HR7Ujs.emitter; exports.generateHTTPCode = _chunkR3N4HR7Ujs.generateHTTPCode; exports.generateRPCCode = _chunkR3N4HR7Ujs.generateRPCCode; exports.guardRecord = _chunkYU7ROHTOjs.guardRecord; exports.isAopDepInject = _chunkYU7ROHTOjs.isAopDepInject; exports.resolveDep = _chunkFAHHXHL5js.resolveDep; exports.setFilter = _chunkYU7ROHTOjs.setFilter;
421
423
  //# sourceMappingURL=index.js.map
package/dist/index.js.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"],"names":["setModelVar","setState","BaseParam","type","key","target","k","index","state","_namespace","__STATE_NAMESPACE__","get","params","existItem","find","item","Object","assign","push","Pipe","opts","pipe","pipeOpts","Body","Head","toLowerCase","Query","Param","Arg","Route","route","prototype","http","Get","Post","Put","Patch","Delete","Controller","Rpc","types","rpc","Event","isEvent","Guard","guards","Plugin","plugins","Interceptor","interceptors","Header","name","value","header","Define","define","Empty","Dev","emitter","UNMOUNT_SYMBOL","onUnmount","cb","PFilter","constructor","setFilter","use","bind","defaultFilter","getSymbol","PGuard","addGuard","Context","guardRecord","PInterceptor","interceptorRecord","addInterceptor","PPipe","addPipe","pipeRecord","PPlugin","addPlugin","pluginRecord"],"mappings":"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","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 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}\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'\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 { setFilter } from '../context'\nimport type { Exception } from '../exception'\nimport { defaultFilter } from '../filter'\nimport { Dev } from './dev'\n\nexport abstract class PFilter<C = any, S = any, E extends Exception = Exception > extends Dev {\n constructor() {\n super()\n setFilter(this.use.bind(this))\n this.onUnmount(() => {\n setFilter(defaultFilter)\n })\n }\n\n abstract use(error: Error | E, tag?: string, ctx?: C): S\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\n constructor() {\n super()\n const key = getSymbol(this)\n\n addGuard(key, this.use.bind(this))\n\n this.onUnmount(() => {\n delete Context.guardRecord[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): ((arg: any) => any) | void\n\n constructor() {\n super()\n\n const key = getSymbol(this)\n\n this.onUnmount(() => {\n delete Context.interceptorRecord[key]\n })\n addInterceptor(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 constructor() {\n super()\n\n const key = getSymbol(this)\n addPipe(key, this.use.bind(this))\n this.onUnmount(() => {\n delete Context.pipeRecord[key]\n })\n }\n\n abstract use(args: { arg: any; option?: any; key: string; type: string; index: number; reflect: any }, tag: string, ctx: C): Promise<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 constructor() {\n super()\n const key = getSymbol(this)\n\n addPlugin(key, this.use.bind(this))\n\n this.onUnmount(() => {\n delete Context.pluginRecord[key]\n })\n }\n\n abstract use(...args: any): void\n}\n"]}
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"],"names":["setModelVar","setState","BaseParam","type","key","target","k","index","state","_namespace","__STATE_NAMESPACE__","get","params","existItem","find","item","Object","assign","push","Pipe","opts","pipe","pipeOpts","Body","Head","toLowerCase","Query","Param","Arg","Route","route","prototype","http","Get","Post","Put","Patch","Delete","Controller","Rpc","types","rpc","Event","isEvent","Guard","guards","Plugin","plugins","Interceptor","interceptors","Header","name","value","header","Define","define","Empty","Dev","emitter","UNMOUNT_SYMBOL","onUnmount","cb","PFilter","constructor","setFilter","use","bind","defaultFilter","getSymbol","PGuard","addGuard","Context","guardRecord","PInterceptor","interceptorRecord","addInterceptor","PPipe","addPipe","pipeRecord","PPlugin","addPlugin","pluginRecord"],"mappings":"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","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}\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'\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 { setFilter } from '../context'\nimport type { Exception } from '../exception'\nimport { defaultFilter } from '../filter'\nimport { Dev } from './dev'\n\nexport abstract class PFilter<C = any, S = any, E extends Exception = Exception > extends Dev {\n constructor() {\n super()\n setFilter(this.use.bind(this))\n this.onUnmount(() => {\n setFilter(defaultFilter)\n })\n }\n\n abstract use(error: Error | E, tag?: string, ctx?: C): S\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\n constructor() {\n super()\n const key = getSymbol(this)\n\n addGuard(key, this.use.bind(this))\n\n this.onUnmount(() => {\n delete Context.guardRecord[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): ((arg: any) => any) | void\n\n constructor() {\n super()\n\n const key = getSymbol(this)\n\n this.onUnmount(() => {\n delete Context.interceptorRecord[key]\n })\n addInterceptor(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 constructor() {\n super()\n\n const key = getSymbol(this)\n addPipe(key, this.use.bind(this))\n this.onUnmount(() => {\n delete Context.pipeRecord[key]\n })\n }\n\n abstract use(args: { arg: any; option?: any; key: string; type: string; index: number; reflect: any }, tag: string, ctx: C): Promise<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 constructor() {\n super()\n const key = getSymbol(this)\n\n addPlugin(key, this.use.bind(this))\n\n this.onUnmount(() => {\n delete Context.pluginRecord[key]\n })\n }\n\n abstract use(...args: any): void\n}\n"]}
package/dist/index.mjs CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  emitter,
6
6
  generateHTTPCode,
7
7
  generateRPCCode
8
- } from "./chunk-WRMLZ7NU.mjs";
8
+ } from "./chunk-NFAA3WFR.mjs";
9
9
  import {
10
10
  resolveDep
11
11
  } from "./chunk-JQPX546Z.mjs";
@@ -78,6 +78,8 @@ function Pipe(key, opts) {
78
78
  return (target, k, index) => {
79
79
  setModelVar(target, k);
80
80
  const state = target._namespace.__STATE_NAMESPACE__.get(k) || {};
81
+ if (!state.params)
82
+ state.params = [];
81
83
  const existItem = state.params.find((item) => item.index === index);
82
84
  if (existItem)
83
85
  Object.assign(existItem, {
@@ -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"],"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 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}\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'\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 { setFilter } from '../context'\nimport type { Exception } from '../exception'\nimport { defaultFilter } from '../filter'\nimport { Dev } from './dev'\n\nexport abstract class PFilter<C = any, S = any, E extends Exception = Exception > extends Dev {\n constructor() {\n super()\n setFilter(this.use.bind(this))\n this.onUnmount(() => {\n setFilter(defaultFilter)\n })\n }\n\n abstract use(error: Error | E, tag?: string, ctx?: C): S\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\n constructor() {\n super()\n const key = getSymbol(this)\n\n addGuard(key, this.use.bind(this))\n\n this.onUnmount(() => {\n delete Context.guardRecord[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): ((arg: any) => any) | void\n\n constructor() {\n super()\n\n const key = getSymbol(this)\n\n this.onUnmount(() => {\n delete Context.interceptorRecord[key]\n })\n addInterceptor(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 constructor() {\n super()\n\n const key = getSymbol(this)\n addPipe(key, this.use.bind(this))\n this.onUnmount(() => {\n delete Context.pipeRecord[key]\n })\n }\n\n abstract use(args: { arg: any; option?: any; key: string; type: string; index: number; reflect: any }, tag: string, ctx: C): Promise<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 constructor() {\n super()\n const key = getSymbol(this)\n\n addPlugin(key, this.use.bind(this))\n\n this.onUnmount(() => {\n delete Context.pluginRecord[key]\n })\n }\n\n abstract use(...args: any): void\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","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","PFilter","Dev","constructor","setFilter","use","bind","onUnmount","defaultFilter","getSymbol","PGuard","Dev","constructor","key","getSymbol","addGuard","use","bind","onUnmount","Context","guardRecord","getSymbol","PInterceptor","Dev","constructor","key","getSymbol","onUnmount","Context","interceptorRecord","addInterceptor","use","bind","getSymbol","PPipe","Dev","constructor","key","getSymbol","addPipe","use","bind","onUnmount","Context","pipeRecord","getSymbol","PPlugin","Dev","constructor","key","getSymbol","addPlugin","use","bind","onUnmount","Context","pluginRecord"]}
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"],"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}\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'\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 { setFilter } from '../context'\nimport type { Exception } from '../exception'\nimport { defaultFilter } from '../filter'\nimport { Dev } from './dev'\n\nexport abstract class PFilter<C = any, S = any, E extends Exception = Exception > extends Dev {\n constructor() {\n super()\n setFilter(this.use.bind(this))\n this.onUnmount(() => {\n setFilter(defaultFilter)\n })\n }\n\n abstract use(error: Error | E, tag?: string, ctx?: C): S\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\n constructor() {\n super()\n const key = getSymbol(this)\n\n addGuard(key, this.use.bind(this))\n\n this.onUnmount(() => {\n delete Context.guardRecord[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): ((arg: any) => any) | void\n\n constructor() {\n super()\n\n const key = getSymbol(this)\n\n this.onUnmount(() => {\n delete Context.interceptorRecord[key]\n })\n addInterceptor(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 constructor() {\n super()\n\n const key = getSymbol(this)\n addPipe(key, this.use.bind(this))\n this.onUnmount(() => {\n delete Context.pipeRecord[key]\n })\n }\n\n abstract use(args: { arg: any; option?: any; key: string; type: string; index: number; reflect: any }, tag: string, ctx: C): Promise<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 constructor() {\n super()\n const key = getSymbol(this)\n\n addPlugin(key, this.use.bind(this))\n\n this.onUnmount(() => {\n delete Context.pluginRecord[key]\n })\n }\n\n abstract use(...args: any): void\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","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","PFilter","Dev","constructor","setFilter","use","bind","onUnmount","defaultFilter","getSymbol","PGuard","Dev","constructor","key","getSymbol","addGuard","use","bind","onUnmount","Context","guardRecord","getSymbol","PInterceptor","Dev","constructor","key","getSymbol","onUnmount","Context","interceptorRecord","addInterceptor","use","bind","getSymbol","PPipe","Dev","constructor","key","getSymbol","addPipe","use","bind","onUnmount","Context","pipeRecord","getSymbol","PPlugin","Dev","constructor","key","getSymbol","addPlugin","use","bind","onUnmount","Context","pluginRecord"]}
@@ -1,5 +1,5 @@
1
1
  import amqplib from 'amqplib';
2
- import { M as Meta, F as Factory } from '../../core-7c2dd0c7.js';
2
+ import { M as Meta, F as Factory } from '../../core-ba036c2b.js';
3
3
  import { T as ToInstance } from '../../types-ead02c5d.js';
4
4
  import 'phecda-core';
5
5
 
@@ -94,11 +94,9 @@ async function bind(ch, queue, { moduleMap, meta }, opts) {
94
94
  noAck: true
95
95
  });
96
96
  if (_chunkLZAU5FUSjs.IS_DEV) {
97
- const rawMetaHmr = globalThis.__PS_WRITEMETA__;
98
- globalThis.__PS_WRITEMETA__ = () => {
97
+ _optionalChain([globalThis, 'access', _2 => _2.__PS_HMR__, 'optionalAccess', _3 => _3.push, 'call', _4 => _4(async () => {
99
98
  handleMeta();
100
- _optionalChain([rawMetaHmr, 'optionalCall', _2 => _2()]);
101
- };
99
+ })]);
102
100
  }
103
101
  }
104
102
  _chunkLZAU5FUSjs.__name.call(void 0, bind, "bind");