@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.
- package/dist/bin/bootstrap.d.ts +19 -0
- package/dist/bin/bootstrap.d.ts.map +1 -0
- package/dist/bin/bootstrap.js +275 -0
- package/dist/bin/bootstrap.js.map +1 -0
- package/dist/bin/init.js +0 -0
- package/dist/decorators/rpc-controller.decorator.d.ts.map +1 -1
- package/dist/decorators/rpc-controller.decorator.js +21 -0
- package/dist/decorators/rpc-controller.decorator.js.map +1 -1
- package/dist/decorators/rpc-method.decorator.d.ts +2 -2
- package/dist/decorators/rpc-method.decorator.d.ts.map +1 -1
- package/dist/decorators/rpc-method.decorator.js +50 -26
- package/dist/decorators/rpc-method.decorator.js.map +1 -1
- package/dist/generators/rpc-types-generator.d.ts +3 -0
- package/dist/generators/rpc-types-generator.d.ts.map +1 -1
- package/dist/generators/rpc-types-generator.js +230 -20
- package/dist/generators/rpc-types-generator.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/rpc/rpc-client.d.ts.map +1 -1
- package/dist/rpc/rpc-client.js +3 -1
- package/dist/rpc/rpc-client.js.map +1 -1
- package/dist/rpc/rpc-registry.d.ts.map +1 -1
- package/dist/rpc/rpc-registry.js +11 -1
- package/dist/rpc/rpc-registry.js.map +1 -1
- package/dist/transport/in-process.client.d.ts +2 -0
- package/dist/transport/in-process.client.d.ts.map +1 -1
- package/dist/transport/in-process.client.js +5 -0
- package/dist/transport/in-process.client.js.map +1 -1
- package/dist/transport/in-process.transport.d.ts.map +1 -1
- package/dist/transport/in-process.transport.js +8 -1
- package/dist/transport/in-process.transport.js.map +1 -1
- package/dist/types/serializable.d.ts +35 -4
- package/dist/types/serializable.d.ts.map +1 -1
- package/package.json +13 -11
- 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":"
|
|
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":";;
|
|
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 {
|
|
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<
|
|
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":"
|
|
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
|
-
//
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
//
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
|
|
67
|
+
// Call the original method with the unwrapped arguments
|
|
68
|
+
return originalMethod.apply(this, unwrappedArgs);
|
|
54
69
|
};
|
|
55
|
-
//
|
|
56
|
-
|
|
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":";;
|
|
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;
|
|
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"}
|