phecda-server 4.0.7 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-JZGLQ4FQ.js → chunk-32E425F6.js} +55 -55
- package/dist/chunk-32E425F6.js.map +1 -0
- package/dist/{chunk-DQUH5BP6.mjs → chunk-5KOB2WHH.mjs} +1 -1
- package/dist/{chunk-DQUH5BP6.mjs.map → chunk-5KOB2WHH.mjs.map} +1 -1
- package/dist/{chunk-WWYSLFOI.js → chunk-5L4K7XEB.js} +33 -31
- package/dist/chunk-5L4K7XEB.js.map +1 -0
- package/dist/{chunk-FCLWCFQS.js → chunk-63KBHOSB.js} +3 -3
- package/dist/{chunk-ZZ2QKZ46.js → chunk-BDIQWWHN.js} +1 -1
- package/dist/{chunk-ZZ2QKZ46.js.map → chunk-BDIQWWHN.js.map} +1 -1
- package/dist/{chunk-43ZXHSVH.mjs → chunk-Q3V3ERU3.mjs} +2 -2
- package/dist/{chunk-F5PQVQTY.mjs → chunk-WQBXOVND.mjs} +16 -14
- package/dist/chunk-WQBXOVND.mjs.map +1 -0
- package/dist/{chunk-ATMZNJSE.mjs → chunk-Z6LSJTOF.mjs} +11 -11
- package/dist/chunk-Z6LSJTOF.mjs.map +1 -0
- package/dist/{core-72951cf9.d.ts → core-d080d872.d.ts} +21 -13
- package/dist/index.d.ts +24 -25
- package/dist/index.js +57 -57
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4 -4
- package/dist/index.mjs.map +1 -1
- package/dist/rpc/rabbitmq/index.d.ts +2 -5
- package/dist/rpc/rabbitmq/index.js +22 -20
- package/dist/rpc/rabbitmq/index.js.map +1 -1
- package/dist/rpc/rabbitmq/index.mjs +17 -15
- package/dist/rpc/rabbitmq/index.mjs.map +1 -1
- package/dist/rpc/redis/index.d.ts +2 -5
- package/dist/rpc/redis/index.js +23 -21
- package/dist/rpc/redis/index.js.map +1 -1
- package/dist/rpc/redis/index.mjs +18 -16
- package/dist/rpc/redis/index.mjs.map +1 -1
- package/dist/server/express/index.d.ts +2 -5
- package/dist/server/express/index.js +28 -26
- package/dist/server/express/index.js.map +1 -1
- package/dist/server/express/index.mjs +9 -7
- package/dist/server/express/index.mjs.map +1 -1
- package/dist/server/fastify/index.d.ts +2 -5
- package/dist/server/fastify/index.js +26 -24
- package/dist/server/fastify/index.js.map +1 -1
- package/dist/server/fastify/index.mjs +9 -7
- package/dist/server/fastify/index.mjs.map +1 -1
- package/dist/server/h3/index.d.ts +2 -5
- package/dist/server/h3/index.js +28 -26
- package/dist/server/h3/index.js.map +1 -1
- package/dist/server/h3/index.mjs +9 -7
- package/dist/server/h3/index.mjs.map +1 -1
- package/dist/server/koa/index.d.ts +2 -5
- package/dist/server/koa/index.js +28 -26
- package/dist/server/koa/index.js.map +1 -1
- package/dist/server/koa/index.mjs +9 -7
- package/dist/server/koa/index.mjs.map +1 -1
- package/dist/test.d.ts +1 -1
- package/dist/test.js +5 -5
- package/dist/test.mjs +2 -2
- package/package.json +1 -1
- package/dist/chunk-ATMZNJSE.mjs.map +0 -1
- package/dist/chunk-F5PQVQTY.mjs.map +0 -1
- package/dist/chunk-JZGLQ4FQ.js.map +0 -1
- package/dist/chunk-WWYSLFOI.js.map +0 -1
- /package/dist/{chunk-FCLWCFQS.js.map → chunk-63KBHOSB.js.map} +0 -0
- /package/dist/{chunk-43ZXHSVH.mjs.map → chunk-Q3V3ERU3.mjs.map} +0 -0
|
@@ -2,54 +2,56 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunk32E425F6js = require('../../chunk-32E425F6.js');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkBDIQWWHNjs = require('../../chunk-BDIQWWHN.js');
|
|
10
10
|
|
|
11
11
|
// src/rpc/rabbitmq/bind.ts
|
|
12
12
|
async function bind(ch, queue, { moduleMap, meta }, opts) {
|
|
13
13
|
const metaMap = /* @__PURE__ */ new Map();
|
|
14
14
|
const existQueue = /* @__PURE__ */ new Set();
|
|
15
15
|
const { globalGuards = [], globalInterceptors = [] } = opts || {};
|
|
16
|
-
_chunkJZGLQ4FQjs.isAopDepInject.call(void 0, meta, {
|
|
17
|
-
guards: globalGuards,
|
|
18
|
-
interceptors: globalInterceptors
|
|
19
|
-
});
|
|
20
16
|
function handleMeta() {
|
|
17
|
+
_chunk32E425F6js.isAopDepInject.call(void 0, meta, {
|
|
18
|
+
guards: globalGuards,
|
|
19
|
+
interceptors: globalInterceptors
|
|
20
|
+
});
|
|
21
21
|
for (const item of meta) {
|
|
22
22
|
const { data: { rpc, method, name } } = item;
|
|
23
23
|
if (_optionalChain([rpc, 'optionalAccess', _ => _.type]) && rpc.type.includes("mq"))
|
|
24
24
|
metaMap.set(`${name}-${method}`, item);
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
|
|
27
|
+
_chunkBDIQWWHNjs.__name.call(void 0, handleMeta, "handleMeta");
|
|
28
28
|
handleMeta();
|
|
29
29
|
await ch.assertQueue(queue);
|
|
30
30
|
ch.consume(queue, async (msg) => {
|
|
31
31
|
if (msg) {
|
|
32
32
|
const data = JSON.parse(msg.content.toString());
|
|
33
33
|
const { tag, args, queue: queue2, id } = data;
|
|
34
|
-
const context = new (0, _chunkJZGLQ4FQjs.Context)(tag, {
|
|
35
|
-
type: "rabbitmq",
|
|
36
|
-
moduleMap,
|
|
37
|
-
meta: metaMap.get(tag),
|
|
38
|
-
data,
|
|
39
|
-
ch,
|
|
40
|
-
msg
|
|
41
|
-
});
|
|
42
34
|
if (!existQueue.has(queue2))
|
|
43
35
|
await ch.assertQueue(queue2);
|
|
44
36
|
if (!metaMap.has(tag)) {
|
|
45
37
|
queue2 && ch.sendToQueue(queue2, Buffer.from(JSON.stringify({
|
|
46
|
-
data: new (0,
|
|
38
|
+
data: new (0, _chunk32E425F6js.BadRequestException)(`service "${tag}" doesn't exist`).data,
|
|
47
39
|
error: true,
|
|
48
40
|
id
|
|
49
41
|
})));
|
|
50
42
|
return;
|
|
51
43
|
}
|
|
52
|
-
const
|
|
44
|
+
const meta2 = metaMap.get(tag);
|
|
45
|
+
const context = new (0, _chunk32E425F6js.Context)({
|
|
46
|
+
type: "rabbitmq",
|
|
47
|
+
moduleMap,
|
|
48
|
+
meta: meta2,
|
|
49
|
+
tag,
|
|
50
|
+
data,
|
|
51
|
+
ch,
|
|
52
|
+
msg
|
|
53
|
+
});
|
|
54
|
+
const { data: { guards, interceptors, params, name, method, filter }, paramsType } = meta2;
|
|
53
55
|
try {
|
|
54
56
|
await context.useGuard([
|
|
55
57
|
...globalGuards,
|
|
@@ -99,13 +101,13 @@ async function bind(ch, queue, { moduleMap, meta }, opts) {
|
|
|
99
101
|
}, {
|
|
100
102
|
noAck: true
|
|
101
103
|
});
|
|
102
|
-
if (
|
|
104
|
+
if (_chunkBDIQWWHNjs.IS_DEV) {
|
|
103
105
|
_optionalChain([globalThis, 'access', _2 => _2.__PS_HMR__, 'optionalAccess', _3 => _3.push, 'call', _4 => _4(async () => {
|
|
104
106
|
handleMeta();
|
|
105
107
|
})]);
|
|
106
108
|
}
|
|
107
109
|
}
|
|
108
|
-
|
|
110
|
+
_chunkBDIQWWHNjs.__name.call(void 0, bind, "bind");
|
|
109
111
|
|
|
110
112
|
// src/rpc/rabbitmq/client.ts
|
|
111
113
|
var _events = require('events');
|
|
@@ -153,7 +155,7 @@ async function createClient(ch, queue, controllers) {
|
|
|
153
155
|
}
|
|
154
156
|
return ret;
|
|
155
157
|
}
|
|
156
|
-
|
|
158
|
+
_chunkBDIQWWHNjs.__name.call(void 0, createClient, "createClient");
|
|
157
159
|
|
|
158
160
|
|
|
159
161
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/rpc/rabbitmq/bind.ts","../../../src/rpc/rabbitmq/client.ts"],"names":["bind","ch","queue","moduleMap","meta","opts","metaMap","Map","existQueue","Set","globalGuards","globalInterceptors","isAopDepInject","guards","interceptors","
|
|
1
|
+
{"version":3,"sources":["../../../src/rpc/rabbitmq/bind.ts","../../../src/rpc/rabbitmq/client.ts"],"names":["bind","ch","queue","moduleMap","meta","opts","metaMap","Map","existQueue","Set","globalGuards","globalInterceptors","handleMeta","isAopDepInject","guards","interceptors","item","data","rpc","method","name","type","includes","set","assertQueue","consume","msg","JSON","parse","content","toString","tag","args","id","has","sendToQueue","Buffer","from","stringify","BadRequestException","error","get","context","Context","params","filter","paramsType","useGuard","cache","useInterceptor","undefined","handleArgs","usePipe","map","key","pipe","pipeOpts","index","i","arg","reflect","funcData","ret","usePostInterceptor","e","useFilter","noAck","IS_DEV","globalThis","__PS_HMR__","push","EventEmitter","randomUUID","createClient","controllers","emitter","uniQueue","emit","Proxy","target","p","Error","isEvent","Promise","resolve","reject","once"],"mappings":"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","sourcesContent":["import type amqplib from 'amqplib'\nimport type { Factory } from '../../core'\nimport type { Meta } from '../../meta'\nimport { BadRequestException } from '../../exception'\nimport { Context, isAopDepInject } from '../../context'\nimport { IS_DEV } from '../../common'\nimport { P } from '../../types'\n\nexport interface Options {\n globalGuards?: string[]\n globalInterceptors?: string[]\n}\nexport interface RabbitmqCtx extends P.BaseContext {\n type: 'rabbitmq'\n ch: amqplib.Channel\n msg: amqplib.ConsumeMessage\n data: any\n}\n\nexport async function bind(ch: amqplib.Channel, queue: string, { moduleMap, meta }: Awaited<ReturnType<typeof Factory>>, opts?: Options) {\n const metaMap = new Map<string, Meta>()\n\n const existQueue = new Set<string>()\n const { globalGuards = [], globalInterceptors = [] } = opts || {}\n\n\n function handleMeta() {\n\n isAopDepInject(meta, {\n guards: globalGuards,\n interceptors: globalInterceptors,\n })\n\n for (const item of meta) {\n const { data: { rpc, method, name } } = item\n\n if (rpc?.type && rpc.type.includes('mq'))\n metaMap.set(`${name}-${method}`, item)\n }\n }\n\n handleMeta()\n\n await ch.assertQueue(queue)\n\n ch.consume(queue, async (msg) => {\n if (msg) {\n const data = JSON.parse(msg.content.toString())\n const { tag, args, queue, id } = data\n\n if (!existQueue.has(queue))\n await ch.assertQueue(queue)\n if (!metaMap.has(tag)) {\n queue && ch.sendToQueue(queue, Buffer.from(JSON.stringify({\n data: new BadRequestException(`service \"${tag}\" doesn't exist`).data,\n error: true,\n id,\n })))\n\n return\n }\n\n const meta = metaMap.get(tag)!\n const context = new Context<RabbitmqCtx>({\n type: 'rabbitmq',\n moduleMap,\n meta,\n tag,\n data,\n ch,\n msg,\n })\n const {\n data: {\n guards, interceptors, params, name, method, filter,\n },\n paramsType,\n } = meta\n try {\n await context.useGuard([...globalGuards, ...guards])\n const cache = await context.useInterceptor([...globalInterceptors, ...interceptors])\n if (cache !== undefined) {\n if (queue)\n ch.sendToQueue(queue, Buffer.from(JSON.stringify({ data: cache, id })))\n\n return\n }\n const handleArgs = await context.usePipe(params.map(({ type, key, pipe, pipeOpts, index }, i) => {\n return { arg: args[i], pipe, pipeOpts, key, type, index, reflect: paramsType[index] }\n }))\n\n const funcData = await moduleMap.get(name)[method](...handleArgs)\n const ret = await context.usePostInterceptor(funcData)\n if (queue)\n ch.sendToQueue(queue, Buffer.from(JSON.stringify({ data: ret, id })))\n }\n catch (e) {\n const ret = await context.useFilter(e, filter)\n if (queue) {\n ch.sendToQueue(queue, Buffer.from(JSON.stringify({\n data: ret,\n error: true,\n id,\n })))\n }\n }\n }\n }, { noAck: true })\n\n if (IS_DEV) {\n globalThis.__PS_HMR__?.push(async () => {\n handleMeta()\n })\n }\n}\n","import { EventEmitter } from 'events'\nimport { randomUUID } from 'crypto'\nimport type amqplib from 'amqplib'\nimport type { ToControllerMap } from '../../types'\nexport async function createClient<S extends Record<string, any>>(ch: amqplib.Channel, queue: string, controllers: S): Promise<ToControllerMap<S>> {\n const ret = {} as any\n const emitter = new EventEmitter()\n const uniQueue = `PS:${randomUUID()}`\n\n await ch.assertQueue(uniQueue)\n ch.consume(uniQueue, (msg) => {\n if (!msg)\n return\n const { data, id, error } = JSON.parse(msg.content.toString())\n emitter.emit(id, data, error)\n })\n\n for (const i in controllers) {\n ret[i] = new Proxy(new controllers[i](), {\n get(target, p: string) {\n const id = randomUUID()\n if (typeof target[p] !== 'function')\n throw new Error(`\"${p}\" in \"${i}\" is not an exposed rpc `)\n\n const { tag, rpc, isEvent } = target[p]()\n if (!rpc.includes('mq'))\n throw new Error(`\"${p}\" in \"${i}\" doesn't support rabbitmq`)\n return (...args: any) => {\n ch.sendToQueue(queue, Buffer.from(\n JSON.stringify(\n {\n id,\n tag,\n args,\n queue: isEvent ? undefined : uniQueue,\n },\n ),\n ))\n if (isEvent)\n return null\n\n return new Promise((resolve, reject) => {\n emitter.once(id, (data: any, error: boolean) => {\n if (error)\n reject(data)\n\n else resolve(data)\n })\n })\n }\n },\n })\n }\n\n return ret\n}\n"]}
|
|
@@ -2,22 +2,22 @@ import {
|
|
|
2
2
|
BadRequestException,
|
|
3
3
|
Context,
|
|
4
4
|
isAopDepInject
|
|
5
|
-
} from "../../chunk-
|
|
5
|
+
} from "../../chunk-Z6LSJTOF.mjs";
|
|
6
6
|
import {
|
|
7
7
|
IS_DEV,
|
|
8
8
|
__name
|
|
9
|
-
} from "../../chunk-
|
|
9
|
+
} from "../../chunk-5KOB2WHH.mjs";
|
|
10
10
|
|
|
11
11
|
// src/rpc/rabbitmq/bind.ts
|
|
12
12
|
async function bind(ch, queue, { moduleMap, meta }, opts) {
|
|
13
13
|
const metaMap = /* @__PURE__ */ new Map();
|
|
14
14
|
const existQueue = /* @__PURE__ */ new Set();
|
|
15
15
|
const { globalGuards = [], globalInterceptors = [] } = opts || {};
|
|
16
|
-
isAopDepInject(meta, {
|
|
17
|
-
guards: globalGuards,
|
|
18
|
-
interceptors: globalInterceptors
|
|
19
|
-
});
|
|
20
16
|
function handleMeta() {
|
|
17
|
+
isAopDepInject(meta, {
|
|
18
|
+
guards: globalGuards,
|
|
19
|
+
interceptors: globalInterceptors
|
|
20
|
+
});
|
|
21
21
|
for (const item of meta) {
|
|
22
22
|
const { data: { rpc, method, name } } = item;
|
|
23
23
|
if (rpc?.type && rpc.type.includes("mq"))
|
|
@@ -31,14 +31,6 @@ async function bind(ch, queue, { moduleMap, meta }, opts) {
|
|
|
31
31
|
if (msg) {
|
|
32
32
|
const data = JSON.parse(msg.content.toString());
|
|
33
33
|
const { tag, args, queue: queue2, id } = data;
|
|
34
|
-
const context = new Context(tag, {
|
|
35
|
-
type: "rabbitmq",
|
|
36
|
-
moduleMap,
|
|
37
|
-
meta: metaMap.get(tag),
|
|
38
|
-
data,
|
|
39
|
-
ch,
|
|
40
|
-
msg
|
|
41
|
-
});
|
|
42
34
|
if (!existQueue.has(queue2))
|
|
43
35
|
await ch.assertQueue(queue2);
|
|
44
36
|
if (!metaMap.has(tag)) {
|
|
@@ -49,7 +41,17 @@ async function bind(ch, queue, { moduleMap, meta }, opts) {
|
|
|
49
41
|
})));
|
|
50
42
|
return;
|
|
51
43
|
}
|
|
52
|
-
const
|
|
44
|
+
const meta2 = metaMap.get(tag);
|
|
45
|
+
const context = new Context({
|
|
46
|
+
type: "rabbitmq",
|
|
47
|
+
moduleMap,
|
|
48
|
+
meta: meta2,
|
|
49
|
+
tag,
|
|
50
|
+
data,
|
|
51
|
+
ch,
|
|
52
|
+
msg
|
|
53
|
+
});
|
|
54
|
+
const { data: { guards, interceptors, params, name, method, filter }, paramsType } = meta2;
|
|
53
55
|
try {
|
|
54
56
|
await context.useGuard([
|
|
55
57
|
...globalGuards,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/rpc/rabbitmq/bind.ts","../../../src/rpc/rabbitmq/client.ts"],"sourcesContent":["import type amqplib from 'amqplib'\nimport type { Factory } from '../../core'\nimport type { Meta } from '../../meta'\nimport { BadRequestException } from '../../exception'\nimport { Context, isAopDepInject } from '../../context'\nimport { IS_DEV } from '../../common'\n\nexport interface Options {\n globalGuards?: string[]\n globalInterceptors?: string[]\n}\nexport interface RabbitmqCtx {\n type: 'rabbitmq'\n
|
|
1
|
+
{"version":3,"sources":["../../../src/rpc/rabbitmq/bind.ts","../../../src/rpc/rabbitmq/client.ts"],"sourcesContent":["import type amqplib from 'amqplib'\nimport type { Factory } from '../../core'\nimport type { Meta } from '../../meta'\nimport { BadRequestException } from '../../exception'\nimport { Context, isAopDepInject } from '../../context'\nimport { IS_DEV } from '../../common'\nimport { P } from '../../types'\n\nexport interface Options {\n globalGuards?: string[]\n globalInterceptors?: string[]\n}\nexport interface RabbitmqCtx extends P.BaseContext {\n type: 'rabbitmq'\n ch: amqplib.Channel\n msg: amqplib.ConsumeMessage\n data: any\n}\n\nexport async function bind(ch: amqplib.Channel, queue: string, { moduleMap, meta }: Awaited<ReturnType<typeof Factory>>, opts?: Options) {\n const metaMap = new Map<string, Meta>()\n\n const existQueue = new Set<string>()\n const { globalGuards = [], globalInterceptors = [] } = opts || {}\n\n\n function handleMeta() {\n\n isAopDepInject(meta, {\n guards: globalGuards,\n interceptors: globalInterceptors,\n })\n\n for (const item of meta) {\n const { data: { rpc, method, name } } = item\n\n if (rpc?.type && rpc.type.includes('mq'))\n metaMap.set(`${name}-${method}`, item)\n }\n }\n\n handleMeta()\n\n await ch.assertQueue(queue)\n\n ch.consume(queue, async (msg) => {\n if (msg) {\n const data = JSON.parse(msg.content.toString())\n const { tag, args, queue, id } = data\n\n if (!existQueue.has(queue))\n await ch.assertQueue(queue)\n if (!metaMap.has(tag)) {\n queue && ch.sendToQueue(queue, Buffer.from(JSON.stringify({\n data: new BadRequestException(`service \"${tag}\" doesn't exist`).data,\n error: true,\n id,\n })))\n\n return\n }\n\n const meta = metaMap.get(tag)!\n const context = new Context<RabbitmqCtx>({\n type: 'rabbitmq',\n moduleMap,\n meta,\n tag,\n data,\n ch,\n msg,\n })\n const {\n data: {\n guards, interceptors, params, name, method, filter,\n },\n paramsType,\n } = meta\n try {\n await context.useGuard([...globalGuards, ...guards])\n const cache = await context.useInterceptor([...globalInterceptors, ...interceptors])\n if (cache !== undefined) {\n if (queue)\n ch.sendToQueue(queue, Buffer.from(JSON.stringify({ data: cache, id })))\n\n return\n }\n const handleArgs = await context.usePipe(params.map(({ type, key, pipe, pipeOpts, index }, i) => {\n return { arg: args[i], pipe, pipeOpts, key, type, index, reflect: paramsType[index] }\n }))\n\n const funcData = await moduleMap.get(name)[method](...handleArgs)\n const ret = await context.usePostInterceptor(funcData)\n if (queue)\n ch.sendToQueue(queue, Buffer.from(JSON.stringify({ data: ret, id })))\n }\n catch (e) {\n const ret = await context.useFilter(e, filter)\n if (queue) {\n ch.sendToQueue(queue, Buffer.from(JSON.stringify({\n data: ret,\n error: true,\n id,\n })))\n }\n }\n }\n }, { noAck: true })\n\n if (IS_DEV) {\n globalThis.__PS_HMR__?.push(async () => {\n handleMeta()\n })\n }\n}\n","import { EventEmitter } from 'events'\nimport { randomUUID } from 'crypto'\nimport type amqplib from 'amqplib'\nimport type { ToControllerMap } from '../../types'\nexport async function createClient<S extends Record<string, any>>(ch: amqplib.Channel, queue: string, controllers: S): Promise<ToControllerMap<S>> {\n const ret = {} as any\n const emitter = new EventEmitter()\n const uniQueue = `PS:${randomUUID()}`\n\n await ch.assertQueue(uniQueue)\n ch.consume(uniQueue, (msg) => {\n if (!msg)\n return\n const { data, id, error } = JSON.parse(msg.content.toString())\n emitter.emit(id, data, error)\n })\n\n for (const i in controllers) {\n ret[i] = new Proxy(new controllers[i](), {\n get(target, p: string) {\n const id = randomUUID()\n if (typeof target[p] !== 'function')\n throw new Error(`\"${p}\" in \"${i}\" is not an exposed rpc `)\n\n const { tag, rpc, isEvent } = target[p]()\n if (!rpc.includes('mq'))\n throw new Error(`\"${p}\" in \"${i}\" doesn't support rabbitmq`)\n return (...args: any) => {\n ch.sendToQueue(queue, Buffer.from(\n JSON.stringify(\n {\n id,\n tag,\n args,\n queue: isEvent ? undefined : uniQueue,\n },\n ),\n ))\n if (isEvent)\n return null\n\n return new Promise((resolve, reject) => {\n emitter.once(id, (data: any, error: boolean) => {\n if (error)\n reject(data)\n\n else resolve(data)\n })\n })\n }\n },\n })\n }\n\n return ret\n}\n"],"mappings":"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","names":["bind","ch","queue","moduleMap","meta","opts","metaMap","Map","existQueue","Set","globalGuards","globalInterceptors","handleMeta","isAopDepInject","guards","interceptors","item","data","rpc","method","name","type","includes","set","assertQueue","consume","msg","JSON","parse","content","toString","tag","args","id","has","sendToQueue","Buffer","from","stringify","BadRequestException","error","get","context","Context","params","filter","paramsType","useGuard","cache","useInterceptor","undefined","handleArgs","usePipe","map","key","pipe","pipeOpts","index","i","arg","reflect","funcData","ret","usePostInterceptor","e","useFilter","noAck","IS_DEV","globalThis","__PS_HMR__","push","EventEmitter","randomUUID","createClient","ch","queue","controllers","ret","emitter","EventEmitter","uniQueue","randomUUID","assertQueue","consume","msg","data","id","error","JSON","parse","content","toString","emit","i","Proxy","get","target","p","Error","tag","rpc","isEvent","includes","args","sendToQueue","Buffer","from","stringify","undefined","Promise","resolve","reject","once"]}
|
|
@@ -1,20 +1,17 @@
|
|
|
1
1
|
import Redis from 'ioredis';
|
|
2
|
-
import {
|
|
2
|
+
import { P, F as Factory, T as ToControllerMap } from '../../core-d080d872.js';
|
|
3
3
|
import 'phecda-core';
|
|
4
4
|
|
|
5
5
|
interface Options {
|
|
6
6
|
globalGuards?: string[];
|
|
7
7
|
globalInterceptors?: string[];
|
|
8
8
|
}
|
|
9
|
-
interface RedisCtx {
|
|
9
|
+
interface RedisCtx extends P.BaseContext {
|
|
10
10
|
type: 'redis';
|
|
11
|
-
meta?: Meta;
|
|
12
|
-
moduleMap: Record<string, any>;
|
|
13
11
|
redis: Redis;
|
|
14
12
|
msg: string;
|
|
15
13
|
channel: string;
|
|
16
14
|
data: any;
|
|
17
|
-
[key: string]: any;
|
|
18
15
|
}
|
|
19
16
|
declare function bind(redis: Redis, channel: string, { moduleMap, meta }: Awaited<ReturnType<typeof Factory>>, opts?: Options): void;
|
|
20
17
|
|
package/dist/rpc/redis/index.js
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunk32E425F6js = require('../../chunk-32E425F6.js');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkBDIQWWHNjs = require('../../chunk-BDIQWWHN.js');
|
|
10
10
|
|
|
11
11
|
// src/rpc/redis/bind.ts
|
|
12
12
|
var _ioredis = require('ioredis'); var _ioredis2 = _interopRequireDefault(_ioredis);
|
|
@@ -14,42 +14,44 @@ function bind(redis, channel, { moduleMap, meta }, opts) {
|
|
|
14
14
|
const metaMap = /* @__PURE__ */ new Map();
|
|
15
15
|
const pub = new (0, _ioredis2.default)(redis.options);
|
|
16
16
|
const { globalGuards = [], globalInterceptors = [] } = opts || {};
|
|
17
|
-
_chunkJZGLQ4FQjs.isAopDepInject.call(void 0, meta, {
|
|
18
|
-
guards: globalGuards,
|
|
19
|
-
interceptors: globalInterceptors
|
|
20
|
-
});
|
|
21
17
|
function handleMeta() {
|
|
18
|
+
_chunk32E425F6js.isAopDepInject.call(void 0, meta, {
|
|
19
|
+
guards: globalGuards,
|
|
20
|
+
interceptors: globalInterceptors
|
|
21
|
+
});
|
|
22
22
|
for (const item of meta) {
|
|
23
23
|
const { data: { rpc, method, name } } = item;
|
|
24
24
|
if (_optionalChain([rpc, 'optionalAccess', _2 => _2.type]) && rpc.type.includes("mq"))
|
|
25
25
|
metaMap.set(`${name}-${method}`, item);
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
|
|
28
|
+
_chunkBDIQWWHNjs.__name.call(void 0, handleMeta, "handleMeta");
|
|
29
29
|
handleMeta();
|
|
30
30
|
redis.subscribe(channel);
|
|
31
31
|
redis.on("message", async (channel2, msg) => {
|
|
32
32
|
if (msg) {
|
|
33
33
|
const data = JSON.parse(msg);
|
|
34
34
|
const { tag, args, id, queue } = data;
|
|
35
|
-
const context = new (0, _chunkJZGLQ4FQjs.Context)(tag, {
|
|
36
|
-
type: "redis",
|
|
37
|
-
moduleMap,
|
|
38
|
-
redis,
|
|
39
|
-
meta: metaMap.get(tag),
|
|
40
|
-
msg,
|
|
41
|
-
channel: channel2,
|
|
42
|
-
data
|
|
43
|
-
});
|
|
44
35
|
if (!metaMap.has(tag)) {
|
|
45
36
|
queue && pub.publish(queue, JSON.stringify({
|
|
46
|
-
data: new (0,
|
|
37
|
+
data: new (0, _chunk32E425F6js.BadRequestException)(`service "${tag}" doesn't exist`).data,
|
|
47
38
|
error: true,
|
|
48
39
|
id
|
|
49
40
|
}));
|
|
50
41
|
return;
|
|
51
42
|
}
|
|
52
|
-
const
|
|
43
|
+
const meta2 = metaMap.get(tag);
|
|
44
|
+
const context = new (0, _chunk32E425F6js.Context)({
|
|
45
|
+
type: "redis",
|
|
46
|
+
moduleMap,
|
|
47
|
+
redis,
|
|
48
|
+
meta: meta2,
|
|
49
|
+
msg,
|
|
50
|
+
channel: channel2,
|
|
51
|
+
tag,
|
|
52
|
+
data
|
|
53
|
+
});
|
|
54
|
+
const { data: { guards, interceptors, params, name, method, filter }, paramsType } = meta2;
|
|
53
55
|
try {
|
|
54
56
|
await context.useGuard([
|
|
55
57
|
...globalGuards,
|
|
@@ -94,13 +96,13 @@ function bind(redis, channel, { moduleMap, meta }, opts) {
|
|
|
94
96
|
}
|
|
95
97
|
}
|
|
96
98
|
});
|
|
97
|
-
if (
|
|
99
|
+
if (_chunkBDIQWWHNjs.IS_DEV) {
|
|
98
100
|
_optionalChain([globalThis, 'access', _3 => _3.__PS_HMR__, 'optionalAccess', _4 => _4.push, 'call', _5 => _5(async () => {
|
|
99
101
|
handleMeta();
|
|
100
102
|
})]);
|
|
101
103
|
}
|
|
102
104
|
}
|
|
103
|
-
|
|
105
|
+
_chunkBDIQWWHNjs.__name.call(void 0, bind, "bind");
|
|
104
106
|
|
|
105
107
|
// src/rpc/redis/client.ts
|
|
106
108
|
var _crypto = require('crypto');
|
|
@@ -148,7 +150,7 @@ function createClient(redis, queue, controllers) {
|
|
|
148
150
|
}
|
|
149
151
|
return ret;
|
|
150
152
|
}
|
|
151
|
-
|
|
153
|
+
_chunkBDIQWWHNjs.__name.call(void 0, createClient, "createClient");
|
|
152
154
|
|
|
153
155
|
|
|
154
156
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/rpc/redis/bind.ts","../../../src/rpc/redis/client.ts"],"names":["Redis","bind","redis","channel","moduleMap","meta","opts","metaMap","Map","pub","options","globalGuards","globalInterceptors","isAopDepInject","guards","interceptors","
|
|
1
|
+
{"version":3,"sources":["../../../src/rpc/redis/bind.ts","../../../src/rpc/redis/client.ts"],"names":["Redis","bind","redis","channel","moduleMap","meta","opts","metaMap","Map","pub","options","globalGuards","globalInterceptors","handleMeta","isAopDepInject","guards","interceptors","item","data","rpc","method","name","type","includes","set","subscribe","on","msg","JSON","parse","tag","args","id","queue","has","publish","stringify","BadRequestException","error","get","context","Context","params","filter","paramsType","useGuard","cache","useInterceptor","undefined","handleArgs","usePipe","map","key","pipe","pipeOpts","index","i","arg","reflect","funcData","res","usePostInterceptor","e","ret","useFilter","IS_DEV","globalThis","__PS_HMR__","push","randomUUID","EventEmitter","createClient","controllers","sub","uniQueue","emitter","_","emit","Proxy","target","p","Error","isEvent","Promise","resolve","reject","once"],"mappings":"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","sourcesContent":["import Redis from 'ioredis'\nimport type { Factory } from '../../core'\nimport type { Meta } from '../../meta'\nimport { BadRequestException } from '../../exception'\nimport { Context, isAopDepInject } from '../../context'\nimport { IS_DEV } from '../../common'\nimport { P } from '../../types'\n\nexport interface Options {\n globalGuards?: string[]\n globalInterceptors?: string[]\n}\nexport interface RedisCtx extends P.BaseContext{\n type: 'redis'\n redis: Redis\n msg: string\n channel: string\n data: any\n\n}\n\n\nexport function bind(redis: Redis, channel: string, { moduleMap, meta }: Awaited<ReturnType<typeof Factory>>, opts?: Options) {\n const metaMap = new Map<string, Meta>()\n\n const pub = new Redis(redis.options)\n const { globalGuards = [], globalInterceptors = [] } = opts || {}\n\n\n function handleMeta() {\n isAopDepInject(meta, {\n guards: globalGuards,\n interceptors: globalInterceptors,\n })\n\n for (const item of meta) {\n const { data: { rpc, method, name } } = item\n\n if (rpc?.type && rpc.type.includes('mq'))\n metaMap.set(`${name}-${method}`, item)\n }\n }\n\n handleMeta()\n\n redis.subscribe(channel)\n\n redis.on('message', async (channel, msg) => {\n if (msg) {\n const data = JSON.parse(msg)\n const { tag, args, id, queue } = data\n if (!metaMap.has(tag)) {\n queue && pub.publish(queue, JSON.stringify({\n data: new BadRequestException(`service \"${tag}\" doesn't exist`).data,\n error: true,\n id,\n }))\n return\n }\n\n const meta= metaMap.get(tag)!\n const context = new Context( {\n type: 'redis',\n moduleMap,\n redis,\n meta,\n msg,\n channel,\n tag,\n data,\n })\n \n const {\n data: {\n guards, interceptors, params, name, method, filter,\n },\n paramsType,\n } = meta\n try {\n await context.useGuard([...globalGuards, ...guards])\n const cache = await context.useInterceptor([...globalInterceptors, ...interceptors])\n if (cache !== undefined) {\n if (queue)\n pub.publish(queue, JSON.stringify({ data: cache, id }))\n\n return\n }\n\n const handleArgs = await context.usePipe(params.map(({ type, key, pipe, pipeOpts, index }, i) => {\n return { arg: args[i], pipe, pipeOpts, key, type, index, reflect: paramsType[index] }\n }))\n\n const funcData = await moduleMap.get(name)[method](...handleArgs)\n const res = await context.usePostInterceptor(funcData)\n\n queue && pub.publish(queue, JSON.stringify({ data: res, id }))\n }\n catch (e) {\n const ret = await context.useFilter(e, filter)\n queue && pub.publish(queue, JSON.stringify({\n data: ret,\n error: true,\n id,\n }))\n }\n }\n })\n\n if (IS_DEV) {\n globalThis.__PS_HMR__?.push(async () => {\n handleMeta()\n })\n }\n}\n","import { randomUUID } from 'crypto'\nimport EventEmitter from 'events'\nimport Redis from 'ioredis'\nimport type { ToControllerMap } from '../../types'\n\nexport function createClient<S extends Record<string, any>>(redis: Redis, queue: string, controllers: S): ToControllerMap<S> {\n const ret = {} as any\n const sub = new Redis(redis.options)\n const uniQueue = randomUUID()\n\n const emitter = new EventEmitter()\n sub.subscribe(uniQueue)\n\n sub.on('message', (_, msg) => {\n const { data, id, error } = JSON.parse(msg)\n emitter.emit(id, data, error)\n })\n\n for (const i in controllers) {\n ret[i] = new Proxy(new controllers[i](), {\n get(target, p: string) {\n return (...args: any) => {\n const id = randomUUID()\n if (typeof target[p] !== 'function')\n throw new Error(`\"${p}\" in \"${i}\" is not an exposed rpc `)\n\n const { tag, rpc, isEvent } = target[p]()\n if (!rpc.includes('redis'))\n throw new Error(`\"${p}\" in \"${i}\" doesn't support redis`)\n\n redis.publish(queue, JSON.stringify({\n args,\n id,\n tag,\n queue: isEvent ? undefined : uniQueue,\n\n }))\n if (isEvent)\n return null\n\n return new Promise((resolve, reject) => {\n emitter.once(id, (data, error) => {\n if (error)\n reject(data)\n\n else\n resolve(data)\n })\n })\n }\n },\n })\n }\n\n return ret\n}\n"]}
|
package/dist/rpc/redis/index.mjs
CHANGED
|
@@ -2,11 +2,11 @@ import {
|
|
|
2
2
|
BadRequestException,
|
|
3
3
|
Context,
|
|
4
4
|
isAopDepInject
|
|
5
|
-
} from "../../chunk-
|
|
5
|
+
} from "../../chunk-Z6LSJTOF.mjs";
|
|
6
6
|
import {
|
|
7
7
|
IS_DEV,
|
|
8
8
|
__name
|
|
9
|
-
} from "../../chunk-
|
|
9
|
+
} from "../../chunk-5KOB2WHH.mjs";
|
|
10
10
|
|
|
11
11
|
// src/rpc/redis/bind.ts
|
|
12
12
|
import Redis from "ioredis";
|
|
@@ -14,11 +14,11 @@ function bind(redis, channel, { moduleMap, meta }, opts) {
|
|
|
14
14
|
const metaMap = /* @__PURE__ */ new Map();
|
|
15
15
|
const pub = new Redis(redis.options);
|
|
16
16
|
const { globalGuards = [], globalInterceptors = [] } = opts || {};
|
|
17
|
-
isAopDepInject(meta, {
|
|
18
|
-
guards: globalGuards,
|
|
19
|
-
interceptors: globalInterceptors
|
|
20
|
-
});
|
|
21
17
|
function handleMeta() {
|
|
18
|
+
isAopDepInject(meta, {
|
|
19
|
+
guards: globalGuards,
|
|
20
|
+
interceptors: globalInterceptors
|
|
21
|
+
});
|
|
22
22
|
for (const item of meta) {
|
|
23
23
|
const { data: { rpc, method, name } } = item;
|
|
24
24
|
if (rpc?.type && rpc.type.includes("mq"))
|
|
@@ -32,15 +32,6 @@ function bind(redis, channel, { moduleMap, meta }, opts) {
|
|
|
32
32
|
if (msg) {
|
|
33
33
|
const data = JSON.parse(msg);
|
|
34
34
|
const { tag, args, id, queue } = data;
|
|
35
|
-
const context = new Context(tag, {
|
|
36
|
-
type: "redis",
|
|
37
|
-
moduleMap,
|
|
38
|
-
redis,
|
|
39
|
-
meta: metaMap.get(tag),
|
|
40
|
-
msg,
|
|
41
|
-
channel: channel2,
|
|
42
|
-
data
|
|
43
|
-
});
|
|
44
35
|
if (!metaMap.has(tag)) {
|
|
45
36
|
queue && pub.publish(queue, JSON.stringify({
|
|
46
37
|
data: new BadRequestException(`service "${tag}" doesn't exist`).data,
|
|
@@ -49,7 +40,18 @@ function bind(redis, channel, { moduleMap, meta }, opts) {
|
|
|
49
40
|
}));
|
|
50
41
|
return;
|
|
51
42
|
}
|
|
52
|
-
const
|
|
43
|
+
const meta2 = metaMap.get(tag);
|
|
44
|
+
const context = new Context({
|
|
45
|
+
type: "redis",
|
|
46
|
+
moduleMap,
|
|
47
|
+
redis,
|
|
48
|
+
meta: meta2,
|
|
49
|
+
msg,
|
|
50
|
+
channel: channel2,
|
|
51
|
+
tag,
|
|
52
|
+
data
|
|
53
|
+
});
|
|
54
|
+
const { data: { guards, interceptors, params, name, method, filter }, paramsType } = meta2;
|
|
53
55
|
try {
|
|
54
56
|
await context.useGuard([
|
|
55
57
|
...globalGuards,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/rpc/redis/bind.ts","../../../src/rpc/redis/client.ts"],"sourcesContent":["import Redis from 'ioredis'\nimport type { Factory } from '../../core'\nimport type { Meta } from '../../meta'\nimport { BadRequestException } from '../../exception'\nimport { Context, isAopDepInject } from '../../context'\nimport { IS_DEV } from '../../common'\n\nexport interface Options {\n globalGuards?: string[]\n globalInterceptors?: string[]\n
|
|
1
|
+
{"version":3,"sources":["../../../src/rpc/redis/bind.ts","../../../src/rpc/redis/client.ts"],"sourcesContent":["import Redis from 'ioredis'\nimport type { Factory } from '../../core'\nimport type { Meta } from '../../meta'\nimport { BadRequestException } from '../../exception'\nimport { Context, isAopDepInject } from '../../context'\nimport { IS_DEV } from '../../common'\nimport { P } from '../../types'\n\nexport interface Options {\n globalGuards?: string[]\n globalInterceptors?: string[]\n}\nexport interface RedisCtx extends P.BaseContext{\n type: 'redis'\n redis: Redis\n msg: string\n channel: string\n data: any\n\n}\n\n\nexport function bind(redis: Redis, channel: string, { moduleMap, meta }: Awaited<ReturnType<typeof Factory>>, opts?: Options) {\n const metaMap = new Map<string, Meta>()\n\n const pub = new Redis(redis.options)\n const { globalGuards = [], globalInterceptors = [] } = opts || {}\n\n\n function handleMeta() {\n isAopDepInject(meta, {\n guards: globalGuards,\n interceptors: globalInterceptors,\n })\n\n for (const item of meta) {\n const { data: { rpc, method, name } } = item\n\n if (rpc?.type && rpc.type.includes('mq'))\n metaMap.set(`${name}-${method}`, item)\n }\n }\n\n handleMeta()\n\n redis.subscribe(channel)\n\n redis.on('message', async (channel, msg) => {\n if (msg) {\n const data = JSON.parse(msg)\n const { tag, args, id, queue } = data\n if (!metaMap.has(tag)) {\n queue && pub.publish(queue, JSON.stringify({\n data: new BadRequestException(`service \"${tag}\" doesn't exist`).data,\n error: true,\n id,\n }))\n return\n }\n\n const meta= metaMap.get(tag)!\n const context = new Context( {\n type: 'redis',\n moduleMap,\n redis,\n meta,\n msg,\n channel,\n tag,\n data,\n })\n \n const {\n data: {\n guards, interceptors, params, name, method, filter,\n },\n paramsType,\n } = meta\n try {\n await context.useGuard([...globalGuards, ...guards])\n const cache = await context.useInterceptor([...globalInterceptors, ...interceptors])\n if (cache !== undefined) {\n if (queue)\n pub.publish(queue, JSON.stringify({ data: cache, id }))\n\n return\n }\n\n const handleArgs = await context.usePipe(params.map(({ type, key, pipe, pipeOpts, index }, i) => {\n return { arg: args[i], pipe, pipeOpts, key, type, index, reflect: paramsType[index] }\n }))\n\n const funcData = await moduleMap.get(name)[method](...handleArgs)\n const res = await context.usePostInterceptor(funcData)\n\n queue && pub.publish(queue, JSON.stringify({ data: res, id }))\n }\n catch (e) {\n const ret = await context.useFilter(e, filter)\n queue && pub.publish(queue, JSON.stringify({\n data: ret,\n error: true,\n id,\n }))\n }\n }\n })\n\n if (IS_DEV) {\n globalThis.__PS_HMR__?.push(async () => {\n handleMeta()\n })\n }\n}\n","import { randomUUID } from 'crypto'\nimport EventEmitter from 'events'\nimport Redis from 'ioredis'\nimport type { ToControllerMap } from '../../types'\n\nexport function createClient<S extends Record<string, any>>(redis: Redis, queue: string, controllers: S): ToControllerMap<S> {\n const ret = {} as any\n const sub = new Redis(redis.options)\n const uniQueue = randomUUID()\n\n const emitter = new EventEmitter()\n sub.subscribe(uniQueue)\n\n sub.on('message', (_, msg) => {\n const { data, id, error } = JSON.parse(msg)\n emitter.emit(id, data, error)\n })\n\n for (const i in controllers) {\n ret[i] = new Proxy(new controllers[i](), {\n get(target, p: string) {\n return (...args: any) => {\n const id = randomUUID()\n if (typeof target[p] !== 'function')\n throw new Error(`\"${p}\" in \"${i}\" is not an exposed rpc `)\n\n const { tag, rpc, isEvent } = target[p]()\n if (!rpc.includes('redis'))\n throw new Error(`\"${p}\" in \"${i}\" doesn't support redis`)\n\n redis.publish(queue, JSON.stringify({\n args,\n id,\n tag,\n queue: isEvent ? undefined : uniQueue,\n\n }))\n if (isEvent)\n return null\n\n return new Promise((resolve, reject) => {\n emitter.once(id, (data, error) => {\n if (error)\n reject(data)\n\n else\n resolve(data)\n })\n })\n }\n },\n })\n }\n\n return ret\n}\n"],"mappings":"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","names":["Redis","bind","redis","channel","moduleMap","meta","opts","metaMap","Map","pub","Redis","options","globalGuards","globalInterceptors","handleMeta","isAopDepInject","guards","interceptors","item","data","rpc","method","name","type","includes","set","subscribe","on","msg","JSON","parse","tag","args","id","queue","has","publish","stringify","BadRequestException","error","get","context","Context","params","filter","paramsType","useGuard","cache","useInterceptor","undefined","handleArgs","usePipe","map","key","pipe","pipeOpts","index","i","arg","reflect","funcData","res","usePostInterceptor","e","ret","useFilter","IS_DEV","globalThis","__PS_HMR__","push","randomUUID","EventEmitter","Redis","createClient","redis","queue","controllers","ret","sub","Redis","options","uniQueue","randomUUID","emitter","EventEmitter","subscribe","on","_","msg","data","id","error","JSON","parse","emit","i","Proxy","get","target","p","args","Error","tag","rpc","isEvent","includes","publish","stringify","undefined","Promise","resolve","reject","once"]}
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
import { Request, Response, Router } from 'express';
|
|
2
|
-
import {
|
|
2
|
+
import { P, F as Factory } from '../../core-d080d872.js';
|
|
3
3
|
import 'phecda-core';
|
|
4
4
|
|
|
5
|
-
interface ExpressCtx {
|
|
5
|
+
interface ExpressCtx extends P.BaseContext {
|
|
6
6
|
type: 'express';
|
|
7
7
|
request: Request;
|
|
8
8
|
response: Response;
|
|
9
|
-
meta: Meta;
|
|
10
|
-
moduleMap: Record<string, any>;
|
|
11
9
|
parallel: boolean;
|
|
12
|
-
[key: string]: any;
|
|
13
10
|
}
|
|
14
11
|
interface Options {
|
|
15
12
|
route?: string;
|