phecda-server 4.0.0 → 4.0.2
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-FPN7NODB.mjs → chunk-AJ2HYENF.mjs} +13 -5
- package/dist/chunk-AJ2HYENF.mjs.map +1 -0
- package/dist/{chunk-UEH6FW5I.js → chunk-D3VS53JQ.js} +26 -23
- package/dist/chunk-D3VS53JQ.js.map +1 -0
- package/dist/{chunk-JGSJIKGN.js → chunk-FAHHXHL5.js} +3 -3
- package/dist/{chunk-HY6T4ZWQ.mjs → chunk-JQPX546Z.mjs} +2 -2
- package/dist/{chunk-62QDU5FJ.js → chunk-LZAU5FUS.js} +14 -6
- package/dist/chunk-LZAU5FUS.js.map +1 -0
- package/dist/{chunk-3PXRNECS.mjs → chunk-Q6T7HNEO.mjs} +69 -20
- package/dist/chunk-Q6T7HNEO.mjs.map +1 -0
- package/dist/{chunk-MFGAP3PV.mjs → chunk-WRMLZ7NU.mjs} +8 -5
- package/dist/{chunk-MFGAP3PV.mjs.map → chunk-WRMLZ7NU.mjs.map} +1 -1
- package/dist/{chunk-BP7CKHPK.js → chunk-YU7ROHTO.js} +96 -47
- package/dist/chunk-YU7ROHTO.js.map +1 -0
- package/dist/index.d.ts +30 -17
- package/dist/index.js +84 -47
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +55 -18
- package/dist/index.mjs.map +1 -1
- package/dist/rpc/rabbitmq/index.js +12 -9
- package/dist/rpc/rabbitmq/index.js.map +1 -1
- package/dist/rpc/rabbitmq/index.mjs +9 -6
- package/dist/rpc/rabbitmq/index.mjs.map +1 -1
- package/dist/rpc/redis/index.js +12 -9
- package/dist/rpc/redis/index.js.map +1 -1
- package/dist/rpc/redis/index.mjs +9 -6
- package/dist/rpc/redis/index.mjs.map +1 -1
- package/dist/server/express/index.js +27 -23
- package/dist/server/express/index.js.map +1 -1
- package/dist/server/express/index.mjs +11 -7
- package/dist/server/express/index.mjs.map +1 -1
- package/dist/server/fastify/index.js +24 -20
- package/dist/server/fastify/index.js.map +1 -1
- package/dist/server/fastify/index.mjs +11 -7
- package/dist/server/fastify/index.mjs.map +1 -1
- package/dist/server/h3/index.js +27 -23
- package/dist/server/h3/index.js.map +1 -1
- package/dist/server/h3/index.mjs +11 -7
- package/dist/server/h3/index.mjs.map +1 -1
- package/dist/server/koa/index.d.ts +22 -0
- package/dist/server/koa/index.js +193 -0
- package/dist/server/koa/index.js.map +1 -0
- package/dist/server/koa/index.mjs +193 -0
- package/dist/server/koa/index.mjs.map +1 -0
- package/dist/test.js +7 -9
- package/dist/test.js.map +1 -1
- package/dist/test.mjs +4 -6
- package/dist/test.mjs.map +1 -1
- package/package.json +10 -2
- package/register/index.mjs +1 -1
- package/register/loader.mjs +0 -1
- package/dist/chunk-3PXRNECS.mjs.map +0 -1
- package/dist/chunk-62QDU5FJ.js.map +0 -1
- package/dist/chunk-BP7CKHPK.js.map +0 -1
- package/dist/chunk-FPN7NODB.mjs.map +0 -1
- package/dist/chunk-IIGNGFDC.js +0 -47
- package/dist/chunk-IIGNGFDC.js.map +0 -1
- package/dist/chunk-Q4FA4TAV.mjs +0 -47
- package/dist/chunk-Q4FA4TAV.mjs.map +0 -1
- package/dist/chunk-UEH6FW5I.js.map +0 -1
- package/dist/supertest-G6LTYS5C.js +0 -21969
- package/dist/supertest-G6LTYS5C.js.map +0 -1
- package/dist/supertest-NLMK5OIC.mjs +0 -21969
- package/dist/supertest-NLMK5OIC.mjs.map +0 -1
- /package/dist/{chunk-JGSJIKGN.js.map → chunk-FAHHXHL5.js.map} +0 -0
- /package/dist/{chunk-HY6T4ZWQ.mjs.map → chunk-JQPX546Z.mjs.map} +0 -0
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
4
|
+
var __publicField = (obj, key, value) => {
|
|
5
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
6
|
+
return value;
|
|
7
|
+
};
|
|
4
8
|
|
|
5
9
|
// src/common.ts
|
|
6
10
|
var MERGE_SYMBOL = "__PS_MERGE__";
|
|
@@ -9,6 +13,7 @@ var MODULE_SYMBOL = "__PS_MODULE__";
|
|
|
9
13
|
var META_SYMBOL = "__PS_META__";
|
|
10
14
|
var APP_SYMBOL = "__PS__";
|
|
11
15
|
var IS_DEV = process.env.NODE_ENV === "development";
|
|
16
|
+
var IS_STRICT = !!process.env.PS_STRICT;
|
|
12
17
|
|
|
13
18
|
// src/utils.ts
|
|
14
19
|
import pc from "picocolors";
|
|
@@ -24,12 +29,15 @@ function log(msg, level = "info") {
|
|
|
24
29
|
__name(log, "log");
|
|
25
30
|
|
|
26
31
|
export {
|
|
32
|
+
__name,
|
|
33
|
+
__publicField,
|
|
27
34
|
log,
|
|
28
35
|
MERGE_SYMBOL,
|
|
29
36
|
UNMOUNT_SYMBOL,
|
|
30
37
|
MODULE_SYMBOL,
|
|
31
38
|
META_SYMBOL,
|
|
32
39
|
APP_SYMBOL,
|
|
33
|
-
IS_DEV
|
|
40
|
+
IS_DEV,
|
|
41
|
+
IS_STRICT
|
|
34
42
|
};
|
|
35
|
-
//# sourceMappingURL=chunk-
|
|
43
|
+
//# sourceMappingURL=chunk-AJ2HYENF.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common.ts","../src/utils.ts"],"sourcesContent":["export const MERGE_SYMBOL = '__PS_MERGE__'\nexport const UNMOUNT_SYMBOL = '__PS_UNMOUNT__'\nexport const MODULE_SYMBOL = '__PS_MODULE__'\nexport const META_SYMBOL = '__PS_META__'\nexport const APP_SYMBOL = '__PS__'\nexport const IS_DEV = process.env.NODE_ENV === 'development'\nexport const IS_STRICT = !!process.env.PS_STRICT\n","import pc from 'picocolors'\n\nexport function log(msg: string, level: 'error' | 'info' | 'warn' = 'info') {\n const color = ({ error: 'red', info: 'green', warn: 'yellow' } as const)[level]\n const date = new Date()\n // eslint-disable-next-line no-console\n console.log(`${pc.magenta('[phecda-server]')} ${pc.gray(`${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`)} ${pc[color](msg)}`)\n}\n"],"mappings":";;;;;;;;;AAAO,IAAMA,eAAe;AACrB,IAAMC,iBAAiB;AACvB,IAAMC,gBAAgB;AACtB,IAAMC,cAAc;AACpB,IAAMC,aAAa;AACnB,IAAMC,SAASC,QAAQC,IAAIC,aAAa;AACxC,IAAMC,YAAY,CAAC,CAACH,QAAQC,IAAIG;;;ACNvC,OAAOC,QAAQ;AAER,SAASC,IAAIC,KAAaC,QAAmC,QAAQ;AAC1E,QAAMC,QAAS;IAAEC,OAAO;IAAOC,MAAM;IAASC,MAAM;EAAS,EAAYJ;AACzE,QAAMK,OAAO,IAAIC,KAAAA;AAEjBC,UAAQT,IAAI,GAAGU,GAAGC,QAAQ,iBAAA,KAAsBD,GAAGE,KAAK,GAAGL,KAAKM,SAAQ,KAAMN,KAAKO,WAAU,KAAMP,KAAKQ,WAAU,GAAI,KAAKL,GAAGP,OAAOF,GAAAA,GAAM;AAC7I;AALgBD;","names":["MERGE_SYMBOL","UNMOUNT_SYMBOL","MODULE_SYMBOL","META_SYMBOL","APP_SYMBOL","IS_DEV","process","env","NODE_ENV","IS_STRICT","PS_STRICT","pc","log","msg","level","color","error","info","warn","date","Date","console","pc","magenta","gray","getHours","getMinutes","getSeconds"]}
|
|
@@ -2,10 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var _chunk62QDU5FJjs = require('./chunk-62QDU5FJ.js');
|
|
6
5
|
|
|
7
|
-
|
|
8
|
-
var _chunkIIGNGFDCjs = require('./chunk-IIGNGFDC.js');
|
|
6
|
+
var _chunkLZAU5FUSjs = require('./chunk-LZAU5FUS.js');
|
|
9
7
|
|
|
10
8
|
// src/meta.ts
|
|
11
9
|
var Meta = class {
|
|
@@ -18,10 +16,10 @@ var Meta = class {
|
|
|
18
16
|
this.paramsType = paramsType;
|
|
19
17
|
}
|
|
20
18
|
};
|
|
21
|
-
|
|
19
|
+
_chunkLZAU5FUSjs.__name.call(void 0, Meta, "Meta");
|
|
22
20
|
|
|
23
21
|
// src/compiler/rpc.ts
|
|
24
|
-
var Compiler = /* @__PURE__ */
|
|
22
|
+
var Compiler = /* @__PURE__ */ _chunkLZAU5FUSjs.__name.call(void 0, (_class =class Compiler2 {
|
|
25
23
|
__init() {this.classMap = {}}
|
|
26
24
|
constructor() {;_class.prototype.__init.call(this);
|
|
27
25
|
}
|
|
@@ -57,10 +55,10 @@ function generateRPCCode(meta) {
|
|
|
57
55
|
compiler.addMethod(i);
|
|
58
56
|
return compiler.getContent();
|
|
59
57
|
}
|
|
60
|
-
|
|
58
|
+
_chunkLZAU5FUSjs.__name.call(void 0, generateRPCCode, "generateRPCCode");
|
|
61
59
|
|
|
62
60
|
// src/compiler/http.ts
|
|
63
|
-
var Compiler3 = /* @__PURE__ */
|
|
61
|
+
var Compiler3 = /* @__PURE__ */ _chunkLZAU5FUSjs.__name.call(void 0, (_class2 =class Compiler4 {
|
|
64
62
|
__init2() {this.classMap = {}}
|
|
65
63
|
constructor() {;_class2.prototype.__init2.call(this);
|
|
66
64
|
}
|
|
@@ -99,7 +97,7 @@ function generateHTTPCode(meta) {
|
|
|
99
97
|
compiler.addMethod(i);
|
|
100
98
|
return compiler.getContent();
|
|
101
99
|
}
|
|
102
|
-
|
|
100
|
+
_chunkLZAU5FUSjs.__name.call(void 0, generateHTTPCode, "generateHTTPCode");
|
|
103
101
|
|
|
104
102
|
// src/core.ts
|
|
105
103
|
require('reflect-metadata');
|
|
@@ -111,7 +109,7 @@ var _picocolors = require('picocolors'); var _picocolors2 = _interopRequireDefau
|
|
|
111
109
|
function Injectable() {
|
|
112
110
|
return (target) => _phecdacore.Empty.call(void 0, target);
|
|
113
111
|
}
|
|
114
|
-
|
|
112
|
+
_chunkLZAU5FUSjs.__name.call(void 0, Injectable, "Injectable");
|
|
115
113
|
var debug = _debug2.default.call(void 0, "phecda-server");
|
|
116
114
|
var emitter = new (0, _events2.default)();
|
|
117
115
|
async function Factory(Modules, opts = {}) {
|
|
@@ -123,6 +121,11 @@ async function Factory(Modules, opts = {}) {
|
|
|
123
121
|
const { http, rpc } = opts;
|
|
124
122
|
_phecdacore.injectProperty.call(void 0, "watcher", ({ eventName, instance, key, options }) => {
|
|
125
123
|
const fn = typeof instance[key] === "function" ? instance[key].bind(instance) : (v) => instance[key] = v;
|
|
124
|
+
if (!instance[_chunkLZAU5FUSjs.UNMOUNT_SYMBOL])
|
|
125
|
+
instance[_chunkLZAU5FUSjs.UNMOUNT_SYMBOL] = [];
|
|
126
|
+
instance[_chunkLZAU5FUSjs.UNMOUNT_SYMBOL].push(() => {
|
|
127
|
+
emitter.off(eventName, fn);
|
|
128
|
+
});
|
|
126
129
|
if (_optionalChain([options, 'optionalAccess', _2 => _2.once]))
|
|
127
130
|
emitter.once(eventName, fn);
|
|
128
131
|
else
|
|
@@ -134,11 +137,11 @@ async function Factory(Modules, opts = {}) {
|
|
|
134
137
|
return;
|
|
135
138
|
debug(`update module "${tag}"`);
|
|
136
139
|
const instance = moduleMap.get(tag);
|
|
137
|
-
if (_optionalChain([instance, 'optionalAccess', _5 => _5[
|
|
138
|
-
for (const cb of instance[
|
|
140
|
+
if (_optionalChain([instance, 'optionalAccess', _5 => _5[_chunkLZAU5FUSjs.UNMOUNT_SYMBOL]])) {
|
|
141
|
+
for (const cb of instance[_chunkLZAU5FUSjs.UNMOUNT_SYMBOL])
|
|
139
142
|
await cb();
|
|
140
143
|
}
|
|
141
|
-
|
|
144
|
+
_chunkLZAU5FUSjs.log.call(void 0, `Module ${_picocolors2.default.yellow(`[${tag}]`)} unmount`);
|
|
142
145
|
moduleMap.delete(tag);
|
|
143
146
|
constructorMap.delete(tag);
|
|
144
147
|
for (let i = meta.length - 1; i >= 0; i--) {
|
|
@@ -159,7 +162,7 @@ async function Factory(Modules, opts = {}) {
|
|
|
159
162
|
}
|
|
160
163
|
moduleMap.set(tag, newModule);
|
|
161
164
|
}
|
|
162
|
-
|
|
165
|
+
_chunkLZAU5FUSjs.__name.call(void 0, update, "update");
|
|
163
166
|
async function buildNestModule(Module) {
|
|
164
167
|
const paramtypes = getParamTypes(Module);
|
|
165
168
|
let instance;
|
|
@@ -170,7 +173,7 @@ async function Factory(Modules, opts = {}) {
|
|
|
170
173
|
throw new Error(`exist Circular-Dependency or Multiple modules with the same name/tag [tag] ${tag}--[module] ${Module}`);
|
|
171
174
|
if (constructorMap.get(tag) !== Module && !constructorSet.has(Module)) {
|
|
172
175
|
constructorSet.add(Module);
|
|
173
|
-
|
|
176
|
+
_chunkLZAU5FUSjs.log.call(void 0, `Synonym module: Module taged "${tag}" has been loaded before, so phecda-server won't load Module "${Module.name}"`, "warn");
|
|
174
177
|
}
|
|
175
178
|
return {
|
|
176
179
|
instance,
|
|
@@ -194,14 +197,14 @@ async function Factory(Modules, opts = {}) {
|
|
|
194
197
|
meta.push(...getMetaFromInstance(instance, tag, Module.name));
|
|
195
198
|
await _phecdacore.registerAsync.call(void 0, instance);
|
|
196
199
|
moduleMap.set(tag, instance);
|
|
197
|
-
|
|
200
|
+
_chunkLZAU5FUSjs.log.call(void 0, `Module ${_picocolors2.default.yellow(`[${tag}]`)} mount"`);
|
|
198
201
|
constructorMap.set(tag, Module);
|
|
199
202
|
return {
|
|
200
203
|
instance,
|
|
201
204
|
tag
|
|
202
205
|
};
|
|
203
206
|
}
|
|
204
|
-
|
|
207
|
+
_chunkLZAU5FUSjs.__name.call(void 0, buildNestModule, "buildNestModule");
|
|
205
208
|
for (const Module of Modules)
|
|
206
209
|
await buildNestModule(Module);
|
|
207
210
|
function writeCode() {
|
|
@@ -209,9 +212,9 @@ async function Factory(Modules, opts = {}) {
|
|
|
209
212
|
http && _fs2.default.promises.writeFile(http, generateHTTPCode(meta.map((item) => item.data)));
|
|
210
213
|
rpc && _fs2.default.promises.writeFile(rpc, generateRPCCode(meta.map((item) => item.data)));
|
|
211
214
|
}
|
|
212
|
-
|
|
215
|
+
_chunkLZAU5FUSjs.__name.call(void 0, writeCode, "writeCode");
|
|
213
216
|
writeCode();
|
|
214
|
-
if (
|
|
217
|
+
if (_chunkLZAU5FUSjs.IS_DEV) {
|
|
215
218
|
globalThis.__PS_HMR__ = async (file) => {
|
|
216
219
|
debug(`reload file ${file}`);
|
|
217
220
|
const module = await Promise.resolve().then(() => require(file));
|
|
@@ -229,7 +232,7 @@ async function Factory(Modules, opts = {}) {
|
|
|
229
232
|
update
|
|
230
233
|
};
|
|
231
234
|
}
|
|
232
|
-
|
|
235
|
+
_chunkLZAU5FUSjs.__name.call(void 0, Factory, "Factory");
|
|
233
236
|
function getMetaFromInstance(instance, tag, name) {
|
|
234
237
|
const vars = _phecdacore.getExposeKey.call(void 0, instance).filter((item) => item !== "__CLASS");
|
|
235
238
|
const baseState = _phecdacore.getState.call(void 0, instance, "__CLASS") || {};
|
|
@@ -291,11 +294,11 @@ function getMetaFromInstance(instance, tag, name) {
|
|
|
291
294
|
return new Meta(meta, _phecdacore.getHandler.call(void 0, instance, i), getParamTypes(instance, i) || []);
|
|
292
295
|
});
|
|
293
296
|
}
|
|
294
|
-
|
|
297
|
+
_chunkLZAU5FUSjs.__name.call(void 0, getMetaFromInstance, "getMetaFromInstance");
|
|
295
298
|
function getParamTypes(Module, key) {
|
|
296
299
|
return Reflect.getMetadata("design:paramtypes", Module, key);
|
|
297
300
|
}
|
|
298
|
-
|
|
301
|
+
_chunkLZAU5FUSjs.__name.call(void 0, getParamTypes, "getParamTypes");
|
|
299
302
|
function initState(state) {
|
|
300
303
|
if (!state.define)
|
|
301
304
|
state.define = {};
|
|
@@ -308,7 +311,7 @@ function initState(state) {
|
|
|
308
311
|
if (!state.interceptors)
|
|
309
312
|
state.interceptors = [];
|
|
310
313
|
}
|
|
311
|
-
|
|
314
|
+
_chunkLZAU5FUSjs.__name.call(void 0, initState, "initState");
|
|
312
315
|
|
|
313
316
|
|
|
314
317
|
|
|
@@ -318,4 +321,4 @@ _chunkIIGNGFDCjs.__name.call(void 0, initState, "initState");
|
|
|
318
321
|
|
|
319
322
|
|
|
320
323
|
exports.Meta = Meta; exports.generateRPCCode = generateRPCCode; exports.generateHTTPCode = generateHTTPCode; exports.Injectable = Injectable; exports.emitter = emitter; exports.Factory = Factory;
|
|
321
|
-
//# sourceMappingURL=chunk-
|
|
324
|
+
//# sourceMappingURL=chunk-D3VS53JQ.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","update","Module","prototype","__TAG__","has","get","cb","log","yellow","delete","length","splice","newModule","buildNestModule","forEach","module","set","paramtypes","getParamTypes","Error","add","undefined","paramtypesInstances","sub","subTag","Set","getMetaFromInstance","writeCode","promises","writeFile","map","item","IS_DEV","globalThis","__PS_HMR__","file","__PS_WRITEMETA__","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 async function update(Module: Construct) {\n const tag = Module.prototype?.__TAG__ || Module.name\n if (!moduleMap.has(tag))\n return\n debug(`update module \"${tag}\"`)\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 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 const { instance: newModule } = await buildNestModule(Module)\n if (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] === instance)\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 // @ts-expect-error globalThis\n globalThis.__PS_HMR__ = async (file: string) => {\n debug(`reload file ${file}`)\n const module = await import(file)\n for (const i in module) {\n if (isPhecda(module[i]))\n await update(module[i])\n }\n }\n // @ts-expect-error globalThis\n globalThis.__PS_WRITEMETA__ = writeCode\n }\n\n return {\n moduleMap,\n meta,\n constructorMap,\n update,\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"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkLZAU5FUSjs = require('./chunk-LZAU5FUS.js');
|
|
4
4
|
|
|
5
5
|
// src/helper.ts
|
|
6
6
|
function resolveDep(ret, key) {
|
|
@@ -8,9 +8,9 @@ function resolveDep(ret, key) {
|
|
|
8
8
|
return _optionalChain([ret, 'optionalAccess', _ => _[key]]);
|
|
9
9
|
return ret;
|
|
10
10
|
}
|
|
11
|
-
|
|
11
|
+
_chunkLZAU5FUSjs.__name.call(void 0, resolveDep, "resolveDep");
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
exports.resolveDep = resolveDep;
|
|
16
|
-
//# sourceMappingURL=chunk-
|
|
16
|
+
//# sourceMappingURL=chunk-FAHHXHL5.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
__name
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-AJ2HYENF.mjs";
|
|
4
4
|
|
|
5
5
|
// src/helper.ts
|
|
6
6
|
function resolveDep(ret, key) {
|
|
@@ -13,4 +13,4 @@ __name(resolveDep, "resolveDep");
|
|
|
13
13
|
export {
|
|
14
14
|
resolveDep
|
|
15
15
|
};
|
|
16
|
-
//# sourceMappingURL=chunk-
|
|
16
|
+
//# sourceMappingURL=chunk-JQPX546Z.mjs.map
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
2
|
-
|
|
3
|
-
var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
4
|
+
var __publicField = (obj, key, value) => {
|
|
5
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
6
|
+
return value;
|
|
7
|
+
};
|
|
4
8
|
|
|
5
9
|
// src/common.ts
|
|
6
10
|
var MERGE_SYMBOL = "__PS_MERGE__";
|
|
@@ -9,6 +13,7 @@ var MODULE_SYMBOL = "__PS_MODULE__";
|
|
|
9
13
|
var META_SYMBOL = "__PS_META__";
|
|
10
14
|
var APP_SYMBOL = "__PS__";
|
|
11
15
|
var IS_DEV = process.env.NODE_ENV === "development";
|
|
16
|
+
var IS_STRICT = !!process.env.PS_STRICT;
|
|
12
17
|
|
|
13
18
|
// src/utils.ts
|
|
14
19
|
var _picocolors = require('picocolors'); var _picocolors2 = _interopRequireDefault(_picocolors);
|
|
@@ -21,7 +26,10 @@ function log(msg, level = "info") {
|
|
|
21
26
|
const date = new Date();
|
|
22
27
|
console.log(`${_picocolors2.default.magenta("[phecda-server]")} ${_picocolors2.default.gray(`${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`)} ${_picocolors2.default[color](msg)}`);
|
|
23
28
|
}
|
|
24
|
-
|
|
29
|
+
__name(log, "log");
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
25
33
|
|
|
26
34
|
|
|
27
35
|
|
|
@@ -31,5 +39,5 @@ _chunkIIGNGFDCjs.__name.call(void 0, log, "log");
|
|
|
31
39
|
|
|
32
40
|
|
|
33
41
|
|
|
34
|
-
exports.log = log; exports.MERGE_SYMBOL = MERGE_SYMBOL; exports.UNMOUNT_SYMBOL = UNMOUNT_SYMBOL; exports.MODULE_SYMBOL = MODULE_SYMBOL; exports.META_SYMBOL = META_SYMBOL; exports.APP_SYMBOL = APP_SYMBOL; exports.IS_DEV = IS_DEV;
|
|
35
|
-
//# sourceMappingURL=chunk-
|
|
42
|
+
exports.__name = __name; exports.__publicField = __publicField; exports.log = log; exports.MERGE_SYMBOL = MERGE_SYMBOL; exports.UNMOUNT_SYMBOL = UNMOUNT_SYMBOL; exports.MODULE_SYMBOL = MODULE_SYMBOL; exports.META_SYMBOL = META_SYMBOL; exports.APP_SYMBOL = APP_SYMBOL; exports.IS_DEV = IS_DEV; exports.IS_STRICT = IS_STRICT;
|
|
43
|
+
//# sourceMappingURL=chunk-LZAU5FUS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common.ts","../src/utils.ts"],"names":["MERGE_SYMBOL","UNMOUNT_SYMBOL","MODULE_SYMBOL","META_SYMBOL","APP_SYMBOL","IS_DEV","process","env","NODE_ENV","IS_STRICT","PS_STRICT","pc","log","msg","level","color","error","info","warn","date","Date","console","magenta","gray","getHours","getMinutes","getSeconds"],"mappings":";;;;;;;;;AAAO,IAAMA,eAAe;AACrB,IAAMC,iBAAiB;AACvB,IAAMC,gBAAgB;AACtB,IAAMC,cAAc;AACpB,IAAMC,aAAa;AACnB,IAAMC,SAASC,QAAQC,IAAIC,aAAa;AACxC,IAAMC,YAAY,CAAC,CAACH,QAAQC,IAAIG;;;ACNvC,OAAOC,QAAQ;AAER,SAASC,IAAIC,KAAaC,QAAmC,QAAQ;AAC1E,QAAMC,QAAS;IAAEC,OAAO;IAAOC,MAAM;IAASC,MAAM;EAAS,EAAYJ;AACzE,QAAMK,OAAO,IAAIC,KAAAA;AAEjBC,UAAQT,IAAI,GAAGD,GAAGW,QAAQ,iBAAA,KAAsBX,GAAGY,KAAK,GAAGJ,KAAKK,SAAQ,KAAML,KAAKM,WAAU,KAAMN,KAAKO,WAAU,GAAI,KAAKf,GAAGI,OAAOF,GAAAA,GAAM;AAC7I;AALgBD","sourcesContent":["export const MERGE_SYMBOL = '__PS_MERGE__'\nexport const UNMOUNT_SYMBOL = '__PS_UNMOUNT__'\nexport const MODULE_SYMBOL = '__PS_MODULE__'\nexport const META_SYMBOL = '__PS_META__'\nexport const APP_SYMBOL = '__PS__'\nexport const IS_DEV = process.env.NODE_ENV === 'development'\nexport const IS_STRICT = !!process.env.PS_STRICT\n","import pc from 'picocolors'\n\nexport function log(msg: string, level: 'error' | 'info' | 'warn' = 'info') {\n const color = ({ error: 'red', info: 'green', warn: 'yellow' } as const)[level]\n const date = new Date()\n // eslint-disable-next-line no-console\n console.log(`${pc.magenta('[phecda-server]')} ${pc.gray(`${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`)} ${pc[color](msg)}`)\n}\n"]}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
IS_DEV,
|
|
3
|
-
|
|
4
|
-
} from "./chunk-FPN7NODB.mjs";
|
|
5
|
-
import {
|
|
3
|
+
IS_STRICT,
|
|
6
4
|
__name,
|
|
7
|
-
__publicField
|
|
8
|
-
|
|
5
|
+
__publicField,
|
|
6
|
+
log
|
|
7
|
+
} from "./chunk-AJ2HYENF.mjs";
|
|
9
8
|
|
|
10
9
|
// src/exception/base.ts
|
|
11
10
|
var Exception = class extends Error {
|
|
@@ -163,6 +162,9 @@ var FrameworkException = class extends Exception {
|
|
|
163
162
|
};
|
|
164
163
|
__name(FrameworkException, "FrameworkException");
|
|
165
164
|
|
|
165
|
+
// src/context.ts
|
|
166
|
+
import pc from "picocolors";
|
|
167
|
+
|
|
166
168
|
// src/filter.ts
|
|
167
169
|
var defaultFilter = /* @__PURE__ */ __name((e) => {
|
|
168
170
|
if (!(e instanceof Exception)) {
|
|
@@ -191,7 +193,7 @@ var Histroy = class {
|
|
|
191
193
|
__name(Histroy, "Histroy");
|
|
192
194
|
|
|
193
195
|
// src/context.ts
|
|
194
|
-
var
|
|
196
|
+
var guardRecord = {};
|
|
195
197
|
var _Context = class {
|
|
196
198
|
tag;
|
|
197
199
|
data;
|
|
@@ -208,6 +210,12 @@ var _Context = class {
|
|
|
208
210
|
}
|
|
209
211
|
usePipe(args) {
|
|
210
212
|
return Promise.all(args.map((item) => {
|
|
213
|
+
if (item.pipe && !_Context.pipeRecord[item.pipe]) {
|
|
214
|
+
if (IS_STRICT)
|
|
215
|
+
throw new FrameworkException(`can't find pipe named '${item.pipe}'`);
|
|
216
|
+
else
|
|
217
|
+
return _Context.pipeRecord.default(item, this.tag, this.data);
|
|
218
|
+
}
|
|
211
219
|
return _Context.pipeRecord[item.pipe || "default"](item, this.tag, this.data);
|
|
212
220
|
}));
|
|
213
221
|
}
|
|
@@ -217,12 +225,12 @@ var _Context = class {
|
|
|
217
225
|
async useGuard(guards) {
|
|
218
226
|
for (const guard of guards) {
|
|
219
227
|
if (this.history.record(guard, "guard")) {
|
|
220
|
-
if (!(guard in _Context.
|
|
221
|
-
if (
|
|
228
|
+
if (!(guard in _Context.guardRecord)) {
|
|
229
|
+
if (IS_STRICT)
|
|
222
230
|
throw new FrameworkException(`can't find guard named '${guard}'`);
|
|
223
231
|
continue;
|
|
224
232
|
}
|
|
225
|
-
if (!await _Context.
|
|
233
|
+
if (!await _Context.guardRecord[guard](this.tag, this.data))
|
|
226
234
|
throw new ForbiddenException(`Guard exception--${guard}`);
|
|
227
235
|
}
|
|
228
236
|
}
|
|
@@ -236,12 +244,12 @@ var _Context = class {
|
|
|
236
244
|
const ret = [];
|
|
237
245
|
for (const interceptor of interceptors) {
|
|
238
246
|
if (this.history.record(interceptor, "interceptor")) {
|
|
239
|
-
if (!(interceptor in _Context.
|
|
240
|
-
if (
|
|
247
|
+
if (!(interceptor in _Context.interceptorRecord)) {
|
|
248
|
+
if (IS_STRICT)
|
|
241
249
|
throw new FrameworkException(`can't find interceptor named '${interceptor}'`);
|
|
242
250
|
continue;
|
|
243
251
|
}
|
|
244
|
-
const postInterceptor = await _Context.
|
|
252
|
+
const postInterceptor = await _Context.interceptorRecord[interceptor](this.tag, this.data);
|
|
245
253
|
if (postInterceptor !== void 0) {
|
|
246
254
|
if (typeof postInterceptor === "function")
|
|
247
255
|
ret.push(postInterceptor);
|
|
@@ -256,7 +264,7 @@ var _Context = class {
|
|
|
256
264
|
const ret = [];
|
|
257
265
|
for (const m of plugins) {
|
|
258
266
|
if (!(m in _Context.pluginRecord)) {
|
|
259
|
-
if (
|
|
267
|
+
if (IS_STRICT)
|
|
260
268
|
throw new FrameworkException(`can't find middleware named '${m}'`);
|
|
261
269
|
continue;
|
|
262
270
|
}
|
|
@@ -271,8 +279,8 @@ __publicField(Context, "filter", defaultFilter);
|
|
|
271
279
|
__publicField(Context, "pipeRecord", {
|
|
272
280
|
default: defaultPipe
|
|
273
281
|
});
|
|
274
|
-
__publicField(Context, "
|
|
275
|
-
__publicField(Context, "
|
|
282
|
+
__publicField(Context, "guardRecord", {});
|
|
283
|
+
__publicField(Context, "interceptorRecord", {});
|
|
276
284
|
__publicField(Context, "pluginRecord", {});
|
|
277
285
|
function addPlugin(key, handler) {
|
|
278
286
|
Context.pluginRecord[key] = handler;
|
|
@@ -287,13 +295,53 @@ function setFilter(filter) {
|
|
|
287
295
|
}
|
|
288
296
|
__name(setFilter, "setFilter");
|
|
289
297
|
function addGuard(key, handler) {
|
|
290
|
-
Context.
|
|
298
|
+
Context.guardRecord[key] = handler;
|
|
291
299
|
}
|
|
292
300
|
__name(addGuard, "addGuard");
|
|
293
301
|
function addInterceptor(key, handler) {
|
|
294
|
-
Context.
|
|
302
|
+
Context.interceptorRecord[key] = handler;
|
|
295
303
|
}
|
|
296
304
|
__name(addInterceptor, "addInterceptor");
|
|
305
|
+
function isAopDepInject(meta, { guards, interceptors, plugins } = {}) {
|
|
306
|
+
const pluginSet = new Set(plugins);
|
|
307
|
+
const guardSet = new Set(guards);
|
|
308
|
+
const interceptorSet = new Set(interceptors);
|
|
309
|
+
const pipeSet = /* @__PURE__ */ new Set();
|
|
310
|
+
meta.forEach(({ data }) => {
|
|
311
|
+
data.interceptors.forEach((i) => interceptorSet.add(i));
|
|
312
|
+
data.guards.forEach((i) => guardSet.add(i));
|
|
313
|
+
data.plugins.forEach((i) => pluginSet.add(i));
|
|
314
|
+
data.params.forEach((i) => {
|
|
315
|
+
if (i.pipe)
|
|
316
|
+
pipeSet.add(i.pipe);
|
|
317
|
+
});
|
|
318
|
+
});
|
|
319
|
+
[
|
|
320
|
+
...pluginSet
|
|
321
|
+
].forEach((i) => {
|
|
322
|
+
if (!Context.pluginRecord[i])
|
|
323
|
+
log(`${pc.white(`Plugin [${i}]`)} doesn't exist`, "warn");
|
|
324
|
+
});
|
|
325
|
+
[
|
|
326
|
+
...guardSet
|
|
327
|
+
].forEach((i) => {
|
|
328
|
+
if (!Context.guardRecord[i])
|
|
329
|
+
log(`${pc.red(`Guard [${i}]`)} doesn't exist`, "warn");
|
|
330
|
+
});
|
|
331
|
+
[
|
|
332
|
+
...interceptorSet
|
|
333
|
+
].forEach((i) => {
|
|
334
|
+
if (!Context.interceptorRecord[i])
|
|
335
|
+
log(`${pc.cyan(`Interceptor [${i}]`)} doesn't exist`, "warn");
|
|
336
|
+
});
|
|
337
|
+
[
|
|
338
|
+
...pipeSet
|
|
339
|
+
].forEach((i) => {
|
|
340
|
+
if (!Context.pipeRecord[i])
|
|
341
|
+
log(`${pc.blue(`Pipe [${i}]`)} doesn't exist`, "warn");
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
__name(isAopDepInject, "isAopDepInject");
|
|
297
345
|
|
|
298
346
|
export {
|
|
299
347
|
Exception,
|
|
@@ -313,12 +361,13 @@ export {
|
|
|
313
361
|
ServiceUnavailableException,
|
|
314
362
|
FrameworkException,
|
|
315
363
|
defaultFilter,
|
|
316
|
-
|
|
364
|
+
guardRecord,
|
|
317
365
|
Context,
|
|
318
366
|
addPlugin,
|
|
319
367
|
addPipe,
|
|
320
368
|
setFilter,
|
|
321
369
|
addGuard,
|
|
322
|
-
addInterceptor
|
|
370
|
+
addInterceptor,
|
|
371
|
+
isAopDepInject
|
|
323
372
|
};
|
|
324
|
-
//# sourceMappingURL=chunk-
|
|
373
|
+
//# sourceMappingURL=chunk-Q6T7HNEO.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/exception/base.ts","../src/exception/validate.ts","../src/pipe.ts","../src/exception/undefine.ts","../src/exception/forbidden.ts","../src/exception/bad-request.ts","../src/exception/not-found.ts","../src/exception/conflict.ts","../src/exception/bad-gateway.ts","../src/exception/invalid-input.ts","../src/exception/media-type.ts","../src/exception/payload-large.ts","../src/exception/timeout.ts","../src/exception/unauthorized.ts","../src/exception/unavailable-service.ts","../src/exception/framework.ts","../src/context.ts","../src/filter.ts","../src/history.ts"],"sourcesContent":["export class Exception extends Error {\n constructor(public message: string, public status: number, public description = 'Http exception') {\n super(message)\n }\n\n get data() {\n return { message: this.message, description: this.description, status: this.status, error: true }\n }\n}\n","import { Exception } from './base'\n\nexport class ValidateException extends Exception {\n constructor(message: string) {\n super(message, 400, 'Validate exception')\n }\n}\n","import { isPhecda, plainToClass, transformClass } from 'phecda-core'\nimport { ValidateException } from './exception/validate'\n\nimport type { P } from './types'\n\nexport const defaultPipe: P.Pipe = async ({ arg, reflect, index }: any) => {\n if (isPhecda(reflect)) {\n const instance = plainToClass(reflect, arg)\n const err = await transformClass(instance)\n if (err.length > 0)\n throw new ValidateException(err[0])\n\n arg = instance\n }\n else {\n if ([Number, Boolean].includes(reflect)) {\n arg = reflect(arg)\n\n if (reflect === Number && Object.is(arg, NaN))\n throw new ValidateException(`parameter ${Number(index) + 1} should be a number`)\n }\n }\n return arg\n}\n","import { Exception } from './base'\n\nexport class UndefinedException extends Exception {\n constructor(message: string) {\n super(message, 500, 'Undefined error')\n }\n}\n","import { Exception } from './base'\n\nexport class ForbiddenException extends Exception {\n constructor(message: string) {\n super(message, 403, 'Forbidden resource')\n }\n}\n","import { Exception } from './base'\n\nexport class BadRequestException extends Exception {\n constructor(message: string) {\n super(message, 400, 'Bad Request')\n }\n}\n","import { Exception } from './base'\n\nexport class NotFoundException extends Exception {\n constructor(message: string) {\n super(message, 404, 'Not Found')\n }\n}\n","import { Exception } from './base'\n\nexport class ConflictException extends Exception {\n constructor(message: string) {\n super(message, 409, 'Conflict')\n }\n}\n","import { Exception } from './base'\n\nexport class BadGatewayException extends Exception {\n constructor(message: string) {\n super(message, 502, 'Bad Gatrway')\n }\n}\n","import { Exception } from './base'\n\nexport class InvalidInputException extends Exception {\n constructor(message: string) {\n super(message, 502, 'Invalid Input')\n }\n}\n","import { Exception } from './base'\n\nexport class UnsupportedMediaTypeException extends Exception {\n constructor(message: string) {\n super(message, 415, 'Unsupported Media Type')\n }\n}\n","import { Exception } from './base'\n\nexport class PayloadLargeException extends Exception {\n constructor(message: string) {\n super(message, 413, 'Payload Too Large')\n }\n}\n","import { Exception } from './base'\n\nexport class TimeoutException extends Exception {\n constructor(message: string) {\n super(message, 408, 'Request Timeout',\n )\n }\n}\n","import { Exception } from './base'\n\nexport class UnauthorizedException extends Exception {\n constructor(message: string) {\n super(message, 401, 'Unauthorized')\n }\n}\n","import { Exception } from './base'\n\nexport class ServiceUnavailableException extends Exception {\n constructor(message: string) {\n super(message, 503, 'Service Unavailable')\n }\n}\n","import { Exception } from './base'\n\nexport class FrameworkException extends Exception {\n constructor(message: string) {\n super(`[phecda-server] ${message}`, 500, 'Framework Error')\n }\n}\n","import pc from 'picocolors'\nimport { defaultPipe } from './pipe'\nimport { ForbiddenException, FrameworkException } from './exception'\nimport { defaultFilter } from './filter'\nimport { Histroy } from './history'\nimport type { P } from './types'\nimport { IS_DEV, IS_STRICT } from './common'\nimport type { Meta } from './meta'\nimport { log } from './utils'\nexport const guardRecord = {} as Record<string, P.Guard>\n\nexport class Context<Data = any> {\n method: string\n params: string[]\n history = new Histroy()\n\n static filter: P.Filter = defaultFilter\n static pipeRecord: Record<string, P.Pipe> = {\n default: defaultPipe,\n }\n\n static guardRecord: Record<string, P.Guard> = {}\n static interceptorRecord: Record<string, P.Interceptor> = {}\n\n static pluginRecord: Record<string, any> = {}\n postInterceptors: Function[]\n\n constructor(public tag: string, public data: Data) {\n if (IS_DEV)\n // @ts-expect-error work for debug\n data._context = this\n }\n\n usePipe(args: { arg: any; pipe?: string; pipeOpts?: any; type: string; key: string; index: number; reflect: any }[]) {\n return Promise.all(args.map((item) => {\n if (item.pipe && !Context.pipeRecord[item.pipe]) {\n if (IS_STRICT)\n throw new FrameworkException(`can't find pipe named '${item.pipe}'`)\n\n else\n return Context.pipeRecord.default(item, this.tag, this.data)\n }\n\n return Context.pipeRecord[item.pipe || 'default'](item, this.tag, this.data)\n }))\n }\n\n useFilter(arg: any) {\n return Context.filter(arg, this.tag, this.data)\n }\n\n async useGuard(guards: string[]) {\n for (const guard of guards) {\n if (this.history.record(guard, 'guard')) {\n if (!(guard in Context.guardRecord)) {\n if (IS_STRICT)\n throw new FrameworkException(`can't find guard named '${guard}'`)\n continue\n }\n if (!await Context.guardRecord[guard](this.tag, this.data))\n throw new ForbiddenException(`Guard exception--${guard}`)\n }\n }\n }\n\n async usePostInterceptor(ret: any) {\n for (const cb of this.postInterceptors)\n ret = await cb(ret) || ret\n\n return ret\n }\n\n async useInterceptor(interceptors: string[]) {\n const ret = []\n for (const interceptor of interceptors) {\n if (this.history.record(interceptor, 'interceptor')) {\n if (!(interceptor in Context.interceptorRecord)) {\n if (IS_STRICT)\n throw new FrameworkException(`can't find interceptor named '${interceptor}'`)\n\n continue\n }\n const postInterceptor = await Context.interceptorRecord[interceptor](this.tag, this.data)\n if (postInterceptor !== undefined) {\n if (typeof postInterceptor === 'function')\n ret.push(postInterceptor)\n\n else\n return postInterceptor\n }\n }\n }\n this.postInterceptors = ret\n }\n\n static usePlugin(plugins: string[]) {\n const ret = []\n for (const m of plugins) {\n if (!(m in Context.pluginRecord)) {\n if (IS_STRICT)\n throw new FrameworkException(`can't find middleware named '${m}'`)\n\n continue\n }\n ret.push(Context.pluginRecord[m])\n }\n return ret as any[]\n }\n}\nexport function addPlugin<C>(key: string, handler: C) {\n Context.pluginRecord[key] = handler\n}\n\nexport function addPipe(key: string, pipe: P.Pipe) {\n Context.pipeRecord[key] = pipe\n}\n\nexport function setFilter(filter: P.Filter) {\n Context.filter = filter\n}\n\nexport function addGuard(key: string, handler: P.Guard) {\n Context.guardRecord[key] = handler\n}\n\nexport function addInterceptor(key: string, handler: P.Interceptor) {\n Context.interceptorRecord[key] = handler\n}\n\nexport function isAopDepInject(meta: Meta[], { guards, interceptors, plugins }: {\n guards?: string[]\n interceptors?: string[]\n plugins?: string[]\n} = {}) {\n const pluginSet = new Set<string>(plugins)\n\n const guardSet = new Set<string>(guards)\n const interceptorSet = new Set<string>(interceptors)\n const pipeSet = new Set<string>()\n meta.forEach(({ data }) => {\n data.interceptors.forEach(i => interceptorSet.add(i))\n data.guards.forEach(i => guardSet.add(i))\n data.plugins.forEach(i => pluginSet.add(i))\n data.params.forEach((i) => {\n if (i.pipe)\n pipeSet.add(i.pipe)\n })\n });\n\n [...pluginSet].forEach((i) => {\n if (!Context.pluginRecord[i])\n log(`${pc.white(`Plugin [${i}]`)} doesn't exist`, 'warn')\n });\n [...guardSet].forEach((i) => {\n if (!Context.guardRecord[i])\n log(`${pc.red(`Guard [${i}]`)} doesn't exist`, 'warn')\n });\n [...interceptorSet].forEach((i) => {\n if (!Context.interceptorRecord[i])\n log(`${pc.cyan(`Interceptor [${i}]`)} doesn't exist`, 'warn')\n });\n [...pipeSet].forEach((i) => {\n if (!Context.pipeRecord[i])\n log(`${pc.blue(`Pipe [${i}]`)} doesn't exist`, 'warn')\n })\n}\n","import { Exception, UndefinedException } from './exception'\nimport type { P } from './types'\nimport { log } from './utils'\n\nexport const defaultFilter: P.Filter = (e: any) => {\n if (!(e instanceof Exception)) {\n log(e.message, 'error')\n console.error(e.stack)\n e = new UndefinedException(e.message || e)\n }\n else {\n log(`[${e.constructor.name}] ${e.message}`, 'error')\n console.error(e.stack)\n }\n\n return e.data\n}\n","export class Histroy {\n guard: string[] = []\n interceptor: string[] = []\n record(name: string, type: 'guard' | 'interceptor') {\n if (!this[type].includes(name)) {\n this[type].push(name)\n return true\n }\n return false\n }\n}\n"],"mappings":"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","names":["Exception","Error","message","status","description","constructor","data","error","ValidateException","Exception","constructor","message","isPhecda","plainToClass","transformClass","defaultPipe","arg","reflect","index","isPhecda","instance","plainToClass","err","transformClass","length","ValidateException","Number","Boolean","includes","Object","is","NaN","UndefinedException","Exception","constructor","message","ForbiddenException","Exception","constructor","message","BadRequestException","Exception","constructor","message","NotFoundException","Exception","constructor","message","ConflictException","Exception","constructor","message","BadGatewayException","Exception","constructor","message","InvalidInputException","Exception","constructor","message","UnsupportedMediaTypeException","Exception","constructor","message","PayloadLargeException","Exception","constructor","message","TimeoutException","Exception","constructor","message","UnauthorizedException","Exception","constructor","message","ServiceUnavailableException","Exception","constructor","message","FrameworkException","Exception","constructor","message","pc","defaultFilter","e","Exception","log","message","console","error","stack","UndefinedException","constructor","name","data","Histroy","guard","interceptor","record","name","type","includes","push","guardRecord","Context","tag","data","method","params","history","postInterceptors","constructor","Histroy","IS_DEV","_context","usePipe","args","Promise","all","map","item","pipe","pipeRecord","IS_STRICT","FrameworkException","default","useFilter","arg","filter","useGuard","guards","guard","record","ForbiddenException","usePostInterceptor","ret","cb","useInterceptor","interceptors","interceptor","interceptorRecord","postInterceptor","undefined","push","usePlugin","plugins","m","pluginRecord","defaultFilter","defaultPipe","addPlugin","key","handler","addPipe","setFilter","addGuard","addInterceptor","isAopDepInject","meta","pluginSet","Set","guardSet","interceptorSet","pipeSet","forEach","i","add","log","pc","white","red","cyan","blue"]}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
IS_DEV,
|
|
3
3
|
UNMOUNT_SYMBOL,
|
|
4
|
+
__name,
|
|
4
5
|
log
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import {
|
|
7
|
-
__name
|
|
8
|
-
} from "./chunk-Q4FA4TAV.mjs";
|
|
6
|
+
} from "./chunk-AJ2HYENF.mjs";
|
|
9
7
|
|
|
10
8
|
// src/meta.ts
|
|
11
9
|
var Meta = class {
|
|
@@ -123,6 +121,11 @@ async function Factory(Modules, opts = {}) {
|
|
|
123
121
|
const { http, rpc } = opts;
|
|
124
122
|
injectProperty("watcher", ({ eventName, instance, key, options }) => {
|
|
125
123
|
const fn = typeof instance[key] === "function" ? instance[key].bind(instance) : (v) => instance[key] = v;
|
|
124
|
+
if (!instance[UNMOUNT_SYMBOL])
|
|
125
|
+
instance[UNMOUNT_SYMBOL] = [];
|
|
126
|
+
instance[UNMOUNT_SYMBOL].push(() => {
|
|
127
|
+
emitter.off(eventName, fn);
|
|
128
|
+
});
|
|
126
129
|
if (options?.once)
|
|
127
130
|
emitter.once(eventName, fn);
|
|
128
131
|
else
|
|
@@ -318,4 +321,4 @@ export {
|
|
|
318
321
|
emitter,
|
|
319
322
|
Factory
|
|
320
323
|
};
|
|
321
|
-
//# sourceMappingURL=chunk-
|
|
324
|
+
//# sourceMappingURL=chunk-WRMLZ7NU.mjs.map
|