@zdavison/nestjs-rpc-toolkit 0.0.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/dist/bin/init.d.ts +18 -0
- package/dist/bin/init.d.ts.map +1 -0
- package/dist/bin/init.js +208 -0
- package/dist/bin/init.js.map +1 -0
- package/dist/decorators/rpc-method.decorator.d.ts +2 -0
- package/dist/decorators/rpc-method.decorator.d.ts.map +1 -0
- package/dist/decorators/rpc-method.decorator.js +50 -0
- package/dist/decorators/rpc-method.decorator.js.map +1 -0
- package/dist/generators/rpc-types-generator.d.ts +34 -0
- package/dist/generators/rpc-types-generator.d.ts.map +1 -0
- package/dist/generators/rpc-types-generator.js +281 -0
- package/dist/generators/rpc-types-generator.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/index.d.ts +20 -0
- package/dist/interfaces/index.d.ts.map +1 -0
- package/dist/interfaces/index.js +3 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/module-base/index.d.ts +15 -0
- package/dist/module-base/index.d.ts.map +1 -0
- package/dist/module-base/index.js +38 -0
- package/dist/module-base/index.js.map +1 -0
- package/dist/rpc/rpc-registry.d.ts +21 -0
- package/dist/rpc/rpc-registry.d.ts.map +1 -0
- package/dist/rpc/rpc-registry.js +30 -0
- package/dist/rpc/rpc-registry.js.map +1 -0
- package/dist/rpc/typed-message-bus.d.ts +25 -0
- package/dist/rpc/typed-message-bus.d.ts.map +1 -0
- package/dist/rpc/typed-message-bus.js +37 -0
- package/dist/rpc/typed-message-bus.js.map +1 -0
- package/dist/transport/in-memory.client.d.ts +9 -0
- package/dist/transport/in-memory.client.d.ts.map +1 -0
- package/dist/transport/in-memory.client.js +34 -0
- package/dist/transport/in-memory.client.js.map +1 -0
- package/dist/transport/in-memory.transport.d.ts +12 -0
- package/dist/transport/in-memory.transport.d.ts.map +1 -0
- package/dist/transport/in-memory.transport.js +47 -0
- package/dist/transport/in-memory.transport.js.map +1 -0
- package/dist/transport/index.d.ts +3 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +19 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +40 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./interfaces"), exports);
|
|
18
|
+
__exportStar(require("./module-base"), exports);
|
|
19
|
+
__exportStar(require("./decorators/rpc-method.decorator"), exports);
|
|
20
|
+
__exportStar(require("./rpc/typed-message-bus"), exports);
|
|
21
|
+
__exportStar(require("./rpc/rpc-registry"), exports);
|
|
22
|
+
__exportStar(require("./transport"), exports);
|
|
23
|
+
__exportStar(require("./generators/rpc-types-generator"), exports);
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,gDAA8B;AAC9B,oEAAkD;AAClD,0DAAwC;AACxC,qDAAmC;AACnC,8CAA4B;AAC5B,mEAAiD"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface ModularModule {
|
|
2
|
+
name: string;
|
|
3
|
+
version: string;
|
|
4
|
+
dependencies?: string[];
|
|
5
|
+
}
|
|
6
|
+
export interface ModuleEvent<T = any> {
|
|
7
|
+
moduleId: string;
|
|
8
|
+
eventName: string;
|
|
9
|
+
payload: T;
|
|
10
|
+
timestamp: Date;
|
|
11
|
+
}
|
|
12
|
+
export interface ModuleMessage<T = any> {
|
|
13
|
+
id: string;
|
|
14
|
+
from: string;
|
|
15
|
+
to: string;
|
|
16
|
+
type: string;
|
|
17
|
+
payload: T;
|
|
18
|
+
timestamp: Date;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,GAAG;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,IAAI,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DynamicModule, Type } from '@nestjs/common';
|
|
2
|
+
export interface ModularModuleMetadata {
|
|
3
|
+
name: string;
|
|
4
|
+
version: string;
|
|
5
|
+
dependencies?: string[];
|
|
6
|
+
}
|
|
7
|
+
export declare function ModularModuleDecorator(metadata: ModularModuleMetadata): ClassDecorator;
|
|
8
|
+
export interface ModularModuleOptions {
|
|
9
|
+
imports?: Array<Type<any> | DynamicModule>;
|
|
10
|
+
providers?: any[];
|
|
11
|
+
exports?: any[];
|
|
12
|
+
controllers?: Type<any>[];
|
|
13
|
+
}
|
|
14
|
+
export declare function createModularModule(name: string, version: string, options?: ModularModuleOptions): DynamicModule;
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/module-base/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAU,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE7D,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,cAAc,CAKtF;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;CAC3B;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,oBAAyB,GACjC,aAAa,CAiBf"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.ModularModuleDecorator = ModularModuleDecorator;
|
|
10
|
+
exports.createModularModule = createModularModule;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
function ModularModuleDecorator(metadata) {
|
|
13
|
+
return (target) => {
|
|
14
|
+
Reflect.defineMetadata('modular:module', metadata, target);
|
|
15
|
+
return target;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function createModularModule(name, version, options = {}) {
|
|
19
|
+
let ModularModuleClass = class ModularModuleClass {
|
|
20
|
+
};
|
|
21
|
+
ModularModuleClass = __decorate([
|
|
22
|
+
(0, common_1.Module)({})
|
|
23
|
+
], ModularModuleClass);
|
|
24
|
+
return {
|
|
25
|
+
module: ModularModuleClass,
|
|
26
|
+
imports: options.imports || [],
|
|
27
|
+
providers: [
|
|
28
|
+
...(options.providers || []),
|
|
29
|
+
{
|
|
30
|
+
provide: 'MODULE_INFO',
|
|
31
|
+
useValue: { name, version },
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
exports: options.exports || [],
|
|
35
|
+
controllers: options.controllers || [],
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/module-base/index.ts"],"names":[],"mappings":";;;;;;;;AAQA,wDAKC;AASD,kDAqBC;AA3CD,2CAA6D;AAQ7D,SAAgB,sBAAsB,CAAC,QAA+B;IACpE,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,OAAO,CAAC,cAAc,CAAC,gBAAgB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC3D,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AASD,SAAgB,mBAAmB,CACjC,IAAY,EACZ,OAAe,EACf,UAAgC,EAAE;IAGlC,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;KAAG,CAAA;IAArB,kBAAkB;QADvB,IAAA,eAAM,EAAC,EAAE,CAAC;OACL,kBAAkB,CAAG;IAE3B,OAAO;QACL,MAAM,EAAE,kBAAkB;QAC1B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;QAC9B,SAAS,EAAE;YACT,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;YAC5B;gBACE,OAAO,EAAE,aAAa;gBACtB,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;aAC5B;SACF;QACD,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;QAC9B,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;KACvC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface RpcMethodMetadata {
|
|
2
|
+
pattern: string;
|
|
3
|
+
module: string;
|
|
4
|
+
methodName: string;
|
|
5
|
+
paramNames: string[];
|
|
6
|
+
returnType?: string;
|
|
7
|
+
target: any;
|
|
8
|
+
propertyKey: string;
|
|
9
|
+
}
|
|
10
|
+
declare class RpcRegistry {
|
|
11
|
+
private methods;
|
|
12
|
+
private modulesMethods;
|
|
13
|
+
registerMethod(metadata: RpcMethodMetadata): void;
|
|
14
|
+
getMethod(pattern: string): RpcMethodMetadata | undefined;
|
|
15
|
+
getModuleMethods(module: string): RpcMethodMetadata[];
|
|
16
|
+
getAllMethods(): RpcMethodMetadata[];
|
|
17
|
+
getMethodsByModule(): Map<string, RpcMethodMetadata[]>;
|
|
18
|
+
}
|
|
19
|
+
export declare const rpcRegistry: RpcRegistry;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=rpc-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc-registry.d.ts","sourceRoot":"","sources":["../../src/rpc/rpc-registry.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,GAAG,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,cAAM,WAAW;IACf,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,cAAc,CAA0C;IAEhE,cAAc,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IASjD,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAIzD,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,EAAE;IAIrD,aAAa,IAAI,iBAAiB,EAAE;IAIpC,kBAAkB,IAAI,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAGvD;AAED,eAAO,MAAM,WAAW,aAAoB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.rpcRegistry = void 0;
|
|
4
|
+
class RpcRegistry {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.methods = new Map();
|
|
7
|
+
this.modulesMethods = new Map();
|
|
8
|
+
}
|
|
9
|
+
registerMethod(metadata) {
|
|
10
|
+
this.methods.set(metadata.pattern, metadata);
|
|
11
|
+
if (!this.modulesMethods.has(metadata.module)) {
|
|
12
|
+
this.modulesMethods.set(metadata.module, []);
|
|
13
|
+
}
|
|
14
|
+
this.modulesMethods.get(metadata.module).push(metadata);
|
|
15
|
+
}
|
|
16
|
+
getMethod(pattern) {
|
|
17
|
+
return this.methods.get(pattern);
|
|
18
|
+
}
|
|
19
|
+
getModuleMethods(module) {
|
|
20
|
+
return this.modulesMethods.get(module) || [];
|
|
21
|
+
}
|
|
22
|
+
getAllMethods() {
|
|
23
|
+
return Array.from(this.methods.values());
|
|
24
|
+
}
|
|
25
|
+
getMethodsByModule() {
|
|
26
|
+
return new Map(this.modulesMethods);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.rpcRegistry = new RpcRegistry();
|
|
30
|
+
//# sourceMappingURL=rpc-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc-registry.js","sourceRoot":"","sources":["../../src/rpc/rpc-registry.ts"],"names":[],"mappings":";;;AAUA,MAAM,WAAW;IAAjB;QACU,YAAO,GAAG,IAAI,GAAG,EAA6B,CAAC;QAC/C,mBAAc,GAAG,IAAI,GAAG,EAA+B,CAAC;IA0BlE,CAAC;IAxBC,cAAc,CAAC,QAA2B;QACxC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAE7C,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,SAAS,CAAC,OAAe;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,gBAAgB,CAAC,MAAc;QAC7B,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC/C,CAAC;IAED,aAAa;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACtC,CAAC;CACF;AAEY,QAAA,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ClientProxy } from '@nestjs/microservices';
|
|
2
|
+
export interface RpcMessage<TData = any, TReturns = any> {
|
|
3
|
+
pattern: string;
|
|
4
|
+
data: TData;
|
|
5
|
+
_returns?: TReturns;
|
|
6
|
+
}
|
|
7
|
+
export interface IMessageBus<TRpcMethods = any> {
|
|
8
|
+
send<TPattern extends keyof TRpcMethods>(pattern: TPattern, data: TRpcMethods[TPattern] extends {
|
|
9
|
+
params: infer P;
|
|
10
|
+
} ? P : any): Promise<TRpcMethods[TPattern] extends {
|
|
11
|
+
returns: infer R;
|
|
12
|
+
} ? R : any>;
|
|
13
|
+
emit(pattern: string, data: any): void;
|
|
14
|
+
}
|
|
15
|
+
export declare class MessageBus<TRpcMethods = any> implements IMessageBus<TRpcMethods> {
|
|
16
|
+
private readonly client;
|
|
17
|
+
constructor(client: ClientProxy);
|
|
18
|
+
send<TPattern extends keyof TRpcMethods>(pattern: TPattern, data: TRpcMethods[TPattern] extends {
|
|
19
|
+
params: infer P;
|
|
20
|
+
} ? P : any): Promise<TRpcMethods[TPattern] extends {
|
|
21
|
+
returns: infer R;
|
|
22
|
+
} ? R : any>;
|
|
23
|
+
emit(pattern: string, data: any): void;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=typed-message-bus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typed-message-bus.d.ts","sourceRoot":"","sources":["../../src/rpc/typed-message-bus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,MAAM,WAAW,UAAU,CAAC,KAAK,GAAG,GAAG,EAAE,QAAQ,GAAG,GAAG;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,KAAK,CAAC;IAEZ,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,WAAW,WAAW,CAAC,WAAW,GAAG,GAAG;IAO5C,IAAI,CAAC,QAAQ,SAAS,MAAM,WAAW,EACrC,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,SAAS;QAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,GAAG,GAChE,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS;QAAE,OAAO,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;IAOzE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;CACxC;AAED,qBACa,UAAU,CAAC,WAAW,GAAG,GAAG,CAAE,YAAW,WAAW,CAAC,WAAW,CAAC;IAChE,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,WAAW;IAE1C,IAAI,CAAC,QAAQ,SAAS,MAAM,WAAW,EAC3C,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,SAAS;QAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,GAAG,GAChE,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS;QAAE,OAAO,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,GAAG,CAAC;IAUxE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;CAGvC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.MessageBus = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const microservices_1 = require("@nestjs/microservices");
|
|
15
|
+
let MessageBus = class MessageBus {
|
|
16
|
+
constructor(client) {
|
|
17
|
+
this.client = client;
|
|
18
|
+
}
|
|
19
|
+
async send(pattern, data) {
|
|
20
|
+
try {
|
|
21
|
+
const result = await this.client.send(pattern, data).toPromise();
|
|
22
|
+
return result;
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
throw new Error(`RPC call to '${String(pattern)}' failed: ${error.message}`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
emit(pattern, data) {
|
|
29
|
+
this.client.emit(pattern, data);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
exports.MessageBus = MessageBus;
|
|
33
|
+
exports.MessageBus = MessageBus = __decorate([
|
|
34
|
+
(0, common_1.Injectable)(),
|
|
35
|
+
__metadata("design:paramtypes", [microservices_1.ClientProxy])
|
|
36
|
+
], MessageBus);
|
|
37
|
+
//# sourceMappingURL=typed-message-bus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typed-message-bus.js","sourceRoot":"","sources":["../../src/rpc/typed-message-bus.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,yDAAoD;AA+B7C,IAAM,UAAU,GAAhB,MAAM,UAAU;IACrB,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD,KAAK,CAAC,IAAI,CACR,OAAiB,EACjB,IAAiE;QAEjE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YACjE,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAEf,MAAM,IAAI,KAAK,CAAC,gBAAgB,MAAM,CAAC,OAAO,CAAC,aAAa,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,IAAS;QAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;CACF,CAAA;AAnBY,gCAAU;qBAAV,UAAU;IADtB,IAAA,mBAAU,GAAE;qCAE0B,2BAAW;GADrC,UAAU,CAmBtB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ClientProxy, ReadPacket, WritePacket } from '@nestjs/microservices';
|
|
2
|
+
export declare class InMemoryClientProxy extends ClientProxy {
|
|
3
|
+
private transport;
|
|
4
|
+
connect(): Promise<void>;
|
|
5
|
+
close(): void;
|
|
6
|
+
protected dispatchEvent(packet: ReadPacket): Promise<any>;
|
|
7
|
+
protected publish(packet: ReadPacket, callback: (packet: WritePacket) => void): () => void;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=in-memory.client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-memory.client.d.ts","sourceRoot":"","sources":["../../src/transport/in-memory.client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAG7E,qBAAa,mBAAoB,SAAQ,WAAW;IAClD,OAAO,CAAC,SAAS,CAA2C;IAEtD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,KAAK,IAAI,IAAI;cAIG,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAM/D,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,GAAG,MAAM,IAAI;CAa3F"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InMemoryClientProxy = void 0;
|
|
4
|
+
const microservices_1 = require("@nestjs/microservices");
|
|
5
|
+
const in_memory_transport_1 = require("./in-memory.transport");
|
|
6
|
+
class InMemoryClientProxy extends microservices_1.ClientProxy {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this.transport = in_memory_transport_1.InMemoryTransportStrategy.getInstance();
|
|
10
|
+
}
|
|
11
|
+
async connect() {
|
|
12
|
+
return Promise.resolve();
|
|
13
|
+
}
|
|
14
|
+
close() {
|
|
15
|
+
}
|
|
16
|
+
async dispatchEvent(packet) {
|
|
17
|
+
const { pattern, data } = packet;
|
|
18
|
+
this.transport.emitEvent(pattern, data);
|
|
19
|
+
return Promise.resolve();
|
|
20
|
+
}
|
|
21
|
+
publish(packet, callback) {
|
|
22
|
+
const { pattern, data } = packet;
|
|
23
|
+
this.transport.sendMessage(pattern, data)
|
|
24
|
+
.then(result => {
|
|
25
|
+
callback({ response: result });
|
|
26
|
+
})
|
|
27
|
+
.catch(error => {
|
|
28
|
+
callback({ err: error });
|
|
29
|
+
});
|
|
30
|
+
return () => { };
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.InMemoryClientProxy = InMemoryClientProxy;
|
|
34
|
+
//# sourceMappingURL=in-memory.client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-memory.client.js","sourceRoot":"","sources":["../../src/transport/in-memory.client.ts"],"names":[],"mappings":";;;AAAA,yDAA6E;AAC7E,+DAAkE;AAElE,MAAa,mBAAoB,SAAQ,2BAAW;IAApD;;QACU,cAAS,GAAG,+CAAyB,CAAC,WAAW,EAAE,CAAC;IA6B9D,CAAC;IA3BC,KAAK,CAAC,OAAO;QACX,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK;IAEL,CAAC;IAES,KAAK,CAAC,aAAa,CAAC,MAAkB;QAC9C,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QACjC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAiB,EAAE,IAAI,CAAC,CAAC;QAClD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAES,OAAO,CAAC,MAAkB,EAAE,QAAuC;QAC3E,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QAEjC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAiB,EAAE,IAAI,CAAC;aAChD,IAAI,CAAC,MAAM,CAAC,EAAE;YACb,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACjC,CAAC,CAAC;aACD,KAAK,CAAC,KAAK,CAAC,EAAE;YACb,QAAQ,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEL,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAClB,CAAC;CACF;AA9BD,kDA8BC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CustomTransportStrategy, Server, ReadPacket, BaseRpcContext } from '@nestjs/microservices';
|
|
2
|
+
export declare class InMemoryTransportStrategy extends Server implements CustomTransportStrategy {
|
|
3
|
+
private static instance;
|
|
4
|
+
static getInstance(): InMemoryTransportStrategy;
|
|
5
|
+
listen(callback: () => void): void;
|
|
6
|
+
close(): void;
|
|
7
|
+
handleMessage(pattern: string, packet: ReadPacket, context: BaseRpcContext): Promise<any>;
|
|
8
|
+
handleEvent(pattern: string, packet: ReadPacket, context: BaseRpcContext): Promise<any>;
|
|
9
|
+
sendMessage(pattern: string, data: any): Promise<any>;
|
|
10
|
+
emitEvent(pattern: string, data: any): void;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=in-memory.transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-memory.transport.d.ts","sourceRoot":"","sources":["../../src/transport/in-memory.transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEpG,qBAAa,yBAA0B,SAAQ,MAAO,YAAW,uBAAuB;IACtF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA4B;IAEnD,MAAM,CAAC,WAAW,IAAI,yBAAyB;IAO/C,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAIlC,KAAK,IAAI,IAAI;IAIP,aAAa,CACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,GAAG,CAAC;IAST,WAAW,CACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,GAAG,CAAC;IAYT,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAO3D,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;CAK5C"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InMemoryTransportStrategy = void 0;
|
|
4
|
+
const microservices_1 = require("@nestjs/microservices");
|
|
5
|
+
class InMemoryTransportStrategy extends microservices_1.Server {
|
|
6
|
+
static getInstance() {
|
|
7
|
+
if (!InMemoryTransportStrategy.instance) {
|
|
8
|
+
InMemoryTransportStrategy.instance = new InMemoryTransportStrategy();
|
|
9
|
+
}
|
|
10
|
+
return InMemoryTransportStrategy.instance;
|
|
11
|
+
}
|
|
12
|
+
listen(callback) {
|
|
13
|
+
callback();
|
|
14
|
+
}
|
|
15
|
+
close() {
|
|
16
|
+
}
|
|
17
|
+
async handleMessage(pattern, packet, context) {
|
|
18
|
+
const handler = this.getHandlerByPattern(pattern);
|
|
19
|
+
if (!handler) {
|
|
20
|
+
throw new Error(`No handler registered for pattern: ${pattern}`);
|
|
21
|
+
}
|
|
22
|
+
return await handler(packet.data, context);
|
|
23
|
+
}
|
|
24
|
+
async handleEvent(pattern, packet, context) {
|
|
25
|
+
const handler = this.getHandlerByPattern(pattern);
|
|
26
|
+
if (handler) {
|
|
27
|
+
try {
|
|
28
|
+
await handler(packet.data, context);
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
console.error(`Error in event handler for ${pattern}:`, error);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
async sendMessage(pattern, data) {
|
|
36
|
+
const packet = { pattern, data };
|
|
37
|
+
const context = new microservices_1.BaseRpcContext([]);
|
|
38
|
+
return await this.handleMessage(pattern, packet, context);
|
|
39
|
+
}
|
|
40
|
+
emitEvent(pattern, data) {
|
|
41
|
+
const packet = { pattern, data };
|
|
42
|
+
const context = new microservices_1.BaseRpcContext([]);
|
|
43
|
+
this.handleEvent(pattern, packet, context);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.InMemoryTransportStrategy = InMemoryTransportStrategy;
|
|
47
|
+
//# sourceMappingURL=in-memory.transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-memory.transport.js","sourceRoot":"","sources":["../../src/transport/in-memory.transport.ts"],"names":[],"mappings":";;;AAAA,yDAAoG;AAEpG,MAAa,yBAA0B,SAAQ,sBAAM;IAGnD,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,CAAC;YACxC,yBAAyB,CAAC,QAAQ,GAAG,IAAI,yBAAyB,EAAE,CAAC;QACvE,CAAC;QACD,OAAO,yBAAyB,CAAC,QAAQ,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,QAAoB;QACzB,QAAQ,EAAE,CAAC;IACb,CAAC;IAED,KAAK;IAEL,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,OAAe,EACf,MAAkB,EAClB,OAAuB;QAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,WAAW,CACf,OAAe,EACf,MAAkB,EAClB,OAAuB;QAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IAGD,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,IAAS;QAC1C,MAAM,MAAM,GAAe,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,8BAAc,CAAC,EAAE,CAAC,CAAC;QACvC,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAGD,SAAS,CAAC,OAAe,EAAE,IAAS;QAClC,MAAM,MAAM,GAAe,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,8BAAc,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF;AA3DD,8DA2DC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./in-memory.transport"), exports);
|
|
18
|
+
__exportStar(require("./in-memory.client"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,qDAAmC"}
|