phecda-server 5.1.0 → 5.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -10
- package/bin/cli.mjs +189 -189
- package/bin/schema.json +55 -55
- package/dist/{chunk-OTHER3YM.mjs → chunk-2HKQPZDT.mjs} +1 -2
- package/dist/{chunk-GHOKWS5V.js → chunk-3BV2GRS7.js} +38 -39
- package/dist/{chunk-BZP6GKM6.mjs → chunk-665MB62T.mjs} +1 -2
- package/dist/{chunk-QG4X6H5Y.js → chunk-FSBD5R22.js} +65 -66
- package/dist/{chunk-423JPSEB.js → chunk-HMPTPTFL.js} +17 -18
- package/dist/{chunk-6MQP6OHU.mjs → chunk-UU6RHGRF.mjs} +2 -3
- package/dist/{chunk-4YVAW3L4.mjs → chunk-VLV3AO3H.mjs} +0 -1
- package/dist/{chunk-Z4YJHEXT.js → chunk-ZP7HNASU.js} +0 -1
- package/dist/index.js +39 -40
- package/dist/index.mjs +4 -5
- package/dist/rpc/bullmq/index.js +12 -13
- package/dist/rpc/bullmq/index.mjs +2 -3
- package/dist/rpc/kafka/index.js +10 -11
- package/dist/rpc/kafka/index.mjs +2 -3
- package/dist/rpc/nats/index.js +11 -12
- package/dist/rpc/nats/index.mjs +2 -3
- package/dist/rpc/rabbitmq/index.js +13 -14
- package/dist/rpc/rabbitmq/index.mjs +2 -3
- package/dist/rpc/redis/index.js +11 -12
- package/dist/rpc/redis/index.mjs +2 -3
- package/dist/server/elysia/index.js +20 -21
- package/dist/server/elysia/index.mjs +3 -4
- package/dist/server/express/index.js +18 -19
- package/dist/server/express/index.mjs +2 -3
- package/dist/server/fastify/index.js +19 -20
- package/dist/server/fastify/index.mjs +3 -4
- package/dist/server/h3/index.js +16 -17
- package/dist/server/h3/index.mjs +2 -3
- package/dist/server/hono/index.js +17 -18
- package/dist/server/hono/index.mjs +2 -3
- package/dist/server/hyper-express/index.js +17 -18
- package/dist/server/hyper-express/index.mjs +2 -3
- package/dist/server/koa/index.js +18 -19
- package/dist/server/koa/index.mjs +2 -3
- package/dist/test.js +6 -7
- package/dist/test.mjs +2 -3
- package/package.json +2 -2
- package/register/index.mjs +40 -40
- package/register/loader.mjs +354 -341
- package/register/utils.mjs +81 -81
- package/dist/chunk-423JPSEB.js.map +0 -1
- package/dist/chunk-4R55T3HG.js +0 -253
- package/dist/chunk-4R55T3HG.js.map +0 -1
- package/dist/chunk-4YVAW3L4.mjs.map +0 -1
- package/dist/chunk-5DOVDDO7.mjs +0 -295
- package/dist/chunk-5DOVDDO7.mjs.map +0 -1
- package/dist/chunk-5WQ2SMIK.js +0 -295
- package/dist/chunk-5WQ2SMIK.js.map +0 -1
- package/dist/chunk-6MQP6OHU.mjs.map +0 -1
- package/dist/chunk-6Q2PCC3A.mjs +0 -295
- package/dist/chunk-6Q2PCC3A.mjs.map +0 -1
- package/dist/chunk-6UQYEBAN.js +0 -253
- package/dist/chunk-6UQYEBAN.js.map +0 -1
- package/dist/chunk-6W7CGOZC.mjs +0 -565
- package/dist/chunk-6W7CGOZC.mjs.map +0 -1
- package/dist/chunk-7Y37NSBM.js +0 -88
- package/dist/chunk-7Y37NSBM.js.map +0 -1
- package/dist/chunk-BQBSVGMG.mjs +0 -253
- package/dist/chunk-BQBSVGMG.mjs.map +0 -1
- package/dist/chunk-BZP6GKM6.mjs.map +0 -1
- package/dist/chunk-C5JAHCS2.mjs +0 -88
- package/dist/chunk-C5JAHCS2.mjs.map +0 -1
- package/dist/chunk-DTBKDALR.mjs +0 -295
- package/dist/chunk-DTBKDALR.mjs.map +0 -1
- package/dist/chunk-GHOKWS5V.js.map +0 -1
- package/dist/chunk-H4N6SHNG.mjs +0 -76
- package/dist/chunk-H4N6SHNG.mjs.map +0 -1
- package/dist/chunk-ICYHM4UM.js +0 -565
- package/dist/chunk-ICYHM4UM.js.map +0 -1
- package/dist/chunk-LOLXPM4J.mjs +0 -529
- package/dist/chunk-LOLXPM4J.mjs.map +0 -1
- package/dist/chunk-MSS6A2TU.js +0 -585
- package/dist/chunk-MSS6A2TU.js.map +0 -1
- package/dist/chunk-NEM3FY7C.mjs +0 -537
- package/dist/chunk-NEM3FY7C.mjs.map +0 -1
- package/dist/chunk-OTHER3YM.mjs.map +0 -1
- package/dist/chunk-Q2FYFIEY.js +0 -295
- package/dist/chunk-Q2FYFIEY.js.map +0 -1
- package/dist/chunk-QG4X6H5Y.js.map +0 -1
- package/dist/chunk-QIEZ6YTG.mjs +0 -295
- package/dist/chunk-QIEZ6YTG.mjs.map +0 -1
- package/dist/chunk-QOAKHCM7.js +0 -295
- package/dist/chunk-QOAKHCM7.js.map +0 -1
- package/dist/chunk-QVUD6L5X.js +0 -565
- package/dist/chunk-QVUD6L5X.js.map +0 -1
- package/dist/chunk-RGLTGKAU.js +0 -537
- package/dist/chunk-RGLTGKAU.js.map +0 -1
- package/dist/chunk-SHRK3TVB.js +0 -295
- package/dist/chunk-SHRK3TVB.js.map +0 -1
- package/dist/chunk-TCH6S42Z.js +0 -529
- package/dist/chunk-TCH6S42Z.js.map +0 -1
- package/dist/chunk-UCGRFVHC.mjs +0 -253
- package/dist/chunk-UCGRFVHC.mjs.map +0 -1
- package/dist/chunk-VOISXWVF.mjs +0 -295
- package/dist/chunk-VOISXWVF.mjs.map +0 -1
- package/dist/chunk-W6BC5INO.mjs +0 -295
- package/dist/chunk-W6BC5INO.mjs.map +0 -1
- package/dist/chunk-X5WQRO4R.js +0 -295
- package/dist/chunk-X5WQRO4R.js.map +0 -1
- package/dist/chunk-XDMCVVD3.mjs +0 -585
- package/dist/chunk-XDMCVVD3.mjs.map +0 -1
- package/dist/chunk-XNTMYLK6.js +0 -76
- package/dist/chunk-XNTMYLK6.js.map +0 -1
- package/dist/chunk-Y6LI4FDO.js +0 -537
- package/dist/chunk-Y6LI4FDO.js.map +0 -1
- package/dist/chunk-YZ2AQ6IL.mjs +0 -537
- package/dist/chunk-YZ2AQ6IL.mjs.map +0 -1
- package/dist/chunk-Z4YJHEXT.js.map +0 -1
- package/dist/chunk-ZE336SKZ.js +0 -295
- package/dist/chunk-ZE336SKZ.js.map +0 -1
- package/dist/chunk-ZJD235TO.mjs +0 -565
- package/dist/chunk-ZJD235TO.mjs.map +0 -1
- package/dist/core-930ea883.d.ts +0 -131
- package/dist/core-eb646fe5.d.ts +0 -139
- package/dist/core-fd134ffa.d.ts +0 -130
- package/dist/helper-06d25b37.d.ts +0 -19
- package/dist/helper-48454c0b.d.ts +0 -20
- package/dist/helper-73e8d2f0.d.ts +0 -18
- package/dist/helper-867a598d.d.ts +0 -18
- package/dist/helper-88b19c66.d.ts +0 -12
- package/dist/helper-9e206c66.d.ts +0 -12
- package/dist/helper-f29f082f.d.ts +0 -19
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/rpc/bullmq/index.js.map +0 -1
- package/dist/rpc/bullmq/index.mjs.map +0 -1
- package/dist/rpc/kafka/index.js.map +0 -1
- package/dist/rpc/kafka/index.mjs.map +0 -1
- package/dist/rpc/nats/index.js.map +0 -1
- package/dist/rpc/nats/index.mjs.map +0 -1
- package/dist/rpc/rabbitmq/index.js.map +0 -1
- package/dist/rpc/rabbitmq/index.mjs.map +0 -1
- package/dist/rpc/redis/index.js.map +0 -1
- package/dist/rpc/redis/index.mjs.map +0 -1
- package/dist/server/elysia/index.js.map +0 -1
- package/dist/server/elysia/index.mjs.map +0 -1
- package/dist/server/express/index.js.map +0 -1
- package/dist/server/express/index.mjs.map +0 -1
- package/dist/server/fastify/index.js.map +0 -1
- package/dist/server/fastify/index.mjs.map +0 -1
- package/dist/server/h3/index.js.map +0 -1
- package/dist/server/h3/index.mjs.map +0 -1
- package/dist/server/hono/index.js.map +0 -1
- package/dist/server/hono/index.mjs.map +0 -1
- package/dist/server/hyper-express/index.js.map +0 -1
- package/dist/server/hyper-express/index.mjs.map +0 -1
- package/dist/server/koa/index.js.map +0 -1
- package/dist/server/koa/index.mjs.map +0 -1
- package/dist/test.js.map +0 -1
- package/dist/test.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/decorators/param.ts","../src/decorators/aop.ts","../src/decorators/http.ts","../src/decorators/rpc.ts","../src/decorators/index.ts"],"sourcesContent":["import { getState, setPropertyState } from 'phecda-core'\r\nimport { shallowClone } from './helper'\r\n\r\nexport function BaseParam(data: Record<string, any>): ParameterDecorator {\r\n return (target: any, k: PropertyKey | undefined, index: number) => {\r\n if (!k)\r\n return\r\n setPropertyState(target, k, (state) => {\r\n if (!state.params)\r\n state.params = [...(getState(target, k)?.params || [])].map(shallowClone)\r\n\r\n const existItem = state.params.find((item: any) => item.index === index)\r\n\r\n if (existItem)\r\n Object.assign(existItem, data)\r\n\r\n else\r\n state.params.push({ ...data, index })\r\n })\r\n }\r\n}\r\n\r\nexport function Body(key = '') {\r\n return BaseParam({\r\n type: 'body',\r\n key,\r\n })\r\n}\r\n// req.headers\r\nexport function Head(key: string) {\r\n return BaseParam({\r\n type: 'headers', key: key.toLowerCase(),\r\n })\r\n}\r\n\r\nexport function Query(key = '') {\r\n return BaseParam({ type: 'query', key })\r\n}\r\nexport function Param(key: string) {\r\n return BaseParam({\r\n type: 'params', key,\r\n })\r\n}\r\n\r\n// work for micro service\r\nexport function Arg(target: any, k: string, index: number) {\r\n BaseParam({\r\n type: 'args', key: `${index}`,\r\n })(target, k, index)\r\n}\r\n","import { getState, setPropertyState } from 'phecda-core'\r\nimport { BaseParam } from './param'\r\nexport function Guard(...guards: string[]) {\r\n return (target: any, k?: PropertyKey) => {\r\n setPropertyState(target, k, (state) => {\r\n if (!state.guards)\r\n state.guards = new Set([...(getState(target, k)?.guards || [])])\r\n\r\n guards.forEach((guard) => {\r\n if (state.guards.has(guard))\r\n state.guards.delete(guard)\r\n\r\n state.guards.add(guard)\r\n })\r\n })\r\n }\r\n}\r\n\r\nexport function Plugin(...plugins: string[]) {\r\n return (target: any, k?: PropertyKey) => {\r\n setPropertyState(target, k, (state) => {\r\n if (!state.plugins)\r\n state.plugins = new Set([...(getState(target, k)?.plugins || [])])\r\n\r\n plugins.forEach((plugin) => {\r\n if (state.plugins.has(plugin))\r\n state.plugins.delete(plugin)\r\n\r\n state.plugins.add(plugin)\r\n })\r\n })\r\n }\r\n}\r\n\r\nexport function Interceptor(...interceptors: string[]) {\r\n return (target: any, k?: PropertyKey) => {\r\n setPropertyState(target, k, (state) => {\r\n if (!state.interceptors)\r\n state.interceptors = new Set([...(getState(target, k)?.interceptors || [])])\r\n\r\n interceptors.forEach((interceptor) => {\r\n if (state.interceptors.has(interceptor))\r\n state.interceptors.delete(interceptor)\r\n\r\n state.interceptors.add(interceptor)\r\n })\r\n })\r\n }\r\n}\r\nexport function Filter(filter: string) {\r\n return (target: any, k?: PropertyKey) => {\r\n setPropertyState(target, k, state => state.filter = filter)\r\n }\r\n}\r\nexport function Pipe(pipe?: string) {\r\n return (target: any, k?: any, index?: any) => {\r\n if (typeof index === 'number') {\r\n BaseParam({ pipe })(target, k, index)\r\n\r\n return\r\n }\r\n setPropertyState(target, k, state => state.pipe = pipe)\r\n }\r\n}\r\n","import { getState, setPropertyState } from 'phecda-core'\r\nimport { mergeObject } from './helper'\r\n\r\nexport function Route(route: string, type: string): MethodDecorator {\r\n return (target: any, k: PropertyKey) => {\r\n setPropertyState(target, k, (state) => {\r\n state.http = mergeObject((state.http || getState(target, k)?.http),\r\n {\r\n route,\r\n type,\r\n })\r\n })\r\n }\r\n}\r\nexport function Header(headers: Record<string, string>): MethodDecorator {\r\n return (target: any, k: PropertyKey) => {\r\n setPropertyState(target, k, (state) => {\r\n if (!state.http)\r\n state.http = mergeObject(getState(target, k)?.http)\r\n\r\n state.http = mergeObject(state.http, {\r\n headers: mergeObject(state.http?.headers, headers),\r\n\r\n })\r\n })\r\n }\r\n}\r\n\r\nexport function Get(route = '') {\r\n return Route(route, 'get')\r\n}\r\n\r\nexport function Post(route = '') {\r\n return Route(route, 'post')\r\n}\r\nexport function Put(route = '') {\r\n return Route(route, 'put')\r\n}\r\n\r\nexport function Patch(route = '') {\r\n return Route(route, 'patch')\r\n}\r\nexport function Delete(route = '') {\r\n return Route(route, 'delete')\r\n}\r\n\r\nexport function Controller(prefix = '') {\r\n return (target: any) => {\r\n setPropertyState(target, undefined, (state) => {\r\n state.controller = 'http'\r\n state.http = mergeObject(state.http || getState(target)?.http, { prefix })\r\n })\r\n }\r\n}\r\n","import { getState, setPropertyState } from 'phecda-core'\r\nimport { mergeObject } from './helper'\r\n\r\nexport function Event(isEvent = true) {\r\n return (target: any, k?: PropertyKey) => {\r\n setPropertyState(target, k, (state) => {\r\n state.rpc = mergeObject(state.rpc || getState(target, k)?.rpc, { isEvent })\r\n })\r\n }\r\n}\r\nexport function Queue(queue = '') {\r\n return (target: any, k?: PropertyKey) => {\r\n setPropertyState(target, k, (state) => {\r\n state.rpc = mergeObject(state.rpc || getState(target, k)?.rpc, { queue })\r\n })\r\n }\r\n}\r\n\r\nexport function Rpc(): ClassDecorator {\r\n return (target: any) => {\r\n setPropertyState(target, undefined, (state) => {\r\n state.controller = 'rpc'\r\n })\r\n }\r\n}\r\n","import { Empty, getState, set, setPropertyState } from 'phecda-core'\r\nimport { mergeObject, shallowClone } from './helper'\r\n\r\nexport function Injectable() {\r\n return (target: any) => Empty(target)\r\n}\r\n\r\nexport const Ctx: PropertyDecorator = (target: any, key: PropertyKey) => {\r\n set(target, 'context', key)\r\n}\r\n\r\nexport function Define(key: string, value: any): any {\r\n return (target: any, k?: any, index?: number) => {\r\n if (typeof index === 'number') {\r\n setPropertyState(target, k, (state) => {\r\n const parentState = getState(target, k)?.params || []\r\n\r\n if (!state.params)\r\n state.params = [...parentState].map(shallowClone)\r\n const existItem = state.params.find((item: any) => item.index === index)\r\n if (existItem)\r\n existItem.define = mergeObject(existItem.define, { [key]: value })\r\n\r\n else\r\n state.params.push({ define: { [key]: value }, index })\r\n })\r\n return\r\n }\r\n setPropertyState(target, k, (state) => {\r\n const parentState = getState(target, k)?.define\r\n if (!state.define)\r\n state.define = mergeObject(parentState)\r\n\r\n state.define[key] = value\r\n })\r\n }\r\n}\r\n\r\nexport * from './param'\r\nexport * from './aop'\r\nexport * from './http'\r\nexport * from './rpc'\r\n"],"mappings":"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","names":["getState","setPropertyState","BaseParam","data","target","k","index","setPropertyState","state","params","getState","map","shallowClone","existItem","find","item","Object","assign","push","Body","key","type","Head","toLowerCase","Query","Param","Arg","getState","setPropertyState","Guard","guards","target","k","setPropertyState","state","Set","getState","forEach","guard","has","delete","add","Plugin","plugins","plugin","Interceptor","interceptors","interceptor","Filter","filter","Pipe","pipe","index","BaseParam","getState","setPropertyState","Route","route","type","target","k","setPropertyState","state","http","mergeObject","getState","Header","headers","Get","Post","Put","Patch","Delete","Controller","prefix","undefined","controller","getState","setPropertyState","Event","isEvent","target","k","setPropertyState","state","rpc","mergeObject","getState","Queue","queue","Rpc","undefined","controller","Empty","getState","set","setPropertyState","Injectable","target","Empty","Ctx","key","set","Define","value","k","index","setPropertyState","state","parentState","getState","params","map","shallowClone","existItem","find","item","define","mergeObject","push"]}
|
package/dist/chunk-6Q2PCC3A.mjs
DELETED
|
@@ -1,295 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
mergeObject,
|
|
3
|
-
shallowClone
|
|
4
|
-
} from "./chunk-BZP6GKM6.mjs";
|
|
5
|
-
import {
|
|
6
|
-
__name
|
|
7
|
-
} from "./chunk-H4N6SHNG.mjs";
|
|
8
|
-
|
|
9
|
-
// src/decorators/param.ts
|
|
10
|
-
import { getState, setPropertyState } from "phecda-core";
|
|
11
|
-
function BaseParam(data) {
|
|
12
|
-
return (target, k, index) => {
|
|
13
|
-
if (!k)
|
|
14
|
-
return;
|
|
15
|
-
setPropertyState(target, k, (state) => {
|
|
16
|
-
if (!state.params)
|
|
17
|
-
state.params = [
|
|
18
|
-
...getState(target, k)?.params || []
|
|
19
|
-
].map(shallowClone);
|
|
20
|
-
const existItem = state.params.find((item) => item.index === index);
|
|
21
|
-
if (existItem)
|
|
22
|
-
Object.assign(existItem, data);
|
|
23
|
-
else
|
|
24
|
-
state.params.push({
|
|
25
|
-
...data,
|
|
26
|
-
index
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
__name(BaseParam, "BaseParam");
|
|
32
|
-
function Body(key = "") {
|
|
33
|
-
return BaseParam({
|
|
34
|
-
type: "body",
|
|
35
|
-
key
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
__name(Body, "Body");
|
|
39
|
-
function Head(key) {
|
|
40
|
-
return BaseParam({
|
|
41
|
-
type: "headers",
|
|
42
|
-
key: key.toLowerCase()
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
__name(Head, "Head");
|
|
46
|
-
function Query(key = "") {
|
|
47
|
-
return BaseParam({
|
|
48
|
-
type: "query",
|
|
49
|
-
key
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
__name(Query, "Query");
|
|
53
|
-
function Param(key) {
|
|
54
|
-
return BaseParam({
|
|
55
|
-
type: "params",
|
|
56
|
-
key
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
__name(Param, "Param");
|
|
60
|
-
function Arg(target, k, index) {
|
|
61
|
-
BaseParam({
|
|
62
|
-
type: "args",
|
|
63
|
-
key: `${index}`
|
|
64
|
-
})(target, k, index);
|
|
65
|
-
}
|
|
66
|
-
__name(Arg, "Arg");
|
|
67
|
-
|
|
68
|
-
// src/decorators/aop.ts
|
|
69
|
-
import { getState as getState2, setPropertyState as setPropertyState2 } from "phecda-core";
|
|
70
|
-
function Guard(...guards) {
|
|
71
|
-
return (target, k) => {
|
|
72
|
-
setPropertyState2(target, k, (state) => {
|
|
73
|
-
if (!state.guards)
|
|
74
|
-
state.guards = /* @__PURE__ */ new Set([
|
|
75
|
-
...getState2(target, k)?.guards || []
|
|
76
|
-
]);
|
|
77
|
-
guards.forEach((guard) => {
|
|
78
|
-
if (state.guards.has(guard))
|
|
79
|
-
state.guards.delete(guard);
|
|
80
|
-
state.guards.add(guard);
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
__name(Guard, "Guard");
|
|
86
|
-
function Plugin(...plugins) {
|
|
87
|
-
return (target, k) => {
|
|
88
|
-
setPropertyState2(target, k, (state) => {
|
|
89
|
-
if (!state.plugins)
|
|
90
|
-
state.plugins = /* @__PURE__ */ new Set([
|
|
91
|
-
...getState2(target, k)?.plugins || []
|
|
92
|
-
]);
|
|
93
|
-
plugins.forEach((plugin) => {
|
|
94
|
-
if (state.plugins.has(plugin))
|
|
95
|
-
state.plugins.delete(plugin);
|
|
96
|
-
state.plugins.add(plugin);
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
__name(Plugin, "Plugin");
|
|
102
|
-
function Interceptor(...interceptors) {
|
|
103
|
-
return (target, k) => {
|
|
104
|
-
setPropertyState2(target, k, (state) => {
|
|
105
|
-
if (!state.interceptors)
|
|
106
|
-
state.interceptors = /* @__PURE__ */ new Set([
|
|
107
|
-
...getState2(target, k)?.interceptors || []
|
|
108
|
-
]);
|
|
109
|
-
interceptors.forEach((interceptor) => {
|
|
110
|
-
if (state.interceptors.has(interceptor))
|
|
111
|
-
state.interceptors.delete(interceptor);
|
|
112
|
-
state.interceptors.add(interceptor);
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
__name(Interceptor, "Interceptor");
|
|
118
|
-
function Filter(filter) {
|
|
119
|
-
return (target, k) => {
|
|
120
|
-
setPropertyState2(target, k, (state) => state.filter = filter);
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
__name(Filter, "Filter");
|
|
124
|
-
function Pipe(pipe) {
|
|
125
|
-
return (target, k, index) => {
|
|
126
|
-
if (typeof index === "number") {
|
|
127
|
-
BaseParam({
|
|
128
|
-
pipe
|
|
129
|
-
})(target, k, index);
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
setPropertyState2(target, k, (state) => state.pipe = pipe);
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
__name(Pipe, "Pipe");
|
|
136
|
-
|
|
137
|
-
// src/decorators/http.ts
|
|
138
|
-
import { getState as getState3, setPropertyState as setPropertyState3 } from "phecda-core";
|
|
139
|
-
function Route(route, type) {
|
|
140
|
-
return (target, k) => {
|
|
141
|
-
setPropertyState3(target, k, (state) => {
|
|
142
|
-
state.http = mergeObject(state.http || getState3(target, k)?.http, {
|
|
143
|
-
route,
|
|
144
|
-
type
|
|
145
|
-
});
|
|
146
|
-
});
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
__name(Route, "Route");
|
|
150
|
-
function Header(headers) {
|
|
151
|
-
return (target, k) => {
|
|
152
|
-
setPropertyState3(target, k, (state) => {
|
|
153
|
-
if (!state.http)
|
|
154
|
-
state.http = mergeObject(getState3(target, k)?.http);
|
|
155
|
-
state.http = mergeObject(state.http, {
|
|
156
|
-
headers: mergeObject(state.http?.headers, headers)
|
|
157
|
-
});
|
|
158
|
-
});
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
__name(Header, "Header");
|
|
162
|
-
function Get(route = "") {
|
|
163
|
-
return Route(route, "get");
|
|
164
|
-
}
|
|
165
|
-
__name(Get, "Get");
|
|
166
|
-
function Post(route = "") {
|
|
167
|
-
return Route(route, "post");
|
|
168
|
-
}
|
|
169
|
-
__name(Post, "Post");
|
|
170
|
-
function Put(route = "") {
|
|
171
|
-
return Route(route, "put");
|
|
172
|
-
}
|
|
173
|
-
__name(Put, "Put");
|
|
174
|
-
function Patch(route = "") {
|
|
175
|
-
return Route(route, "patch");
|
|
176
|
-
}
|
|
177
|
-
__name(Patch, "Patch");
|
|
178
|
-
function Delete(route = "") {
|
|
179
|
-
return Route(route, "delete");
|
|
180
|
-
}
|
|
181
|
-
__name(Delete, "Delete");
|
|
182
|
-
function Controller(prefix = "") {
|
|
183
|
-
return (target) => {
|
|
184
|
-
setPropertyState3(target, void 0, (state) => {
|
|
185
|
-
state.controller = "http";
|
|
186
|
-
state.http = mergeObject(state.http || getState3(target)?.http, {
|
|
187
|
-
prefix
|
|
188
|
-
});
|
|
189
|
-
});
|
|
190
|
-
};
|
|
191
|
-
}
|
|
192
|
-
__name(Controller, "Controller");
|
|
193
|
-
|
|
194
|
-
// src/decorators/rpc.ts
|
|
195
|
-
import { getState as getState4, setPropertyState as setPropertyState4 } from "phecda-core";
|
|
196
|
-
function Event(isEvent = true) {
|
|
197
|
-
return (target, k) => {
|
|
198
|
-
setPropertyState4(target, k, (state) => {
|
|
199
|
-
state.rpc = mergeObject(state.rpc || getState4(target, k)?.rpc, {
|
|
200
|
-
isEvent
|
|
201
|
-
});
|
|
202
|
-
});
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
__name(Event, "Event");
|
|
206
|
-
function Queue(queue = "") {
|
|
207
|
-
return (target, k) => {
|
|
208
|
-
setPropertyState4(target, k, (state) => {
|
|
209
|
-
state.rpc = mergeObject(state.rpc || getState4(target, k)?.rpc, {
|
|
210
|
-
queue
|
|
211
|
-
});
|
|
212
|
-
});
|
|
213
|
-
};
|
|
214
|
-
}
|
|
215
|
-
__name(Queue, "Queue");
|
|
216
|
-
function Rpc() {
|
|
217
|
-
return (target) => {
|
|
218
|
-
setPropertyState4(target, void 0, (state) => {
|
|
219
|
-
state.controller = "rpc";
|
|
220
|
-
});
|
|
221
|
-
};
|
|
222
|
-
}
|
|
223
|
-
__name(Rpc, "Rpc");
|
|
224
|
-
|
|
225
|
-
// src/decorators/index.ts
|
|
226
|
-
import { Empty, getState as getState5, set, setPropertyState as setPropertyState5 } from "phecda-core";
|
|
227
|
-
function Injectable() {
|
|
228
|
-
return (target) => Empty(target);
|
|
229
|
-
}
|
|
230
|
-
__name(Injectable, "Injectable");
|
|
231
|
-
var Ctx = /* @__PURE__ */ __name((target, key) => {
|
|
232
|
-
set(target, "context", key);
|
|
233
|
-
}, "Ctx");
|
|
234
|
-
function Define(key, value) {
|
|
235
|
-
return (target, k, index) => {
|
|
236
|
-
if (typeof index === "number") {
|
|
237
|
-
setPropertyState5(target, k, (state) => {
|
|
238
|
-
const parentState = getState5(target, k)?.params || [];
|
|
239
|
-
if (!state.params)
|
|
240
|
-
state.params = [
|
|
241
|
-
...parentState
|
|
242
|
-
].map(shallowClone);
|
|
243
|
-
const existItem = state.params.find((item) => item.index === index);
|
|
244
|
-
if (existItem)
|
|
245
|
-
existItem.define = mergeObject(existItem.define, {
|
|
246
|
-
[key]: value
|
|
247
|
-
});
|
|
248
|
-
else
|
|
249
|
-
state.params.push({
|
|
250
|
-
define: {
|
|
251
|
-
[key]: value
|
|
252
|
-
},
|
|
253
|
-
index
|
|
254
|
-
});
|
|
255
|
-
});
|
|
256
|
-
return;
|
|
257
|
-
}
|
|
258
|
-
setPropertyState5(target, k, (state) => {
|
|
259
|
-
const parentState = getState5(target, k)?.define;
|
|
260
|
-
if (!state.define)
|
|
261
|
-
state.define = mergeObject(parentState);
|
|
262
|
-
state.define[key] = value;
|
|
263
|
-
});
|
|
264
|
-
};
|
|
265
|
-
}
|
|
266
|
-
__name(Define, "Define");
|
|
267
|
-
|
|
268
|
-
export {
|
|
269
|
-
BaseParam,
|
|
270
|
-
Body,
|
|
271
|
-
Head,
|
|
272
|
-
Query,
|
|
273
|
-
Param,
|
|
274
|
-
Arg,
|
|
275
|
-
Guard,
|
|
276
|
-
Plugin,
|
|
277
|
-
Interceptor,
|
|
278
|
-
Filter,
|
|
279
|
-
Pipe,
|
|
280
|
-
Route,
|
|
281
|
-
Header,
|
|
282
|
-
Get,
|
|
283
|
-
Post,
|
|
284
|
-
Put,
|
|
285
|
-
Patch,
|
|
286
|
-
Delete,
|
|
287
|
-
Controller,
|
|
288
|
-
Event,
|
|
289
|
-
Queue,
|
|
290
|
-
Rpc,
|
|
291
|
-
Injectable,
|
|
292
|
-
Ctx,
|
|
293
|
-
Define
|
|
294
|
-
};
|
|
295
|
-
//# sourceMappingURL=chunk-6Q2PCC3A.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/decorators/param.ts","../src/decorators/aop.ts","../src/decorators/http.ts","../src/decorators/rpc.ts","../src/decorators/index.ts"],"sourcesContent":["import { getState, setPropertyState } from 'phecda-core'\r\nimport { shallowClone } from './helper'\r\n\r\nexport function BaseParam(data: Record<string, any>): ParameterDecorator {\r\n return (target: any, k: PropertyKey | undefined, index: number) => {\r\n if (!k)\r\n return\r\n setPropertyState(target, k, (state) => {\r\n if (!state.params)\r\n state.params = [...(getState(target, k)?.params || [])].map(shallowClone)\r\n\r\n const existItem = state.params.find((item: any) => item.index === index)\r\n\r\n if (existItem)\r\n Object.assign(existItem, data)\r\n\r\n else\r\n state.params.push({ ...data, index })\r\n })\r\n }\r\n}\r\n\r\nexport function Body(key = '') {\r\n return BaseParam({\r\n type: 'body',\r\n key,\r\n })\r\n}\r\n// req.headers\r\nexport function Head(key: string) {\r\n return BaseParam({\r\n type: 'headers', key: key.toLowerCase(),\r\n })\r\n}\r\n\r\nexport function Query(key = '') {\r\n return BaseParam({ type: 'query', key })\r\n}\r\nexport function Param(key: string) {\r\n return BaseParam({\r\n type: 'params', key,\r\n })\r\n}\r\n\r\n// work for micro service\r\nexport function Arg(target: any, k: string, index: number) {\r\n BaseParam({\r\n type: 'args', key: `${index}`,\r\n })(target, k, index)\r\n}\r\n","import { getState, setPropertyState } from 'phecda-core'\r\nimport { BaseParam } from './param'\r\nexport function Guard(...guards: string[]) {\r\n return (target: any, k?: PropertyKey) => {\r\n setPropertyState(target, k, (state) => {\r\n if (!state.guards)\r\n state.guards = new Set([...(getState(target, k)?.guards || [])])\r\n\r\n guards.forEach((guard) => {\r\n if (state.guards.has(guard))\r\n state.guards.delete(guard)\r\n\r\n state.guards.add(guard)\r\n })\r\n })\r\n }\r\n}\r\n\r\nexport function Plugin(...plugins: string[]) {\r\n return (target: any, k?: PropertyKey) => {\r\n setPropertyState(target, k, (state) => {\r\n if (!state.plugins)\r\n state.plugins = new Set([...(getState(target, k)?.plugins || [])])\r\n\r\n plugins.forEach((plugin) => {\r\n if (state.plugins.has(plugin))\r\n state.plugins.delete(plugin)\r\n\r\n state.plugins.add(plugin)\r\n })\r\n })\r\n }\r\n}\r\n\r\nexport function Interceptor(...interceptors: string[]) {\r\n return (target: any, k?: PropertyKey) => {\r\n setPropertyState(target, k, (state) => {\r\n if (!state.interceptors)\r\n state.interceptors = new Set([...(getState(target, k)?.interceptors || [])])\r\n\r\n interceptors.forEach((interceptor) => {\r\n if (state.interceptors.has(interceptor))\r\n state.interceptors.delete(interceptor)\r\n\r\n state.interceptors.add(interceptor)\r\n })\r\n })\r\n }\r\n}\r\nexport function Filter(filter: string) {\r\n return (target: any, k?: PropertyKey) => {\r\n setPropertyState(target, k, state => state.filter = filter)\r\n }\r\n}\r\nexport function Pipe(pipe?: string) {\r\n return (target: any, k?: any, index?: any) => {\r\n if (typeof index === 'number') {\r\n BaseParam({ pipe })(target, k, index)\r\n\r\n return\r\n }\r\n setPropertyState(target, k, state => state.pipe = pipe)\r\n }\r\n}\r\n","import { getState, setPropertyState } from 'phecda-core'\r\nimport { mergeObject } from './helper'\r\n\r\nexport function Route(route: string, type: string): MethodDecorator {\r\n return (target: any, k: PropertyKey) => {\r\n setPropertyState(target, k, (state) => {\r\n state.http = mergeObject((state.http || getState(target, k)?.http),\r\n {\r\n route,\r\n type,\r\n })\r\n })\r\n }\r\n}\r\nexport function Header(headers: Record<string, string>): MethodDecorator {\r\n return (target: any, k: PropertyKey) => {\r\n setPropertyState(target, k, (state) => {\r\n if (!state.http)\r\n state.http = mergeObject(getState(target, k)?.http)\r\n\r\n state.http = mergeObject(state.http, {\r\n headers: mergeObject(state.http?.headers, headers),\r\n\r\n })\r\n })\r\n }\r\n}\r\n\r\nexport function Get(route = '') {\r\n return Route(route, 'get')\r\n}\r\n\r\nexport function Post(route = '') {\r\n return Route(route, 'post')\r\n}\r\nexport function Put(route = '') {\r\n return Route(route, 'put')\r\n}\r\n\r\nexport function Patch(route = '') {\r\n return Route(route, 'patch')\r\n}\r\nexport function Delete(route = '') {\r\n return Route(route, 'delete')\r\n}\r\n\r\nexport function Controller(prefix = '') {\r\n return (target: any) => {\r\n setPropertyState(target, undefined, (state) => {\r\n state.controller = 'http'\r\n state.http = mergeObject(state.http || getState(target)?.http, { prefix })\r\n })\r\n }\r\n}\r\n","import { getState, setPropertyState } from 'phecda-core'\r\nimport { mergeObject } from './helper'\r\n\r\nexport function Event(isEvent = true) {\r\n return (target: any, k?: PropertyKey) => {\r\n setPropertyState(target, k, (state) => {\r\n state.rpc = mergeObject(state.rpc || getState(target, k)?.rpc, { isEvent })\r\n })\r\n }\r\n}\r\nexport function Queue(queue = '') {\r\n return (target: any, k?: PropertyKey) => {\r\n setPropertyState(target, k, (state) => {\r\n state.rpc = mergeObject(state.rpc || getState(target, k)?.rpc, { queue })\r\n })\r\n }\r\n}\r\n\r\nexport function Rpc(): ClassDecorator {\r\n return (target: any) => {\r\n setPropertyState(target, undefined, (state) => {\r\n state.controller = 'rpc'\r\n })\r\n }\r\n}\r\n","import { Empty, getState, set, setPropertyState } from 'phecda-core'\r\nimport { mergeObject, shallowClone } from './helper'\r\n\r\nexport function Injectable() {\r\n return (target: any) => Empty(target)\r\n}\r\n\r\nexport const Ctx: PropertyDecorator = (target: any, key: PropertyKey) => {\r\n set(target, 'context', key)\r\n}\r\n\r\nexport function Define(key: string, value: any): any {\r\n return (target: any, k?: any, index?: number) => {\r\n if (typeof index === 'number') {\r\n setPropertyState(target, k, (state) => {\r\n const parentState = getState(target, k)?.params || []\r\n\r\n if (!state.params)\r\n state.params = [...parentState].map(shallowClone)\r\n const existItem = state.params.find((item: any) => item.index === index)\r\n if (existItem)\r\n existItem.define = mergeObject(existItem.define, { [key]: value })\r\n\r\n else\r\n state.params.push({ define: { [key]: value }, index })\r\n })\r\n return\r\n }\r\n setPropertyState(target, k, (state) => {\r\n const parentState = getState(target, k)?.define\r\n if (!state.define)\r\n state.define = mergeObject(parentState)\r\n\r\n state.define[key] = value\r\n })\r\n }\r\n}\r\n\r\nexport * from './param'\r\nexport * from './aop'\r\nexport * from './http'\r\nexport * from './rpc'\r\n"],"mappings":"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","names":["getState","setPropertyState","BaseParam","data","target","k","index","setPropertyState","state","params","getState","map","shallowClone","existItem","find","item","Object","assign","push","Body","key","type","Head","toLowerCase","Query","Param","Arg","getState","setPropertyState","Guard","guards","target","k","setPropertyState","state","Set","getState","forEach","guard","has","delete","add","Plugin","plugins","plugin","Interceptor","interceptors","interceptor","Filter","filter","Pipe","pipe","index","BaseParam","getState","setPropertyState","Route","route","type","target","k","setPropertyState","state","http","mergeObject","getState","Header","headers","Get","Post","Put","Patch","Delete","Controller","prefix","undefined","controller","getState","setPropertyState","Event","isEvent","target","k","setPropertyState","state","rpc","mergeObject","getState","Queue","queue","Rpc","undefined","controller","Empty","getState","set","setPropertyState","Injectable","target","Empty","Ctx","key","set","Define","value","k","index","setPropertyState","state","parentState","getState","params","map","shallowClone","existItem","find","item","define","mergeObject","push"]}
|
package/dist/chunk-6UQYEBAN.js
DELETED
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var _chunk7Y37NSBMjs = require('./chunk-7Y37NSBM.js');
|
|
7
|
-
|
|
8
|
-
// src/meta.ts
|
|
9
|
-
var Meta = class {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
constructor(data, paramsType) {
|
|
13
|
-
this.data = data;
|
|
14
|
-
this.paramsType = paramsType;
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
_chunk7Y37NSBMjs.__name.call(void 0, Meta, "Meta");
|
|
18
|
-
|
|
19
|
-
// src/core.ts
|
|
20
|
-
require('reflect-metadata');
|
|
21
|
-
var _events = require('events'); var _events2 = _interopRequireDefault(_events);
|
|
22
|
-
var _phecdacore = require('phecda-core');
|
|
23
|
-
var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug);
|
|
24
|
-
var debug = _debug2.default.call(void 0, "phecda-server(Factory)");
|
|
25
|
-
var emitter = new (0, _events2.default)();
|
|
26
|
-
async function Factory(models, opts = {}) {
|
|
27
|
-
const moduleMap = /* @__PURE__ */ new Map();
|
|
28
|
-
const meta = [];
|
|
29
|
-
const constructorMap = /* @__PURE__ */ new Map();
|
|
30
|
-
const constructorSet = /* @__PURE__ */ new WeakSet();
|
|
31
|
-
const dependenceGraph = /* @__PURE__ */ new Map();
|
|
32
|
-
const { parseModule = /* @__PURE__ */ _chunk7Y37NSBMjs.__name.call(void 0, (module) => module, "parseModule"), parseMeta = /* @__PURE__ */ _chunk7Y37NSBMjs.__name.call(void 0, (meta2) => meta2, "parseMeta"), generators } = opts;
|
|
33
|
-
if (!_phecdacore.getInject.call(void 0, "watcher")) {
|
|
34
|
-
_phecdacore.setInject.call(void 0, "watcher", ({ eventName, instance, key, options }) => {
|
|
35
|
-
const fn = typeof instance[key] === "function" ? instance[key].bind(instance) : (v) => instance[key] = v;
|
|
36
|
-
if (_optionalChain([options, 'optionalAccess', _ => _.once]))
|
|
37
|
-
emitter.once(eventName, fn);
|
|
38
|
-
else
|
|
39
|
-
emitter.on(eventName, fn);
|
|
40
|
-
return () => {
|
|
41
|
-
emitter.off(eventName, fn);
|
|
42
|
-
};
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
async function del(tag) {
|
|
46
|
-
if (!moduleMap.has(tag))
|
|
47
|
-
return;
|
|
48
|
-
const instance = moduleMap.get(tag);
|
|
49
|
-
debug(`unmount module "${String(tag)}"`);
|
|
50
|
-
await _phecdacore.invokeHandler.call(void 0, "unmount", instance);
|
|
51
|
-
debug(`del module "${String(tag)}"`);
|
|
52
|
-
moduleMap.delete(tag);
|
|
53
|
-
constructorMap.delete(tag);
|
|
54
|
-
for (let i = meta.length - 1; i >= 0; i--) {
|
|
55
|
-
if (meta[i].data.tag === tag)
|
|
56
|
-
meta.splice(i, 1);
|
|
57
|
-
}
|
|
58
|
-
return instance;
|
|
59
|
-
}
|
|
60
|
-
_chunk7Y37NSBMjs.__name.call(void 0, del, "del");
|
|
61
|
-
async function destroy() {
|
|
62
|
-
debug("destroy all");
|
|
63
|
-
for (const [tag] of moduleMap)
|
|
64
|
-
await del(tag);
|
|
65
|
-
}
|
|
66
|
-
_chunk7Y37NSBMjs.__name.call(void 0, destroy, "destroy");
|
|
67
|
-
async function add(Model) {
|
|
68
|
-
const tag = _phecdacore.getTag.call(void 0, Model);
|
|
69
|
-
const oldInstance = await del(tag);
|
|
70
|
-
const { instance: newModule } = await buildDepModule(Model);
|
|
71
|
-
if (oldInstance && dependenceGraph.has(tag)) {
|
|
72
|
-
debug(`replace module "${String(tag)}"`);
|
|
73
|
-
[
|
|
74
|
-
...dependenceGraph.get(tag)
|
|
75
|
-
].forEach((tag2) => {
|
|
76
|
-
const module = moduleMap.get(tag2);
|
|
77
|
-
for (const key in module) {
|
|
78
|
-
if (module[key] === oldInstance)
|
|
79
|
-
module[key] = newModule;
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
_chunk7Y37NSBMjs.__name.call(void 0, add, "add");
|
|
85
|
-
async function buildDepModule(Model) {
|
|
86
|
-
const paramtypes = getParamTypes(Model);
|
|
87
|
-
let instance;
|
|
88
|
-
const tag = _phecdacore.getTag.call(void 0, Model);
|
|
89
|
-
if (moduleMap.has(tag)) {
|
|
90
|
-
instance = moduleMap.get(tag);
|
|
91
|
-
if (!instance)
|
|
92
|
-
throw new Error(`exist Circular-Dependency or Multiple modules with the same name/tag [tag] ${String(tag)}--[module] ${Model}`);
|
|
93
|
-
if (constructorMap.get(tag) !== Model && !constructorSet.has(Model)) {
|
|
94
|
-
constructorSet.add(Model);
|
|
95
|
-
_chunk7Y37NSBMjs.log.call(void 0, `Synonym module: Module taged "${String(tag)}" has been loaded before, so phecda-server won't load Module "${Model.name}"`, "warn");
|
|
96
|
-
}
|
|
97
|
-
return {
|
|
98
|
-
instance,
|
|
99
|
-
tag
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
moduleMap.set(tag, void 0);
|
|
103
|
-
debug(`instantiate module "${String(tag)}"`);
|
|
104
|
-
if (paramtypes) {
|
|
105
|
-
const paramtypesInstances = [];
|
|
106
|
-
for (const i in paramtypes) {
|
|
107
|
-
const { instance: sub, tag: subTag } = await buildDepModule(paramtypes[i]);
|
|
108
|
-
paramtypesInstances[i] = sub;
|
|
109
|
-
if (!dependenceGraph.has(subTag))
|
|
110
|
-
dependenceGraph.set(subTag, /* @__PURE__ */ new Set());
|
|
111
|
-
dependenceGraph.get(subTag).add(tag);
|
|
112
|
-
}
|
|
113
|
-
instance = parseModule(new Model(...paramtypesInstances));
|
|
114
|
-
} else {
|
|
115
|
-
instance = parseModule(new Model());
|
|
116
|
-
}
|
|
117
|
-
meta.push(...getMetaFromInstance(instance, tag, Model.name).map(parseMeta).filter((item) => !!item));
|
|
118
|
-
debug(`init module "${String(tag)}"`);
|
|
119
|
-
if (!_chunk7Y37NSBMjs.IS_ONLY_GENERATE)
|
|
120
|
-
await _phecdacore.invokeHandler.call(void 0, "init", instance);
|
|
121
|
-
debug(`add module "${String(tag)}"`);
|
|
122
|
-
moduleMap.set(tag, instance);
|
|
123
|
-
constructorMap.set(tag, Model);
|
|
124
|
-
return {
|
|
125
|
-
instance,
|
|
126
|
-
tag
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
_chunk7Y37NSBMjs.__name.call(void 0, buildDepModule, "buildDepModule");
|
|
130
|
-
for (const model of models)
|
|
131
|
-
await buildDepModule(model);
|
|
132
|
-
async function generateCode() {
|
|
133
|
-
if (generators) {
|
|
134
|
-
return Promise.all(generators.map((generator) => {
|
|
135
|
-
debug(`generate "${generator.name}" code to ${generator.path}`);
|
|
136
|
-
return generator.output(meta);
|
|
137
|
-
}));
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
_chunk7Y37NSBMjs.__name.call(void 0, generateCode, "generateCode");
|
|
141
|
-
generateCode().then(() => {
|
|
142
|
-
if (_chunk7Y37NSBMjs.IS_ONLY_GENERATE)
|
|
143
|
-
process.exit(4);
|
|
144
|
-
});
|
|
145
|
-
if (_chunk7Y37NSBMjs.IS_HMR) {
|
|
146
|
-
if (!globalThis.__PS_HMR__)
|
|
147
|
-
globalThis.__PS_HMR__ = [];
|
|
148
|
-
_optionalChain([globalThis, 'access', _2 => _2.__PS_HMR__, 'optionalAccess', _3 => _3.push, 'call', _4 => _4(async (files) => {
|
|
149
|
-
debug("reload files ");
|
|
150
|
-
for (const file of files) {
|
|
151
|
-
const models2 = await Promise.resolve().then(() => require(file));
|
|
152
|
-
for (const i in models2) {
|
|
153
|
-
if (_phecdacore.isPhecda.call(void 0, models2[i]))
|
|
154
|
-
await add(models2[i]);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
generateCode();
|
|
158
|
-
})]);
|
|
159
|
-
}
|
|
160
|
-
return {
|
|
161
|
-
moduleMap,
|
|
162
|
-
constructorMap,
|
|
163
|
-
meta,
|
|
164
|
-
add,
|
|
165
|
-
del,
|
|
166
|
-
destroy
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
_chunk7Y37NSBMjs.__name.call(void 0, Factory, "Factory");
|
|
170
|
-
function getMetaFromInstance(instance, tag, name) {
|
|
171
|
-
const vars = _phecdacore.getExposeKey.call(void 0, instance).filter((item) => typeof item === "string");
|
|
172
|
-
const baseState = _phecdacore.getState.call(void 0, instance);
|
|
173
|
-
initState(baseState);
|
|
174
|
-
const ctx = _phecdacore.get.call(void 0, instance, "context");
|
|
175
|
-
return vars.filter((i) => typeof instance[i] === "function").map((i) => {
|
|
176
|
-
const state = _phecdacore.getState.call(void 0, instance, i);
|
|
177
|
-
const meta = {
|
|
178
|
-
...state,
|
|
179
|
-
name,
|
|
180
|
-
tag,
|
|
181
|
-
func: i
|
|
182
|
-
};
|
|
183
|
-
if (baseState.controller) {
|
|
184
|
-
if (typeof tag !== "string")
|
|
185
|
-
_chunk7Y37NSBMjs.log.call(void 0, `can't use Tag with ${typeof tag} on controller "${instance.constructor.name}",instead with "${tag = String(tag)}"`, "error");
|
|
186
|
-
initState(state);
|
|
187
|
-
meta.ctx = ctx;
|
|
188
|
-
meta.controller = baseState.controller;
|
|
189
|
-
meta[baseState.controller] = {
|
|
190
|
-
...baseState[baseState.controller],
|
|
191
|
-
...state[baseState.controller]
|
|
192
|
-
};
|
|
193
|
-
const params = [];
|
|
194
|
-
for (const i2 of state.params || []) {
|
|
195
|
-
if (!i2.pipe)
|
|
196
|
-
i2.pipe = state.pipe || baseState.pipe;
|
|
197
|
-
if (!i2.define)
|
|
198
|
-
i2.define = {};
|
|
199
|
-
params.unshift(i2);
|
|
200
|
-
if (i2.index === 0)
|
|
201
|
-
break;
|
|
202
|
-
}
|
|
203
|
-
meta.params = params;
|
|
204
|
-
meta.filter = state.filter || baseState.filter;
|
|
205
|
-
meta.define = {
|
|
206
|
-
...baseState.define,
|
|
207
|
-
...state.define
|
|
208
|
-
};
|
|
209
|
-
meta.plugins = [
|
|
210
|
-
.../* @__PURE__ */ new Set([
|
|
211
|
-
...baseState.plugins,
|
|
212
|
-
...state.plugins
|
|
213
|
-
])
|
|
214
|
-
];
|
|
215
|
-
meta.guards = [
|
|
216
|
-
.../* @__PURE__ */ new Set([
|
|
217
|
-
...baseState.guards,
|
|
218
|
-
...state.guards
|
|
219
|
-
])
|
|
220
|
-
];
|
|
221
|
-
meta.interceptors = [
|
|
222
|
-
.../* @__PURE__ */ new Set([
|
|
223
|
-
...baseState.interceptors,
|
|
224
|
-
...state.interceptors
|
|
225
|
-
])
|
|
226
|
-
];
|
|
227
|
-
}
|
|
228
|
-
return new Meta(meta, getParamTypes(instance, i) || []);
|
|
229
|
-
});
|
|
230
|
-
}
|
|
231
|
-
_chunk7Y37NSBMjs.__name.call(void 0, getMetaFromInstance, "getMetaFromInstance");
|
|
232
|
-
function getParamTypes(Module, key) {
|
|
233
|
-
return Reflect.getMetadata("design:paramtypes", Module, key);
|
|
234
|
-
}
|
|
235
|
-
_chunk7Y37NSBMjs.__name.call(void 0, getParamTypes, "getParamTypes");
|
|
236
|
-
function initState(state) {
|
|
237
|
-
if (!state.define)
|
|
238
|
-
state.define = {};
|
|
239
|
-
if (!state.plugins)
|
|
240
|
-
state.plugins = /* @__PURE__ */ new Set();
|
|
241
|
-
if (!state.guards)
|
|
242
|
-
state.guards = /* @__PURE__ */ new Set();
|
|
243
|
-
if (!state.interceptors)
|
|
244
|
-
state.interceptors = /* @__PURE__ */ new Set();
|
|
245
|
-
}
|
|
246
|
-
_chunk7Y37NSBMjs.__name.call(void 0, initState, "initState");
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
exports.Meta = Meta; exports.emitter = emitter; exports.Factory = Factory;
|
|
253
|
-
//# sourceMappingURL=chunk-6UQYEBAN.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/meta.ts","../src/core.ts"],"names":["Meta","data","paramsType","constructor","EventEmitter","get","getExposeKey","getInject","getState","getTag","invokeHandler","isPhecda","setInject","Debug","debug","emitter","Factory","models","opts","moduleMap","Map","meta","constructorMap","constructorSet","WeakSet","dependenceGraph","parseModule","module","parseMeta","generators","eventName","instance","key","options","fn","bind","v","once","on","off","del","tag","has","String","delete","i","length","splice","destroy","add","Model","oldInstance","newModule","buildDepModule","forEach","paramtypes","getParamTypes","Error","log","name","set","undefined","paramtypesInstances","sub","subTag","Set","push","getMetaFromInstance","map","filter","item","IS_ONLY_GENERATE","model","generateCode","Promise","all","generator","path","output","then","process","exit","IS_HMR","globalThis","__PS_HMR__","files","file","vars","baseState","initState","ctx","state","func","controller","params","pipe","define","unshift","index","plugins","guards","interceptors","Module","Reflect","getMetadata"],"mappings":"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","sourcesContent":["import type { BaseRequestType } from './types'\r\n\r\nexport interface ServiceMetaData {\r\n func: string\r\n name: string\r\n tag: string\r\n define?: any\r\n [key: string]: any\r\n}\r\n\r\nexport interface ControllerMetaData extends ServiceMetaData {\r\n controller: string\r\n http?: {\r\n type: BaseRequestType\r\n prefix: string\r\n route: string\r\n headers?: Record<string, string>\r\n\r\n }\r\n rpc?: {\r\n queue?: string\r\n isEvent?: boolean\r\n }\r\n ctx?: string\r\n params: { type: string; index: number; key: string; pipe?: string; define: Record<string, any> }[]\r\n guards: string[]\r\n pipe?: string\r\n filter?: string\r\n interceptors: string[]\r\n plugins: string[]\r\n\r\n}\r\n\r\nexport type MetaData = ControllerMetaData | ServiceMetaData\r\n\r\nexport class Meta {\r\n constructor(public data: MetaData, public paramsType: any[]) {\r\n\r\n }\r\n}\r\n\r\nexport interface ControllerMeta extends Meta {\r\n data: ControllerMetaData\r\n}\r\n","import 'reflect-metadata'\r\nimport EventEmitter from 'node:events'\r\nimport type { Construct, Phecda, WatcherParam } from 'phecda-core'\r\nimport { get, getExposeKey, getInject, getState, getTag, invokeHandler, isPhecda, setInject } from 'phecda-core'\r\nimport Debug from 'debug'\r\nimport type { Emitter } from './types'\r\nimport type { MetaData } from './meta'\r\nimport { Meta } from './meta'\r\nimport { log } from './utils'\r\nimport { IS_HMR, IS_ONLY_GENERATE } from './common'\r\nimport type { Generator } from './generator'\r\n\r\nconst debug = Debug('phecda-server(Factory)')\r\n// TODO: support both emitter types and origin emitter type in future\r\nexport const emitter: Emitter = new EventEmitter() as any\r\n\r\nexport async function Factory(models: (new (...args: any) => any)[], opts: {\r\n parseModule?: (module: any) => any\r\n parseMeta?: (meta: Meta) => Meta | null | undefined\r\n generators?: Generator[]\r\n} = {}) {\r\n const moduleMap = new Map<PropertyKey, InstanceType<Construct>>()\r\n const meta: Meta[] = []\r\n const constructorMap = new Map()\r\n const constructorSet = new WeakSet()\r\n const dependenceGraph = new Map<PropertyKey, Set<PropertyKey>>()\r\n const { parseModule = (module: any) => module, parseMeta = (meta: any) => meta, generators } = opts\r\n if (!getInject('watcher')) {\r\n setInject('watcher', ({ eventName, instance, key, options }: WatcherParam) => {\r\n const fn = typeof instance[key] === 'function' ? instance[key].bind(instance) : (v: any) => instance[key] = v\r\n\r\n if (options?.once)\r\n (emitter as any).once(eventName, fn)\r\n\r\n else\r\n (emitter as any).on(eventName, fn)\r\n\r\n return () => {\r\n (emitter as any).off(eventName, fn)\r\n }\r\n })\r\n }\r\n\r\n // only remove module in moduleMap(won't remove indirect module)\r\n async function del(tag: PropertyKey) {\r\n if (!moduleMap.has(tag))\r\n return\r\n\r\n const instance = moduleMap.get(tag)\r\n\r\n debug(`unmount module \"${String(tag)}\"`)\r\n await invokeHandler('unmount', instance)\r\n debug(`del module \"${String(tag)}\"`)\r\n\r\n moduleMap.delete(tag)\r\n constructorMap.delete(tag)\r\n for (let i = meta.length - 1; i >= 0; i--) {\r\n if (meta[i].data.tag === tag)\r\n meta.splice(i, 1)\r\n }\r\n\r\n return instance\r\n }\r\n\r\n async function destroy() {\r\n debug('destroy all')\r\n\r\n for (const [tag] of moduleMap)\r\n await del(tag)\r\n }\r\n\r\n async function add(Model: Construct) {\r\n const tag = getTag(Model)\r\n const oldInstance = await del(tag)\r\n\r\n const { instance: newModule } = await buildDepModule(Model)\r\n\r\n if (oldInstance && dependenceGraph.has(tag)) {\r\n debug(`replace module \"${String(tag)}\"`);\r\n\r\n [...dependenceGraph.get(tag)!].forEach((tag) => {\r\n const module = moduleMap.get(tag)\r\n for (const key in module) {\r\n if (module[key] === oldInstance)\r\n module[key] = newModule\r\n }\r\n })\r\n }\r\n }\r\n\r\n async function buildDepModule(Model: Construct) {\r\n const paramtypes = getParamTypes(Model) as Construct[]\r\n let instance: InstanceType<Construct>\r\n const tag = getTag(Model)\r\n\r\n if (moduleMap.has(tag)) {\r\n instance = moduleMap.get(tag)\r\n if (!instance)\r\n throw new Error(`exist Circular-Dependency or Multiple modules with the same name/tag [tag] ${String(tag)}--[module] ${Model}`)\r\n\r\n if (constructorMap.get(tag) !== Model && !constructorSet.has(Model)) {\r\n constructorSet.add(Model)// a module will only warn once\r\n log(`Synonym module: Module taged \"${String(tag)}\" has been loaded before, so phecda-server won't load Module \"${Model.name}\"`, 'warn')\r\n }\r\n return { instance, tag }\r\n }\r\n moduleMap.set(tag, undefined)\r\n debug(`instantiate module \"${String(tag)}\"`)\r\n\r\n if (paramtypes) {\r\n const paramtypesInstances = [] as any[]\r\n for (const i in paramtypes) {\r\n const { instance: sub, tag: subTag } = await buildDepModule(paramtypes[i])\r\n paramtypesInstances[i] = sub\r\n if (!dependenceGraph.has(subTag))\r\n dependenceGraph.set(subTag, new Set())\r\n dependenceGraph.get(subTag)!.add(tag)\r\n }\r\n\r\n instance = parseModule(new Model(...paramtypesInstances))\r\n }\r\n else {\r\n instance = parseModule(new Model())\r\n }\r\n meta.push(...getMetaFromInstance(instance, tag, Model.name).map(parseMeta).filter(item => !!item))\r\n\r\n debug(`init module \"${String(tag)}\"`)\r\n\r\n if (!IS_ONLY_GENERATE)\r\n await invokeHandler('init', instance)\r\n\r\n debug(`add module \"${String(tag)}\"`)\r\n\r\n moduleMap.set(tag, instance)\r\n constructorMap.set(tag, Model)\r\n return { instance, tag }\r\n }\r\n\r\n for (const model of models)\r\n await buildDepModule(model)\r\n\r\n async function generateCode() {\r\n if (generators) {\r\n return Promise.all(generators.map((generator) => {\r\n debug(`generate \"${generator.name}\" code to ${generator.path}`)\r\n\r\n return generator.output(meta)\r\n }))\r\n }\r\n }\r\n\r\n generateCode().then(() => {\r\n if (IS_ONLY_GENERATE)\r\n process.exit(4)// only output code/work for ci\r\n })\r\n\r\n if (IS_HMR) { // for hmr\r\n if (!globalThis.__PS_HMR__)\r\n globalThis.__PS_HMR__ = []\r\n\r\n globalThis.__PS_HMR__?.push(async (files: string[]) => {\r\n debug('reload files ')\r\n\r\n for (const file of files) {\r\n const models = await import(file)\r\n for (const i in models) {\r\n if (isPhecda(models[i]))\r\n await add(models[i])\r\n }\r\n }\r\n generateCode()\r\n })\r\n }\r\n\r\n return {\r\n moduleMap,\r\n constructorMap,\r\n meta,\r\n add,\r\n del,\r\n destroy,\r\n }\r\n}\r\n\r\nfunction getMetaFromInstance(instance: Phecda, tag: PropertyKey, name: string) {\r\n const vars = getExposeKey(instance).filter(item => typeof item === 'string') as string[]\r\n const baseState = getState(instance) as MetaData\r\n initState(baseState)\r\n const ctx = get(instance, 'context')\r\n\r\n return vars.filter(i => typeof (instance as any)[i] === 'function').map((i) => {\r\n const state = getState(instance, i) as any\r\n\r\n const meta = {\r\n ...state,\r\n name,\r\n tag,\r\n func:\r\n i,\r\n } as MetaData\r\n if (baseState.controller) {\r\n if (typeof tag !== 'string')\r\n log(`can't use Tag with ${typeof tag} on controller \"${(instance as any).constructor.name}\",instead with \"${tag = String(tag)}\"`, 'error')\r\n initState(state)\r\n meta.ctx = ctx\r\n meta.controller = baseState.controller\r\n meta[baseState.controller] = {\r\n ...baseState[baseState.controller],\r\n ...state[baseState.controller],\r\n }\r\n\r\n const params = [] as any[]\r\n for (const i of state.params || []) {\r\n if (!i.pipe)\r\n i.pipe = state.pipe || baseState.pipe\r\n if (!i.define)\r\n i.define = {}\r\n\r\n params.unshift(i)\r\n if (i.index === 0)\r\n break\r\n }\r\n\r\n meta.params = params\r\n meta.filter = state.filter || baseState.filter\r\n meta.define = { ...baseState.define, ...state.define }\r\n meta.plugins = [...new Set([...baseState.plugins, ...state.plugins])]\r\n meta.guards = [...new Set([...baseState.guards, ...state.guards])]\r\n meta.interceptors = [...new Set([...baseState.interceptors, ...state.interceptors])]\r\n }\r\n return new Meta(meta as unknown as MetaData, getParamTypes(instance, i as string) || [])\r\n })\r\n}\r\n\r\nfunction getParamTypes(Module: any, key?: string | symbol) {\r\n return Reflect.getMetadata('design:paramtypes', Module, key!)\r\n}\r\n\r\nfunction initState(state: any) {\r\n if (!state.define)\r\n state.define = {}\r\n\r\n if (!state.plugins)\r\n state.plugins = new Set()\r\n if (!state.guards)\r\n state.guards = new Set()\r\n if (!state.interceptors)\r\n state.interceptors = new Set()\r\n}\r\n"]}
|