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.
- package/dist/{chunk-WRMLZ7NU.mjs → chunk-NFAA3WFR.mjs} +27 -16
- package/dist/chunk-NFAA3WFR.mjs.map +1 -0
- package/dist/{chunk-D3VS53JQ.js → chunk-R3N4HR7U.js} +29 -18
- package/dist/chunk-R3N4HR7U.js.map +1 -0
- package/dist/{core-7c2dd0c7.d.ts → core-ba036c2b.d.ts} +2 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +3 -1
- package/dist/index.mjs.map +1 -1
- package/dist/rpc/rabbitmq/index.d.ts +1 -1
- package/dist/rpc/rabbitmq/index.js +2 -4
- package/dist/rpc/rabbitmq/index.js.map +1 -1
- package/dist/rpc/rabbitmq/index.mjs +2 -4
- package/dist/rpc/rabbitmq/index.mjs.map +1 -1
- package/dist/rpc/redis/index.d.ts +1 -1
- package/dist/rpc/redis/index.js +2 -4
- package/dist/rpc/redis/index.js.map +1 -1
- package/dist/rpc/redis/index.mjs +2 -4
- package/dist/rpc/redis/index.mjs.map +1 -1
- package/dist/server/express/index.d.ts +1 -1
- package/dist/server/express/index.js +2 -4
- package/dist/server/express/index.js.map +1 -1
- package/dist/server/express/index.mjs +2 -4
- package/dist/server/express/index.mjs.map +1 -1
- package/dist/server/fastify/index.d.ts +1 -1
- package/dist/server/fastify/index.js +2 -4
- package/dist/server/fastify/index.js.map +1 -1
- package/dist/server/fastify/index.mjs +2 -4
- package/dist/server/fastify/index.mjs.map +1 -1
- package/dist/server/h3/index.d.ts +1 -1
- package/dist/server/h3/index.js +2 -4
- package/dist/server/h3/index.js.map +1 -1
- package/dist/server/h3/index.mjs +2 -4
- package/dist/server/h3/index.mjs.map +1 -1
- package/dist/server/koa/index.d.ts +1 -1
- package/dist/server/koa/index.js +2 -4
- package/dist/server/koa/index.js.map +1 -1
- package/dist/server/koa/index.mjs +2 -4
- package/dist/server/koa/index.mjs.map +1 -1
- package/dist/test.js +2 -2
- package/dist/test.mjs +1 -1
- package/package.json +1 -1
- package/register/compile.mjs +3 -7
- package/register/index.mjs +2 -4
- package/register/loader.mjs +22 -8
- package/dist/chunk-D3VS53JQ.js.map +0 -1
- 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
|
|
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
|
-
|
|
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] ===
|
|
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(
|
|
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__
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
for (const
|
|
222
|
-
|
|
223
|
-
|
|
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
|
-
|
|
235
|
+
writeCode();
|
|
236
|
+
});
|
|
227
237
|
}
|
|
228
238
|
return {
|
|
229
239
|
moduleMap,
|
|
230
240
|
meta,
|
|
231
241
|
constructorMap,
|
|
232
|
-
|
|
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-
|
|
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
|
|
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',
|
|
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
|
-
|
|
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] ===
|
|
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,
|
|
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__
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
for (const
|
|
222
|
-
|
|
223
|
-
|
|
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
|
-
|
|
235
|
+
writeCode();
|
|
236
|
+
})]);
|
|
227
237
|
}
|
|
228
238
|
return {
|
|
229
239
|
moduleMap,
|
|
230
240
|
meta,
|
|
231
241
|
constructorMap,
|
|
232
|
-
|
|
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',
|
|
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-
|
|
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
|
-
|
|
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-
|
|
4
|
-
export { F as Factory, I as Injectable, e as emitter } from './core-
|
|
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
|
|
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 =
|
|
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 =
|
|
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-
|
|
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, {
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/decorators/index.ts","../src/decorators/param.ts","../src/decorators/route.ts","../src/decorators/aop.ts","../src/index.ts","../src/modules/dev.ts","../src/modules/filter.ts","../src/modules/guard.ts","../src/modules/interceptor.ts","../src/modules/pipe.ts","../src/modules/plugin.ts"],"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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAASA,eAAAA,cAAaC,YAAAA,iBAAgB;;;ACAtC,SAASC,aAAaC,gBAAgB;AAE/B,SAASC,UAAUC,MAAcC,KAAkB;AACxD,SAAO,CAACC,QAAaC,GAAgBC,UAAkB;AACrDC,gBAAYH,QAAQC,CAAAA;AAEpB,UAAMG,QAAQJ,OAAOK,WAAWC,oBAAoBC,IAAIN,CAAAA,KAAM,CAAC;AAC/D,QAAI,CAACG,MAAMI;AACTJ,YAAMI,SAAS,CAAA;AACjB,UAAMC,YAAYL,MAAMI,OAAOE,KAAK,CAACC,SAAcA,KAAKT,UAAUA,KAAAA;AAClE,QAAIO;AACFG,aAAOC,OAAOJ,WAAW;QAAEX;QAAMC;MAAI,CAAA;;AAGrCK,YAAMI,OAAOM,KAAK;QAAEhB;QAAMC;QAAKG;MAAM,CAAA;AAEvCa,aAASf,QAAQC,GAAGG,KAAAA;EACtB;AACF;AAhBgBP;AAkBT,SAASmB,KAAKjB,KAAckB,MAAY;AAC7C,SAAO,CAACjB,QAAaC,GAAgBC,UAAkB;AACrDC,gBAAYH,QAAQC,CAAAA;AAEpB,UAAMG,QAAQJ,OAAOK,WAAWC,oBAAoBC,IAAIN,CAAAA,KAAM,CAAC;AAE/D,QAAI,CAACG,MAAMI;AACTJ,YAAMI,SAAS,CAAA;AAEjB,UAAMC,YAAYL,MAAMI,OAAOE,KAAK,CAACC,SAAcA,KAAKT,UAAUA,KAAAA;AAClE,QAAIO;AACFG,aAAOC,OAAOJ,WAAW;QAAES,MAAMnB;QAAKoB,UAAUF;MAAK,CAAA;;AAGrDb,YAAMI,OAAOM,KAAK;QAAEI,MAAMnB;QAAKoB,UAAUF;QAAMf;MAAM,CAAA;AAEvDa,aAASf,QAAQC,GAAGG,KAAAA;EACtB;AACF;AAlBgBY;AAoBT,SAASI,KAAKrB,MAAM,IAAI;AAC7B,SAAOF,UAAU,QAAQE,GAAAA;AAC3B;AAFgBqB;AAIT,SAASC,KAAKtB,KAAa;AAChC,SAAOF,UAAU,WAAWE,IAAIuB,YAAW,CAAA;AAC7C;AAFgBD;AAIT,SAASE,MAAMxB,MAAM,IAAI;AAC9B,SAAOF,UAAU,SAASE,GAAAA;AAC5B;AAFgBwB;AAGT,SAASC,MAAMzB,KAAa;AACjC,SAAOF,UAAU,UAAUE,GAAAA;AAC7B;AAFgByB;AAKT,SAASC,MAAM;AACpB,SAAO5B,UAAU,UAAU,EAAA;AAC7B;AAFgB4B;;;ACxDhB,SAASC,eAAAA,cAAaC,YAAAA,iBAAgB;AAE/B,SAASC,MAAMC,OAAeC,MAAoB;AACvD,SAAO,CAACC,QAAaC,QAAsB;AACzC,QAAI,CAACA;AACHA,YAAM;AACRD,aAASC,QAAQ,YAAYD,OAAOE,YAAYF;AAEhDG,IAAAA,aAAYH,QAAQC,GAAAA;AAEpB,UAAMG,QAAQJ,OAAOK,WAAWC,oBAAoBC,IAAIN,GAAAA,KAAQ,CAAC;AACjEG,UAAMI,OAAO;MACXV;MACAC;IACF;AACAU,IAAAA,UAAST,QAAQC,KAAKG,KAAAA;EACxB;AACF;AAfgBP;AAiBT,SAASa,IAAIZ,OAAe;AACjC,SAAOD,MAAMC,OAAO,KAAA;AACtB;AAFgBY;AAIT,SAASC,KAAKb,OAAe;AAClC,SAAOD,MAAMC,OAAO,MAAA;AACtB;AAFgBa;AAGT,SAASC,IAAId,OAAe;AACjC,SAAOD,MAAMC,OAAO,KAAA;AACtB;AAFgBc;AAIT,SAASC,MAAMf,OAAe;AACnC,SAAOD,MAAMC,OAAO,OAAA;AACtB;AAFgBe;AAGT,SAASC,OAAOhB,OAAe;AACpC,SAAOD,MAAMC,OAAO,QAAA;AACtB;AAFgBgB;AAIT,SAASC,WAAWjB,QAAQ,IAAI;AACrC,SAAOD,MAAMC,KAAAA;AACf;AAFgBiB;AAIT,SAASC,OAAOC,OAAoC;AACzD,SAAO,CAACjB,QAAaC,QAAsB;AACzC,QAAI,CAACA;AACHA,YAAM;AACRD,aAASC,QAAQ,YAAYD,OAAOE,YAAYF;AAChDG,IAAAA,aAAYH,QAAQC,GAAAA;AACpB,UAAMG,QAAQJ,OAAOK,WAAWC,oBAAoBC,IAAIN,GAAAA,KAAQ,CAAC;AACjE,QAAI,CAACG,MAAMc;AACTd,YAAMc,MAAM,CAAC;AAEfd,UAAMc,IAAInB,OAAOkB;AACjBR,IAAAA,UAAST,QAAQC,KAAKG,KAAAA;EACxB;AACF;AAbgBY;AAcT,SAASG,MAAMC,UAAU,MAAM;AACpC,SAAO,CAACpB,QAAaC,QAAsB;AACzC,QAAI,CAACA;AACHA,YAAM;AACRD,aAASC,QAAQ,YAAYD,OAAOE,YAAYF;AAChDG,IAAAA,aAAYH,QAAQC,GAAAA;AACpB,UAAMG,QAAQJ,OAAOK,WAAWC,oBAAoBC,IAAIN,GAAAA,KAAQ,CAAC;AACjE,QAAI,CAACG,MAAMc;AACTd,YAAMc,MAAM,CAAC;AAEfd,UAAMc,IAAIE,UAAUA;AACpBX,IAAAA,UAAST,QAAQC,KAAKG,KAAAA;EACxB;AACF;AAbgBe;;;ACvDhB,SAASE,eAAAA,cAAaC,YAAAA,iBAAgB;AAE/B,SAASC,SAASC,QAAuB;AAC9C,SAAO,CAACC,QAAaC,QAAsB;AACzC,QAAI,CAACA;AACHA,YAAM;AACRD,aAASC,QAAQ,YAAYD,OAAOE,YAAYF;AAEhDG,IAAAA,aAAYH,QAAQC,GAAAA;AAEpB,UAAMG,QAAQJ,OAAOK,WAAWC,oBAAoBC,IAAIN,GAAAA,KAAQ,CAAC;AACjE,QAAI,CAACG,MAAML;AACTK,YAAML,SAAS,CAAA;AACjBK,UAAML,OAAOS,KAAI,GAAIT,MAAAA;AACrBU,IAAAA,UAAST,QAAQC,KAAKG,KAAAA;EACxB;AACF;AAdgBN;AAgBT,SAASY,UAAUC,SAAwB;AAChD,SAAO,CAACX,QAAaC,QAAsB;AACzC,QAAI,CAACA;AACHA,YAAM;AACRD,aAASC,QAAQ,YAAYD,OAAOE,YAAYF;AAEhDG,IAAAA,aAAYH,QAAQC,GAAAA;AAEpB,UAAMG,QAAQJ,OAAOK,WAAWC,oBAAoBC,IAAIN,GAAAA,KAAQ,CAAC;AACjE,QAAI,CAACG,MAAMO;AACTP,YAAMO,UAAU,CAAA;AAClBP,UAAMO,QAAQH,KAAI,GAAIG,OAAAA;AACtBF,IAAAA,UAAST,QAAQC,KAAKG,KAAAA;EACxB;AACF;AAdgBM;AAgBT,SAASE,eAAeC,cAA6B;AAC1D,SAAO,CAACb,QAAaC,QAAsB;AACzC,QAAI,CAACA;AACHA,YAAM;AACRD,aAASC,QAAQ,YAAYD,OAAOE,YAAYF;AAEhDG,IAAAA,aAAYH,QAAQC,GAAAA;AAEpB,UAAMG,QAAQJ,OAAOK,WAAWC,oBAAoBC,IAAIN,GAAAA,KAAQ,CAAC;AACjE,QAAI,CAACG,MAAMS;AACTT,YAAMS,eAAe,CAAA;AACvBT,UAAMS,aAAaL,KAAI,GAAIK,YAAAA;AAC3BJ,IAAAA,UAAST,QAAQC,KAAKG,KAAAA;EACxB;AACF;AAdgBQ;;;AHhCT,SAASE,OAAOC,MAAcC,OAAe;AAClD,SAAO,CAACC,QAAaC,MAAmB;AACtCC,IAAAA,aAAYF,QAAQC,CAAAA;AACpB,UAAME,QAAQH,OAAOI,WAAWC,oBAAoBC,IAAIL,CAAAA,KAAM,CAAC;AAC/D,QAAI,CAACE,MAAMI;AACTJ,YAAMI,SAAS,CAAC;AAElBJ,UAAMI,OAAOT,QAAQC;AACrBS,IAAAA,UAASR,QAAQC,GAAGE,KAAAA;EACtB;AACF;AAVgBN;AAYT,SAASY,OAAOC,KAAaX,OAAY;AAC9C,SAAO,CAACC,QAAaC,MAAoB;AACvC,QAAI,CAACA,GAAG;AACNA,UAAI;AACJD,eAASA,OAAOW;IAClB;AAEAT,IAAAA,aAAYF,QAAQC,CAAAA;AACpB,UAAME,QAAQH,OAAOI,WAAWC,oBAAoBC,IAAIL,CAAAA,KAAM,CAAC;AAC/D,QAAI,CAACE,MAAMS;AACTT,YAAMS,SAAS,CAAC;AAElBT,UAAMS,OAAOF,OAAOX;AACpBS,IAAAA,UAASR,QAAQC,GAAGE,KAAAA;EACtB;AACF;AAfgBM;;;AIPhB,cAAc;;;ACPd,SAASI,aAAa;;;;;;;;;;;AAKtB,IAAaC,MAAN,6BAAAA,KAAA;EACcC,UAAUA;EACZ,CAACC,kBAAkC,CAAA;EAEpDC,UAAUC,IAAgB;AACxB,SAAKF,gBAAgBG,KAAKD,EAAAA;EAC5B;AACF,GAPO;AAAMJ,MAAAA,WAAAA;EADZM;GACYN,GAAAA;;;ACAN,IAAeO,UAAf,cAAmFC,IAAAA;EACxFC,cAAc;AACZ,UAAK;AACLC,cAAU,KAAKC,IAAIC,KAAK,IAAI,CAAA;AAC5B,SAAKC,UAAU,MAAM;AACnBH,gBAAUI,aAAAA;IACZ,CAAA;EACF;AAGF;AAVsBP;;;ACLtB,SAASQ,iBAAiB;AAInB,IAAeC,SAAf,cAAuCC,IAAAA;EAG5CC,cAAc;AACZ,UAAK;AACL,UAAMC,MAAMC,UAAU,IAAI;AAE1BC,aAASF,KAAK,KAAKG,IAAIC,KAAK,IAAI,CAAA;AAEhC,SAAKC,UAAU,MAAM;AACnB,aAAOC,QAAQC,YAAYP;IAC7B,CAAA;EACF;AACF;AAbsBH;;;ACJtB,SAASW,aAAAA,kBAAiB;AAInB,IAAeC,eAAf,cAA6CC,IAAAA;EAGlDC,cAAc;AACZ,UAAK;AAEL,UAAMC,MAAMC,WAAU,IAAI;AAE1B,SAAKC,UAAU,MAAM;AACnB,aAAOC,QAAQC,kBAAkBJ;IACnC,CAAA;AACAK,mBAAeL,KAAK,KAAKM,IAAIC,KAAK,IAAI,CAAA;EACxC;AACF;AAbsBV;;;ACJtB,SAASW,aAAAA,kBAAiB;AAGnB,IAAeC,QAAf,cAAsCC,IAAAA;EAC3CC,cAAc;AACZ,UAAK;AAEL,UAAMC,MAAMC,WAAU,IAAI;AAC1BC,YAAQF,KAAK,KAAKG,IAAIC,KAAK,IAAI,CAAA;AAC/B,SAAKC,UAAU,MAAM;AACnB,aAAOC,QAAQC,WAAWP;IAC5B,CAAA;EACF;AAGF;AAZsBH;;;ACHtB,SAASW,aAAAA,kBAAiB;AAInB,IAAeC,UAAf,cAA+BC,IAAAA;EACpCC,cAAc;AACZ,UAAK;AACL,UAAMC,MAAMC,WAAU,IAAI;AAE1BC,cAAUF,KAAK,KAAKG,IAAIC,KAAK,IAAI,CAAA;AAEjC,SAAKC,UAAU,MAAM;AACnB,aAAOC,QAAQC,aAAaP;IAC9B,CAAA;EACF;AAGF;AAbsBH;","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"]}
|
|
@@ -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
|
-
|
|
98
|
-
globalThis.__PS_WRITEMETA__ = () => {
|
|
97
|
+
_optionalChain([globalThis, 'access', _2 => _2.__PS_HMR__, 'optionalAccess', _3 => _3.push, 'call', _4 => _4(async () => {
|
|
99
98
|
handleMeta();
|
|
100
|
-
|
|
101
|
-
};
|
|
99
|
+
})]);
|
|
102
100
|
}
|
|
103
101
|
}
|
|
104
102
|
_chunkLZAU5FUSjs.__name.call(void 0, bind, "bind");
|