@zdavison/nestjs-rpc-toolkit 0.0.12 → 0.0.14

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.
Files changed (37) hide show
  1. package/dist/bin/bootstrap.d.ts +19 -0
  2. package/dist/bin/bootstrap.d.ts.map +1 -0
  3. package/dist/bin/bootstrap.js +275 -0
  4. package/dist/bin/bootstrap.js.map +1 -0
  5. package/dist/bin/init.js +0 -0
  6. package/dist/decorators/rpc-controller.decorator.d.ts.map +1 -1
  7. package/dist/decorators/rpc-controller.decorator.js +21 -0
  8. package/dist/decorators/rpc-controller.decorator.js.map +1 -1
  9. package/dist/decorators/rpc-method.decorator.d.ts +2 -2
  10. package/dist/decorators/rpc-method.decorator.d.ts.map +1 -1
  11. package/dist/decorators/rpc-method.decorator.js +50 -26
  12. package/dist/decorators/rpc-method.decorator.js.map +1 -1
  13. package/dist/generators/rpc-types-generator.d.ts +3 -0
  14. package/dist/generators/rpc-types-generator.d.ts.map +1 -1
  15. package/dist/generators/rpc-types-generator.js +230 -20
  16. package/dist/generators/rpc-types-generator.js.map +1 -1
  17. package/dist/index.d.ts +1 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +1 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/rpc/rpc-client.d.ts.map +1 -1
  22. package/dist/rpc/rpc-client.js +3 -1
  23. package/dist/rpc/rpc-client.js.map +1 -1
  24. package/dist/rpc/rpc-registry.d.ts.map +1 -1
  25. package/dist/rpc/rpc-registry.js +11 -1
  26. package/dist/rpc/rpc-registry.js.map +1 -1
  27. package/dist/transport/in-process.client.d.ts +2 -0
  28. package/dist/transport/in-process.client.d.ts.map +1 -1
  29. package/dist/transport/in-process.client.js +5 -0
  30. package/dist/transport/in-process.client.js.map +1 -1
  31. package/dist/transport/in-process.transport.d.ts.map +1 -1
  32. package/dist/transport/in-process.transport.js +8 -1
  33. package/dist/transport/in-process.transport.js.map +1 -1
  34. package/dist/types/serializable.d.ts +35 -4
  35. package/dist/types/serializable.d.ts.map +1 -1
  36. package/package.json +13 -11
  37. package/README.md +0 -263
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env node
2
+ declare class RpcPackageInitializer {
3
+ private cwd;
4
+ private rl;
5
+ constructor();
6
+ bootstrap(): Promise<void>;
7
+ private promptForConfig;
8
+ private question;
9
+ private createRpcPackage;
10
+ private ensureDirectory;
11
+ private createPackageJson;
12
+ private findRootTsConfig;
13
+ private createTsConfig;
14
+ private createRpcConfig;
15
+ private createGenerateScript;
16
+ private createSourceFiles;
17
+ }
18
+ export { RpcPackageInitializer };
19
+ //# sourceMappingURL=bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/bin/bootstrap.ts"],"names":[],"mappings":";AAYA,cAAM,qBAAqB;IACzB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,EAAE,CAAqB;;IAUzB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YAelB,eAAe;YA8Bf,QAAQ;YAUR,gBAAgB;YAkBhB,eAAe;YAMf,iBAAiB;IA8B/B,OAAO,CAAC,gBAAgB;YAiCV,cAAc;YAiDd,eAAe;YAUf,oBAAoB;YAoBpB,iBAAiB;CAmChC;AAWD,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
@@ -0,0 +1,275 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.RpcPackageInitializer = void 0;
38
+ const path = __importStar(require("path"));
39
+ const fs = __importStar(require("fs"));
40
+ const readline = __importStar(require("readline"));
41
+ class RpcPackageInitializer {
42
+ constructor() {
43
+ this.cwd = process.cwd();
44
+ this.rl = readline.createInterface({
45
+ input: process.stdin,
46
+ output: process.stdout
47
+ });
48
+ }
49
+ async bootstrap() {
50
+ console.log('🚀 NestJS RPC Package Initializer\n');
51
+ const config = await this.promptForConfig();
52
+ await this.createRpcPackage(config);
53
+ this.rl.close();
54
+ console.log('\n✅ RPC package initialized successfully!');
55
+ console.log('\nNext steps:');
56
+ console.log('1. Update module packages in nestjs-rpc-toolkit.config.json (supports wildcards like "packages/modules/*")');
57
+ console.log('2. Run "npm run generate:types" to generate RPC types');
58
+ console.log('3. Build the package with "npm run build"');
59
+ }
60
+ async promptForConfig() {
61
+ const packagePath = await this.question('Where would you like to create the RPC package? ', 'packages/lib-rpc');
62
+ const projectName = path.basename(this.cwd);
63
+ const defaultPackageName = `@${projectName}/rpc`;
64
+ const packageName = await this.question('What should the package name be? ', defaultPackageName);
65
+ const modulePackagesInput = await this.question('Enter module packages to scan for RPC methods (comma-separated, supports wildcards): ', 'packages/modules/*');
66
+ const modulePackages = modulePackagesInput
67
+ .split(',')
68
+ .map(p => p.trim())
69
+ .filter(p => p.length > 0);
70
+ return {
71
+ packagePath: packagePath.trim(),
72
+ packageName: packageName.trim(),
73
+ modulePackages
74
+ };
75
+ }
76
+ async question(prompt, defaultValue) {
77
+ const displayPrompt = defaultValue ? `${prompt}(${defaultValue}) ` : prompt;
78
+ return new Promise((resolve) => {
79
+ this.rl.question(displayPrompt, (answer) => {
80
+ resolve(answer.trim() || defaultValue || '');
81
+ });
82
+ });
83
+ }
84
+ async createRpcPackage(config) {
85
+ const fullPackagePath = path.resolve(this.cwd, config.packagePath);
86
+ // Create directory structure
87
+ await this.ensureDirectory(fullPackagePath);
88
+ await this.ensureDirectory(path.join(fullPackagePath, 'src'));
89
+ await this.ensureDirectory(path.join(fullPackagePath, 'scripts'));
90
+ // Create files
91
+ await this.createPackageJson(fullPackagePath, config);
92
+ await this.createTsConfig(fullPackagePath);
93
+ await this.createRpcConfig(fullPackagePath, config);
94
+ await this.createGenerateScript(fullPackagePath);
95
+ await this.createSourceFiles(fullPackagePath);
96
+ console.log(`📦 Created RPC package at: ${config.packagePath}`);
97
+ }
98
+ async ensureDirectory(dirPath) {
99
+ if (!fs.existsSync(dirPath)) {
100
+ fs.mkdirSync(dirPath, { recursive: true });
101
+ }
102
+ }
103
+ async createPackageJson(packagePath, config) {
104
+ const packageJson = {
105
+ name: config.packageName,
106
+ version: "1.0.0",
107
+ description: "Package containing shared types for RPC calls in this monorepo (generated by @zdavison/nestjs-rpc-toolkit)",
108
+ main: "dist/index.js",
109
+ types: "dist/index.d.ts",
110
+ scripts: {
111
+ build: "npm run generate:types && tsc",
112
+ clean: "rm -rf dist",
113
+ dev: "tsc --watch",
114
+ "generate:types": "ts-node scripts/generate-all-rpc-types.ts"
115
+ },
116
+ dependencies: {
117
+ "@zdavison/nestjs-rpc-toolkit": "^0.0.14",
118
+ "@nestjs/common": "^10.0.0",
119
+ "@nestjs/microservices": "^10.0.0"
120
+ },
121
+ devDependencies: {
122
+ "@types/node": "^24.5.1",
123
+ typescript: "^5.0.0",
124
+ "ts-node": "^10.9.0",
125
+ "ts-morph": "^20.0.0"
126
+ }
127
+ };
128
+ const filePath = path.join(packagePath, 'package.json');
129
+ fs.writeFileSync(filePath, JSON.stringify(packageJson, null, 2));
130
+ }
131
+ findRootTsConfig() {
132
+ // Search for root tsconfig files starting from repo root
133
+ const possiblePaths = [
134
+ 'tsconfig.json',
135
+ 'tsconfig.base.json'
136
+ ];
137
+ // Find git root or use current working directory
138
+ let searchDir = this.cwd;
139
+ try {
140
+ // Try to find git root by looking for .git directory
141
+ let current = this.cwd;
142
+ while (current !== path.dirname(current)) {
143
+ if (fs.existsSync(path.join(current, '.git'))) {
144
+ searchDir = current;
145
+ break;
146
+ }
147
+ current = path.dirname(current);
148
+ }
149
+ }
150
+ catch {
151
+ // If git root search fails, use current directory
152
+ }
153
+ for (const tsConfigPath of possiblePaths) {
154
+ const fullPath = path.join(searchDir, tsConfigPath);
155
+ if (fs.existsSync(fullPath)) {
156
+ return fullPath;
157
+ }
158
+ }
159
+ return null;
160
+ }
161
+ async createTsConfig(packagePath) {
162
+ // Try to find a root tsconfig to extend from
163
+ const rootTsConfig = this.findRootTsConfig();
164
+ let tsConfig;
165
+ if (rootTsConfig) {
166
+ // Calculate relative path from package to root tsconfig
167
+ const relativePath = path.relative(packagePath, rootTsConfig);
168
+ tsConfig = {
169
+ extends: relativePath,
170
+ compilerOptions: {
171
+ outDir: "./dist",
172
+ declaration: true,
173
+ declarationMap: true,
174
+ sourceMap: true
175
+ },
176
+ include: ["src/**/*"],
177
+ exclude: ["node_modules", "dist", "**/*.spec.ts", "**/*.test.ts"]
178
+ };
179
+ }
180
+ else {
181
+ // Create a standalone valid tsconfig
182
+ tsConfig = {
183
+ compilerOptions: {
184
+ target: "ES2020",
185
+ module: "commonjs",
186
+ lib: ["ES2020"],
187
+ outDir: "./dist",
188
+ rootDir: "./src",
189
+ strict: true,
190
+ esModuleInterop: true,
191
+ skipLibCheck: true,
192
+ forceConsistentCasingInFileNames: true,
193
+ declaration: true,
194
+ declarationMap: true,
195
+ sourceMap: true,
196
+ experimentalDecorators: true,
197
+ emitDecoratorMetadata: true
198
+ },
199
+ include: ["src/**/*"],
200
+ exclude: ["node_modules", "dist", "**/*.spec.ts", "**/*.test.ts"]
201
+ };
202
+ }
203
+ const filePath = path.join(packagePath, 'tsconfig.json');
204
+ fs.writeFileSync(filePath, JSON.stringify(tsConfig, null, 2));
205
+ }
206
+ async createRpcConfig(packagePath, config) {
207
+ const rpcConfig = {
208
+ packages: config.modulePackages,
209
+ outputDir: path.join(config.packagePath, 'src')
210
+ };
211
+ const filePath = path.join(packagePath, 'nestjs-rpc-toolkit.config.json');
212
+ fs.writeFileSync(filePath, JSON.stringify(rpcConfig, null, 2));
213
+ }
214
+ async createGenerateScript(packagePath) {
215
+ const script = `import { RpcTypesGenerator } from '@zdavison/nestjs-rpc-toolkit';
216
+ import * as path from 'path';
217
+
218
+ // Run the generator - we're in ${path.basename(packagePath)}/scripts
219
+ const rootDir = path.join(__dirname, '../../../');
220
+ const configPath = path.join(__dirname, '../nestjs-rpc-toolkit.config.json');
221
+
222
+ const generator = new RpcTypesGenerator({
223
+ rootDir,
224
+ configPath,
225
+ });
226
+
227
+ generator.generate();
228
+ `;
229
+ const filePath = path.join(packagePath, 'scripts', 'generate-all-rpc-types.ts');
230
+ fs.writeFileSync(filePath, script);
231
+ }
232
+ async createSourceFiles(packagePath) {
233
+ // Create index.ts
234
+ const indexContent = `export * from './all.rpc.gen';
235
+ export * from './typed-message-bus';
236
+ `;
237
+ fs.writeFileSync(path.join(packagePath, 'src', 'index.ts'), indexContent);
238
+ // Create typed-message-bus.ts
239
+ const messageBusContent = `import { MessageBus as BaseMessageBus, IMessageBus } from '@zdavison/nestjs-rpc-toolkit';
240
+ import { AllRpcMethods } from './all.rpc.gen';
241
+ import { Injectable } from '@nestjs/common';
242
+ import { ClientProxy } from '@nestjs/microservices';
243
+
244
+ // Typed version of MessageBus with generated types
245
+ export interface ITypedMessageBus extends IMessageBus<AllRpcMethods> {}
246
+
247
+ @Injectable()
248
+ export class MessageBus extends BaseMessageBus<AllRpcMethods> implements ITypedMessageBus {
249
+ constructor(client: ClientProxy) {
250
+ super(client);
251
+ }
252
+ }
253
+ `;
254
+ fs.writeFileSync(path.join(packagePath, 'src', 'typed-message-bus.ts'), messageBusContent);
255
+ // Create placeholder all.rpc.gen.ts
256
+ const placeholderContent = `// This file will be generated by the RPC types generator
257
+ // Run 'npm run generate:types' to generate the actual types
258
+
259
+ export interface AllRpcMethods {
260
+ // Generated RPC method types will appear here
261
+ }
262
+ `;
263
+ fs.writeFileSync(path.join(packagePath, 'src', 'all.rpc.gen.ts'), placeholderContent);
264
+ }
265
+ }
266
+ exports.RpcPackageInitializer = RpcPackageInitializer;
267
+ // Main execution
268
+ if (require.main === module) {
269
+ const initializer = new RpcPackageInitializer();
270
+ initializer.bootstrap().catch((error) => {
271
+ console.error('❌ Error initializing RPC package:', error);
272
+ process.exit(1);
273
+ });
274
+ }
275
+ //# sourceMappingURL=bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/bin/bootstrap.ts"],"names":[],"mappings":"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"}
package/dist/bin/init.js CHANGED
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-controller.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/rpc-controller.decorator.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC;AAE1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc,CAkB7D"}
1
+ {"version":3,"file":"rpc-controller.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/rpc-controller.decorator.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAE1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc,CAyC7D"}
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RpcController = RpcController;
4
4
  const common_1 = require("@nestjs/common");
5
+ const microservices_1 = require("@nestjs/microservices");
6
+ const rpc_registry_1 = require("../rpc/rpc-registry");
5
7
  require("reflect-metadata");
6
8
  /**
7
9
  * RPC Controller decorator for classes that contain RPC methods.
@@ -48,6 +50,25 @@ function RpcController(prefix) {
48
50
  .toLowerCase();
49
51
  }
50
52
  Reflect.defineMetadata('rpc:module', modulePrefix, target);
53
+ // Process any pending @RpcMethod decorators that were applied before @RpcController
54
+ const pendingMethods = Reflect.getMetadata('rpc:pending-methods', target) || [];
55
+ for (const { propertyKey, descriptor } of pendingMethods) {
56
+ const methodName = propertyKey;
57
+ const actualPattern = `${modulePrefix}.${methodName}`;
58
+ // Register in RPC registry
59
+ const metadata = {
60
+ pattern: actualPattern,
61
+ module: modulePrefix,
62
+ methodName,
63
+ target,
64
+ propertyKey,
65
+ };
66
+ rpc_registry_1.rpcRegistry.registerMethod(metadata);
67
+ // Apply the NestJS MessagePattern decorator
68
+ (0, microservices_1.MessagePattern)(actualPattern)(target.prototype, propertyKey, descriptor);
69
+ }
70
+ // Clear the pending methods
71
+ Reflect.deleteMetadata('rpc:pending-methods', target);
51
72
  return target;
52
73
  };
53
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-controller.decorator.js","sourceRoot":"","sources":["../../src/decorators/rpc-controller.decorator.ts"],"names":[],"mappings":";;AAmCA,sCAkBC;AArDD,2CAA4C;AAC5C,4BAA0B;AAE1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,SAAgB,aAAa,CAAC,MAAe;IAC3C,OAAO,UAAU,MAAW;QAC1B,wCAAwC;QACxC,IAAA,mBAAU,GAAE,CAAC,MAAM,CAAC,CAAC;QAErB,mDAAmD;QACnD,IAAI,YAAY,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,yGAAyG;YACzG,YAAY,GAAG,MAAM,CAAC,IAAI;iBACvB,OAAO,CAAC,2CAA2C,EAAE,EAAE,CAAC;iBACxD,WAAW,EAAE,CAAC;QACnB,CAAC;QAED,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;QAE3D,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"rpc-controller.decorator.js","sourceRoot":"","sources":["../../src/decorators/rpc-controller.decorator.ts"],"names":[],"mappings":";;AAqCA,sCAyCC;AA9ED,2CAA4C;AAC5C,yDAA6E;AAC7E,sDAAqE;AACrE,4BAA0B;AAE1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,SAAgB,aAAa,CAAC,MAAe;IAC3C,OAAO,UAAU,MAAW;QAC1B,wCAAwC;QACxC,IAAA,mBAAU,GAAE,CAAC,MAAM,CAAC,CAAC;QAErB,mDAAmD;QACnD,IAAI,YAAY,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,yGAAyG;YACzG,YAAY,GAAG,MAAM,CAAC,IAAI;iBACvB,OAAO,CAAC,2CAA2C,EAAE,EAAE,CAAC;iBACxD,WAAW,EAAE,CAAC;QACnB,CAAC;QAED,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;QAE3D,oFAAoF;QACpF,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,qBAAqB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAChF,KAAK,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,cAAc,EAAE,CAAC;YACzD,MAAM,UAAU,GAAG,WAAW,CAAC;YAC/B,MAAM,aAAa,GAAG,GAAG,YAAY,IAAI,UAAU,EAAE,CAAC;YAEtD,2BAA2B;YAC3B,MAAM,QAAQ,GAAsB;gBAClC,OAAO,EAAE,aAAa;gBACtB,MAAM,EAAE,YAAsB;gBAC9B,UAAU;gBACV,MAAM;gBACN,WAAW;aACZ,CAAC;YACF,0BAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAErC,4CAA4C;YAC5C,IAAA,8BAAkB,EAAC,aAAa,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QAC/E,CAAC;QAED,4BAA4B;QAC5B,OAAO,CAAC,cAAc,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QAEtD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import { SerializableRpcMethod } from '../types/serializable';
1
+ import { ValidateRpcMethod } from '../types/serializable';
2
2
  import 'reflect-metadata';
3
3
  /**
4
4
  * RPC Method decorator with compile-time serialization validation.
@@ -20,5 +20,5 @@ import 'reflect-metadata';
20
20
  * }
21
21
  * ```
22
22
  */
23
- export declare function RpcMethod<T extends (...args: any[]) => any>(): (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<SerializableRpcMethod<T>> | void;
23
+ export declare function RpcMethod(): <TMethod extends (...args: any[]) => any>(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor<ValidateRpcMethod<TMethod>>) => void;
24
24
  //# sourceMappingURL=rpc-method.decorator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-method.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/rpc-method.decorator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,kBAAkB,CAAC;AAE1B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,KAAK,CAC9D,MAAM,EAAE,GAAG,EACX,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,uBAAuB,CAAC,CAAC,CAAC,KACnC,uBAAuB,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAyC5D"}
1
+ {"version":3,"file":"rpc-method.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/rpc-method.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,kBAAkB,CAAC;AAE1B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,SAAS,KACN,OAAO,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACtD,QAAQ,GAAG,EACX,aAAa,MAAM,EACnB,YAAY,uBAAuB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,KAC9D,IAAI,CAgER"}
@@ -1,8 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RpcMethod = RpcMethod;
4
- const microservices_1 = require("@nestjs/microservices");
5
- const rpc_registry_1 = require("../rpc/rpc-registry");
6
4
  require("reflect-metadata");
7
5
  /**
8
6
  * RPC Method decorator with compile-time serialization validation.
@@ -27,33 +25,59 @@ require("reflect-metadata");
27
25
  function RpcMethod() {
28
26
  return function (target, propertyKey, descriptor) {
29
27
  const originalMethod = descriptor.value;
30
- // Get module prefix from @RpcController decorator metadata
31
- const module = Reflect.getMetadata('rpc:module', target.constructor);
32
- if (!module) {
33
- throw new Error(`@RpcMethod can only be used in classes decorated with @RpcController. Class: ${target.constructor.name}`);
34
- }
35
- // Use method name for the pattern
36
- const methodName = propertyKey;
37
- const actualPattern = `${module}.${methodName}`;
38
- // Register in RPC registry
39
- const metadata = {
40
- pattern: actualPattern,
41
- module,
42
- methodName,
43
- target: target.constructor,
44
- propertyKey,
28
+ // Defer the module lookup and pattern registration until runtime
29
+ // This is necessary because method decorators execute before class decorators
30
+ const getModuleAndPattern = () => {
31
+ const module = Reflect.getMetadata('rpc:module', target.constructor);
32
+ if (!module) {
33
+ throw new Error(`@RpcMethod can only be used in classes decorated with @RpcController. Class: ${target.constructor.name}`);
34
+ }
35
+ return {
36
+ module,
37
+ pattern: `${module}.${propertyKey}`
38
+ };
45
39
  };
46
- rpc_registry_1.rpcRegistry.registerMethod(metadata);
47
- // Create wrapper method that handles array-based payloads
48
- descriptor.value = function (args) {
49
- // If args is an array, spread it as arguments, otherwise pass as single argument
50
- if (Array.isArray(args)) {
51
- return originalMethod.apply(this, args);
40
+ // Create wrapper method that handles RPC parameter unwrapping
41
+ descriptor.value = function (...args) {
42
+ // Defer the module check until the method is actually called
43
+ // This allows the class decorator to run first
44
+ getModuleAndPattern();
45
+ // NestJS microservices sends parameters as a single object: { paramName: value }
46
+ // We need to unwrap this and pass the actual values to the method
47
+ let unwrappedArgs = args;
48
+ if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null) {
49
+ // Extract parameter names from the original method
50
+ const methodStr = originalMethod.toString();
51
+ const paramMatch = methodStr.match(/^(?:async\s+)?(?:function\s*)?\w*\s*\(([^)]*)\)/);
52
+ if (paramMatch) {
53
+ const paramNames = paramMatch[1]
54
+ .split(',')
55
+ .map(p => p.trim().split(/[:\s=]/)[0])
56
+ .filter(p => p.length > 0);
57
+ // If the incoming object has exactly the parameter names as keys, unwrap them
58
+ const incomingKeys = Object.keys(args[0]);
59
+ if (paramNames.length > 0 && incomingKeys.length === paramNames.length) {
60
+ const allMatch = paramNames.every(name => incomingKeys.includes(name));
61
+ if (allMatch) {
62
+ unwrappedArgs = paramNames.map(name => args[0][name]);
63
+ }
64
+ }
65
+ }
52
66
  }
53
- return originalMethod.call(this, args);
67
+ // Call the original method with the unwrapped arguments
68
+ return originalMethod.apply(this, unwrappedArgs);
54
69
  };
55
- // Apply the NestJS MessagePattern decorator
56
- (0, microservices_1.MessagePattern)(actualPattern)(target, propertyKey, descriptor);
70
+ // Store the method for lazy pattern registration
71
+ // We'll register it when @RpcController is applied
72
+ if (!Reflect.hasMetadata('rpc:pending-methods', target.constructor)) {
73
+ Reflect.defineMetadata('rpc:pending-methods', [], target.constructor);
74
+ }
75
+ const pendingMethods = Reflect.getMetadata('rpc:pending-methods', target.constructor);
76
+ pendingMethods.push({
77
+ propertyKey,
78
+ originalMethod,
79
+ descriptor,
80
+ });
57
81
  };
58
82
  }
59
83
  //# sourceMappingURL=rpc-method.decorator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-method.decorator.js","sourceRoot":"","sources":["../../src/decorators/rpc-method.decorator.ts"],"names":[],"mappings":";;AAyBA,8BA6CC;AAtED,yDAA6E;AAC7E,sDAAqE;AAErE,4BAA0B;AAE1B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,SAAS;IAKvB,OAAO,UACL,MAAW,EACX,WAAmB,EACnB,UAAsC;QAEtC,MAAM,cAAc,GAAG,UAAU,CAAC,KAAM,CAAC;QAEzC,2DAA2D;QAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAErE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,gFAAgF,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7H,CAAC;QAED,kCAAkC;QAClC,MAAM,UAAU,GAAG,WAAW,CAAC;QAC/B,MAAM,aAAa,GAAG,GAAG,MAAM,IAAI,UAAU,EAAE,CAAC;QAEhD,2BAA2B;QAC3B,MAAM,QAAQ,GAAsB;YAClC,OAAO,EAAE,aAAa;YACtB,MAAM;YACN,UAAU;YACV,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,WAAW;SACZ,CAAC;QACF,0BAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAErC,0DAA0D;QAC1D,UAAU,CAAC,KAAK,GAAG,UAAqB,IAAW;YACjD,iFAAiF;YACjF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC1C,CAAC;YACD,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzC,CAAQ,CAAC;QAET,4CAA4C;QAC5C,IAAA,8BAAkB,EAAC,aAAa,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACrE,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"rpc-method.decorator.js","sourceRoot":"","sources":["../../src/decorators/rpc-method.decorator.ts"],"names":[],"mappings":"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"}
@@ -26,10 +26,12 @@ export declare class RpcTypesGenerator {
26
26
  private extractTypesFromFile;
27
27
  private extractInterface;
28
28
  private extractClassAsInterface;
29
+ private extractTypeAlias;
29
30
  private isRelevantInterface;
30
31
  private getModuleForFile;
31
32
  private isInternalType;
32
33
  private processMethod;
34
+ private extractJsDoc;
33
35
  private generateTypesFile;
34
36
  private generateModuleTypesFile;
35
37
  private generateMainTypesFile;
@@ -40,5 +42,6 @@ export declare class RpcTypesGenerator {
40
42
  private extractTypeNames;
41
43
  private isBuiltInType;
42
44
  private generateCommonTypeExports;
45
+ private generateAllRpcMethodsType;
43
46
  }
44
47
  //# sourceMappingURL=rpc-types-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-types-generator.d.ts","sourceRoot":"","sources":["../../src/generators/rpc-types-generator.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,8FAA8F;IAC9F,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAiBD,qBAAa,iBAAiB;IAShB,OAAO,CAAC,OAAO;IAR3B,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,gBAAgB,CAAgB;IACxC,OAAO,CAAC,eAAe,CAAkC;gBAErC,OAAO,EAAE,gBAAgB;IAa7C,OAAO,CAAC,kBAAkB;IA+B1B,OAAO,CAAC,wBAAwB;IA2BhC,OAAO,CAAC,sBAAsB;IA6B9B,OAAO,CAAC,UAAU;IAOlB,QAAQ,IAAI,IAAI;IAqChB,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,uBAAuB;IAmC/B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,aAAa;IA8ErB,OAAO,CAAC,iBAAiB;IA4BzB,OAAO,CAAC,uBAAuB;IAiE/B,OAAO,CAAC,qBAAqB;IAqH7B,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,yBAAyB;CA0ClC"}
1
+ {"version":3,"file":"rpc-types-generator.d.ts","sourceRoot":"","sources":["../../src/generators/rpc-types-generator.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,8FAA8F;IAC9F,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAoBD,qBAAa,iBAAiB;IAShB,OAAO,CAAC,OAAO;IAR3B,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,gBAAgB,CAAgB;IACxC,OAAO,CAAC,eAAe,CAAkC;gBAErC,OAAO,EAAE,gBAAgB;IAa7C,OAAO,CAAC,kBAAkB;IA+B1B,OAAO,CAAC,wBAAwB;IA2BhC,OAAO,CAAC,sBAAsB;IA6B9B,OAAO,CAAC,UAAU;IAOlB,QAAQ,IAAI,IAAI;IAqChB,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,uBAAuB;IA4D/B,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,aAAa;IA6FrB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,iBAAiB;IA4BzB,OAAO,CAAC,uBAAuB;IA8F/B,OAAO,CAAC,qBAAqB;IAkL7B,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,yBAAyB;IAsEjC,OAAO,CAAC,yBAAyB;CAyClC"}