@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
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
declare class RpcPackageInitializer {
|
|
3
|
+
private cwd;
|
|
4
|
+
private rl;
|
|
5
|
+
constructor();
|
|
6
|
+
init(): Promise<void>;
|
|
7
|
+
private promptForConfig;
|
|
8
|
+
private question;
|
|
9
|
+
private createRpcPackage;
|
|
10
|
+
private ensureDirectory;
|
|
11
|
+
private createPackageJson;
|
|
12
|
+
private createTsConfig;
|
|
13
|
+
private createRpcConfig;
|
|
14
|
+
private createGenerateScript;
|
|
15
|
+
private createSourceFiles;
|
|
16
|
+
}
|
|
17
|
+
export { RpcPackageInitializer };
|
|
18
|
+
//# sourceMappingURL=init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/bin/init.ts"],"names":[],"mappings":";AAYA,cAAM,qBAAqB;IACzB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,EAAE,CAAqB;;IAUzB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAeb,eAAe;YA8Bf,QAAQ;YAUR,gBAAgB;YAkBhB,eAAe;YAMf,iBAAiB;YA6BjB,cAAc;YAiBd,eAAe;YAUf,oBAAoB;YAoBpB,iBAAiB;CAmChC;AAWD,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
|
package/dist/bin/init.js
ADDED
|
@@ -0,0 +1,208 @@
|
|
|
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 init() {
|
|
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. Add your module packages to the rpc-generation.config.json');
|
|
57
|
+
console.log('2. Run "npm run generate:all-rpc-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/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): ', '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
|
+
await this.ensureDirectory(fullPackagePath);
|
|
87
|
+
await this.ensureDirectory(path.join(fullPackagePath, 'src'));
|
|
88
|
+
await this.ensureDirectory(path.join(fullPackagePath, 'scripts'));
|
|
89
|
+
await this.createPackageJson(fullPackagePath, config);
|
|
90
|
+
await this.createTsConfig(fullPackagePath);
|
|
91
|
+
await this.createRpcConfig(fullPackagePath, config);
|
|
92
|
+
await this.createGenerateScript(fullPackagePath);
|
|
93
|
+
await this.createSourceFiles(fullPackagePath);
|
|
94
|
+
console.log(`📦 Created RPC package at: ${config.packagePath}`);
|
|
95
|
+
}
|
|
96
|
+
async ensureDirectory(dirPath) {
|
|
97
|
+
if (!fs.existsSync(dirPath)) {
|
|
98
|
+
fs.mkdirSync(dirPath, { recursive: true });
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
async createPackageJson(packagePath, config) {
|
|
102
|
+
const packageJson = {
|
|
103
|
+
name: config.packageName,
|
|
104
|
+
version: "1.0.0",
|
|
105
|
+
description: "Generated RPC types for cross-module communication",
|
|
106
|
+
main: "dist/index.js",
|
|
107
|
+
types: "dist/index.d.ts",
|
|
108
|
+
scripts: {
|
|
109
|
+
build: "npm run generate:all-rpc-types && tsc",
|
|
110
|
+
clean: "rm -rf dist",
|
|
111
|
+
dev: "tsc --watch",
|
|
112
|
+
"generate:all-rpc-types": "ts-node scripts/generate-all-rpc-types.ts"
|
|
113
|
+
},
|
|
114
|
+
dependencies: {
|
|
115
|
+
"@nestjs/rpc": "workspace:*",
|
|
116
|
+
"@nestjs/common": "^10.0.0",
|
|
117
|
+
"@nestjs/microservices": "^10.0.0"
|
|
118
|
+
},
|
|
119
|
+
devDependencies: {
|
|
120
|
+
typescript: "^5.0.0",
|
|
121
|
+
"ts-node": "^10.9.0",
|
|
122
|
+
"ts-morph": "^20.0.0"
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
const filePath = path.join(packagePath, 'package.json');
|
|
126
|
+
fs.writeFileSync(filePath, JSON.stringify(packageJson, null, 2));
|
|
127
|
+
}
|
|
128
|
+
async createTsConfig(packagePath) {
|
|
129
|
+
const tsConfig = {
|
|
130
|
+
extends: "../../tsconfig.base.json",
|
|
131
|
+
compilerOptions: {
|
|
132
|
+
outDir: "./dist",
|
|
133
|
+
declaration: true,
|
|
134
|
+
declarationMap: true,
|
|
135
|
+
sourceMap: true
|
|
136
|
+
},
|
|
137
|
+
include: ["src/**/*"],
|
|
138
|
+
exclude: ["node_modules", "dist", "**/*.spec.ts", "**/*.test.ts"]
|
|
139
|
+
};
|
|
140
|
+
const filePath = path.join(packagePath, 'tsconfig.json');
|
|
141
|
+
fs.writeFileSync(filePath, JSON.stringify(tsConfig, null, 2));
|
|
142
|
+
}
|
|
143
|
+
async createRpcConfig(packagePath, config) {
|
|
144
|
+
const rpcConfig = {
|
|
145
|
+
packages: config.modulePackages,
|
|
146
|
+
outputDir: path.join(config.packagePath, 'src')
|
|
147
|
+
};
|
|
148
|
+
const filePath = path.join(packagePath, 'rpc-generation.config.json');
|
|
149
|
+
fs.writeFileSync(filePath, JSON.stringify(rpcConfig, null, 2));
|
|
150
|
+
}
|
|
151
|
+
async createGenerateScript(packagePath) {
|
|
152
|
+
const script = `import { RpcTypesGenerator } from '@nestjs/rpc';
|
|
153
|
+
import * as path from 'path';
|
|
154
|
+
|
|
155
|
+
// Run the generator - we're in ${path.basename(packagePath)}/scripts
|
|
156
|
+
const rootDir = path.join(__dirname, '../../../');
|
|
157
|
+
const configPath = path.join(__dirname, '../rpc-generation.config.json');
|
|
158
|
+
|
|
159
|
+
const generator = new RpcTypesGenerator({
|
|
160
|
+
rootDir,
|
|
161
|
+
configPath,
|
|
162
|
+
});
|
|
163
|
+
|
|
164
|
+
generator.generate();
|
|
165
|
+
`;
|
|
166
|
+
const filePath = path.join(packagePath, 'scripts', 'generate-all-rpc-types.ts');
|
|
167
|
+
fs.writeFileSync(filePath, script);
|
|
168
|
+
}
|
|
169
|
+
async createSourceFiles(packagePath) {
|
|
170
|
+
const indexContent = `export * from './all.rpc.gen';
|
|
171
|
+
export * from './typed-message-bus';
|
|
172
|
+
`;
|
|
173
|
+
fs.writeFileSync(path.join(packagePath, 'src', 'index.ts'), indexContent);
|
|
174
|
+
const messageBusContent = `import { MessageBus as BaseMessageBus, IMessageBus } from '@nestjs/rpc';
|
|
175
|
+
import { AllRpcMethods } from './all.rpc.gen';
|
|
176
|
+
import { Injectable } from '@nestjs/common';
|
|
177
|
+
import { ClientProxy } from '@nestjs/microservices';
|
|
178
|
+
|
|
179
|
+
// Typed version of MessageBus with generated types
|
|
180
|
+
export interface ITypedMessageBus extends IMessageBus<AllRpcMethods> {}
|
|
181
|
+
|
|
182
|
+
@Injectable()
|
|
183
|
+
export class MessageBus extends BaseMessageBus<AllRpcMethods> implements ITypedMessageBus {
|
|
184
|
+
constructor(client: ClientProxy) {
|
|
185
|
+
super(client);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
`;
|
|
189
|
+
fs.writeFileSync(path.join(packagePath, 'src', 'typed-message-bus.ts'), messageBusContent);
|
|
190
|
+
const placeholderContent = `// This file will be generated by the RPC types generator
|
|
191
|
+
// Run 'npm run generate:all-rpc-types' to generate the actual types
|
|
192
|
+
|
|
193
|
+
export interface AllRpcMethods {
|
|
194
|
+
// Generated RPC method types will appear here
|
|
195
|
+
}
|
|
196
|
+
`;
|
|
197
|
+
fs.writeFileSync(path.join(packagePath, 'src', 'all.rpc.gen.ts'), placeholderContent);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
exports.RpcPackageInitializer = RpcPackageInitializer;
|
|
201
|
+
if (require.main === module) {
|
|
202
|
+
const initializer = new RpcPackageInitializer();
|
|
203
|
+
initializer.init().catch((error) => {
|
|
204
|
+
console.error('❌ Error initializing RPC package:', error);
|
|
205
|
+
process.exit(1);
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/bin/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc-method.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/rpc-method.decorator.ts"],"names":[],"mappings":"AAGA,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,IACvB,QAAQ,GAAG,EAAE,aAAa,MAAM,EAAE,YAAY,kBAAkB,UA6DlF"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RpcMethod = RpcMethod;
|
|
4
|
+
const microservices_1 = require("@nestjs/microservices");
|
|
5
|
+
const rpc_registry_1 = require("../rpc/rpc-registry");
|
|
6
|
+
function RpcMethod(pattern) {
|
|
7
|
+
return function (target, propertyKey, descriptor) {
|
|
8
|
+
const originalMethod = descriptor.value;
|
|
9
|
+
const actualPattern = pattern || propertyKey;
|
|
10
|
+
const methodString = originalMethod.toString();
|
|
11
|
+
const paramNames = methodString
|
|
12
|
+
.slice(methodString.indexOf('(') + 1, methodString.indexOf(')'))
|
|
13
|
+
.split(',')
|
|
14
|
+
.map((param) => param.trim().split(/\s+/)[0])
|
|
15
|
+
.filter((param) => param && param !== '');
|
|
16
|
+
let module;
|
|
17
|
+
let methodName;
|
|
18
|
+
if (actualPattern.includes('.')) {
|
|
19
|
+
module = actualPattern.split('.')[0];
|
|
20
|
+
methodName = actualPattern.split('.')[1];
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
const className = target.constructor.name;
|
|
24
|
+
module = className.replace(/Service$/, '').toLowerCase();
|
|
25
|
+
methodName = actualPattern;
|
|
26
|
+
}
|
|
27
|
+
const metadata = {
|
|
28
|
+
pattern: actualPattern,
|
|
29
|
+
module,
|
|
30
|
+
methodName,
|
|
31
|
+
paramNames,
|
|
32
|
+
target: target.constructor,
|
|
33
|
+
propertyKey,
|
|
34
|
+
};
|
|
35
|
+
rpc_registry_1.rpcRegistry.registerMethod(metadata);
|
|
36
|
+
descriptor.value = function (data) {
|
|
37
|
+
if (paramNames.length === 0 || !data || typeof data !== 'object') {
|
|
38
|
+
return originalMethod.call(this, data);
|
|
39
|
+
}
|
|
40
|
+
if (paramNames.length === 1) {
|
|
41
|
+
const paramName = paramNames[0];
|
|
42
|
+
return originalMethod.call(this, data[paramName]);
|
|
43
|
+
}
|
|
44
|
+
const args = paramNames.map((paramName) => data[paramName]);
|
|
45
|
+
return originalMethod.apply(this, args);
|
|
46
|
+
};
|
|
47
|
+
(0, microservices_1.MessagePattern)(actualPattern)(target, propertyKey, descriptor);
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=rpc-method.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc-method.decorator.js","sourceRoot":"","sources":["../../src/decorators/rpc-method.decorator.ts"],"names":[],"mappings":";;AAGA,8BA8DC;AAjED,yDAA6E;AAC7E,sDAAqE;AAErE,SAAgB,SAAS,CAAC,OAAgB;IACxC,OAAO,UAAU,MAAW,EAAE,WAAmB,EAAE,UAA8B;QAC/E,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAGxC,MAAM,aAAa,GAAG,OAAO,IAAI,WAAW,CAAC;QAG7C,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC;QAC/C,MAAM,UAAU,GAAG,YAAY;aAC5B,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;aAC/D,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aACpD,MAAM,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;QAIpD,IAAI,MAAc,CAAC;QACnB,IAAI,UAAkB,CAAC;QAEvB,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YAEN,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;YAC1C,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YACzD,UAAU,GAAG,aAAa,CAAC;QAC7B,CAAC;QAGD,MAAM,QAAQ,GAAsB;YAClC,OAAO,EAAE,aAAa;YACtB,MAAM;YACN,UAAU;YACV,UAAU;YACV,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,WAAW;SACZ,CAAC;QACF,0BAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAGrC,UAAU,CAAC,KAAK,GAAG,UAAU,IAAS;YAEpC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACjE,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACzC,CAAC;YAGD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAChC,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACpD,CAAC;YAGD,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACpE,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC,CAAC;QAGF,IAAA,8BAAkB,EAAC,aAAa,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACrE,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export interface RpcGenerationConfig {
|
|
2
|
+
packages: string[];
|
|
3
|
+
outputDir: string;
|
|
4
|
+
}
|
|
5
|
+
export interface GeneratorOptions {
|
|
6
|
+
rootDir: string;
|
|
7
|
+
configPath: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class RpcTypesGenerator {
|
|
10
|
+
private options;
|
|
11
|
+
private project;
|
|
12
|
+
private rpcMethods;
|
|
13
|
+
private interfaces;
|
|
14
|
+
private config;
|
|
15
|
+
constructor(options: GeneratorOptions);
|
|
16
|
+
private loadConfig;
|
|
17
|
+
generate(): void;
|
|
18
|
+
private scanSourceFile;
|
|
19
|
+
private extractInterface;
|
|
20
|
+
private extractClassAsInterface;
|
|
21
|
+
private isRelevantInterface;
|
|
22
|
+
private getModuleNameFromPath;
|
|
23
|
+
private isInternalType;
|
|
24
|
+
private processMethod;
|
|
25
|
+
private extractPattern;
|
|
26
|
+
private generateTypesFile;
|
|
27
|
+
private generateModuleTypesFile;
|
|
28
|
+
private generateMainTypesFile;
|
|
29
|
+
private generateParamsType;
|
|
30
|
+
private cleanReturnType;
|
|
31
|
+
private cleanTypeString;
|
|
32
|
+
private toCamelCase;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=rpc-types-generator.d.ts.map
|
|
@@ -0,0 +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,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;IAMhB,OAAO,CAAC,OAAO;IAL3B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,MAAM,CAAsB;gBAEhB,OAAO,EAAE,gBAAgB;IAyB7C,OAAO,CAAC,UAAU;IAOlB,QAAQ,IAAI,IAAI;IAchB,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,uBAAuB;IAyB/B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,aAAa;IAoCrB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,iBAAiB;IA4BzB,OAAO,CAAC,uBAAuB;IA2B/B,OAAO,CAAC,qBAAqB;IAmD7B,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,WAAW;CAGpB"}
|
|
@@ -0,0 +1,281 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.RpcTypesGenerator = void 0;
|
|
37
|
+
const ts_morph_1 = require("ts-morph");
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const fs = __importStar(require("fs"));
|
|
40
|
+
const glob_1 = require("glob");
|
|
41
|
+
class RpcTypesGenerator {
|
|
42
|
+
constructor(options) {
|
|
43
|
+
this.options = options;
|
|
44
|
+
this.rpcMethods = [];
|
|
45
|
+
this.interfaces = new Map();
|
|
46
|
+
this.config = this.loadConfig();
|
|
47
|
+
const moduleFiles = [];
|
|
48
|
+
this.config.packages.forEach(packagePath => {
|
|
49
|
+
const fullPath = path.join(options.rootDir, packagePath);
|
|
50
|
+
const files = glob_1.glob.sync('src/**/*.ts', {
|
|
51
|
+
cwd: fullPath,
|
|
52
|
+
absolute: true
|
|
53
|
+
});
|
|
54
|
+
moduleFiles.push(...files);
|
|
55
|
+
});
|
|
56
|
+
this.project = new ts_morph_1.Project({
|
|
57
|
+
tsConfigFilePath: path.join(options.rootDir, 'tsconfig.base.json'),
|
|
58
|
+
});
|
|
59
|
+
moduleFiles.forEach(file => {
|
|
60
|
+
this.project.addSourceFileAtPath(file);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
loadConfig() {
|
|
64
|
+
if (!fs.existsSync(this.options.configPath)) {
|
|
65
|
+
throw new Error(`RPC generation config not found at: ${this.options.configPath}`);
|
|
66
|
+
}
|
|
67
|
+
return JSON.parse(fs.readFileSync(this.options.configPath, 'utf8'));
|
|
68
|
+
}
|
|
69
|
+
generate() {
|
|
70
|
+
const sourceFiles = this.project.getSourceFiles();
|
|
71
|
+
sourceFiles.forEach(sourceFile => {
|
|
72
|
+
if (sourceFile.getFilePath().includes('node_modules'))
|
|
73
|
+
return;
|
|
74
|
+
if (sourceFile.getFilePath().includes('/dist/'))
|
|
75
|
+
return;
|
|
76
|
+
this.scanSourceFile(sourceFile);
|
|
77
|
+
});
|
|
78
|
+
this.generateTypesFile();
|
|
79
|
+
}
|
|
80
|
+
scanSourceFile(sourceFile) {
|
|
81
|
+
if (sourceFile.getFilePath().includes('.rpc.gen.ts')) {
|
|
82
|
+
console.log(`⏭️ Skipping generated file: ${sourceFile.getFilePath()}`);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
sourceFile.forEachDescendant((node) => {
|
|
86
|
+
if (node.getKind() === ts_morph_1.ts.SyntaxKind.MethodDeclaration) {
|
|
87
|
+
const method = node;
|
|
88
|
+
this.processMethod(method, sourceFile);
|
|
89
|
+
}
|
|
90
|
+
else if (node.getKind() === ts_morph_1.ts.SyntaxKind.InterfaceDeclaration) {
|
|
91
|
+
this.extractInterface(node, sourceFile);
|
|
92
|
+
}
|
|
93
|
+
else if (node.getKind() === ts_morph_1.ts.SyntaxKind.ClassDeclaration) {
|
|
94
|
+
this.extractClassAsInterface(node, sourceFile);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
extractInterface(interfaceDeclaration, sourceFile) {
|
|
99
|
+
const name = interfaceDeclaration.getName();
|
|
100
|
+
const source = interfaceDeclaration.getText();
|
|
101
|
+
const moduleName = this.getModuleNameFromPath(sourceFile.getFilePath());
|
|
102
|
+
if (name && this.isRelevantInterface(name) && !this.isInternalType(name)) {
|
|
103
|
+
this.interfaces.set(name, {
|
|
104
|
+
name,
|
|
105
|
+
source,
|
|
106
|
+
module: moduleName
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
extractClassAsInterface(classDeclaration, sourceFile) {
|
|
111
|
+
const name = classDeclaration.getName();
|
|
112
|
+
if (!name || !this.isRelevantInterface(name) || this.isInternalType(name))
|
|
113
|
+
return;
|
|
114
|
+
const properties = classDeclaration.getProperties()
|
|
115
|
+
.filter((prop) => !prop.hasModifier(ts_morph_1.ts.SyntaxKind.PrivateKeyword))
|
|
116
|
+
.map((prop) => {
|
|
117
|
+
const propName = prop.getName();
|
|
118
|
+
const propType = prop.getType().getText();
|
|
119
|
+
return ` ${propName}: ${propType};`;
|
|
120
|
+
});
|
|
121
|
+
if (properties.length > 0) {
|
|
122
|
+
const source = `export interface ${name} {\n${properties.join('\n')}\n}`;
|
|
123
|
+
const moduleName = this.getModuleNameFromPath(sourceFile.getFilePath());
|
|
124
|
+
this.interfaces.set(name, {
|
|
125
|
+
name,
|
|
126
|
+
source,
|
|
127
|
+
module: moduleName
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
isRelevantInterface(name) {
|
|
132
|
+
return !this.isInternalType(name);
|
|
133
|
+
}
|
|
134
|
+
getModuleNameFromPath(filePath) {
|
|
135
|
+
for (const packagePath of this.config.packages) {
|
|
136
|
+
const fullPackagePath = path.join(this.options.rootDir, packagePath, 'src');
|
|
137
|
+
if (filePath.startsWith(fullPackagePath)) {
|
|
138
|
+
return path.basename(packagePath);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return 'unknown';
|
|
142
|
+
}
|
|
143
|
+
isInternalType(name) {
|
|
144
|
+
return name === 'InterfaceDefinition' ||
|
|
145
|
+
name === 'RpcMethodInfo' ||
|
|
146
|
+
name === 'RpcGenerationConfig' ||
|
|
147
|
+
name === 'GeneratorOptions';
|
|
148
|
+
}
|
|
149
|
+
processMethod(method, sourceFile) {
|
|
150
|
+
const rpcDecorator = method.getDecorators().find(decorator => {
|
|
151
|
+
const decoratorName = decorator.getName();
|
|
152
|
+
return decoratorName === 'RpcMethod';
|
|
153
|
+
});
|
|
154
|
+
if (!rpcDecorator)
|
|
155
|
+
return;
|
|
156
|
+
const pattern = this.extractPattern(rpcDecorator.getArguments()[0]);
|
|
157
|
+
if (!pattern)
|
|
158
|
+
return;
|
|
159
|
+
const module = pattern.split('.')[0];
|
|
160
|
+
const methodName = method.getName() || 'unknown';
|
|
161
|
+
const paramTypes = method.getParameters().map(param => ({
|
|
162
|
+
name: param.getName(),
|
|
163
|
+
type: this.cleanTypeString(param.getType().getText()),
|
|
164
|
+
}));
|
|
165
|
+
const returnType = this.cleanReturnType(method.getReturnType().getText());
|
|
166
|
+
this.rpcMethods.push({
|
|
167
|
+
pattern,
|
|
168
|
+
methodName,
|
|
169
|
+
module,
|
|
170
|
+
paramTypes,
|
|
171
|
+
returnType,
|
|
172
|
+
sourceFile: sourceFile.getFilePath(),
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
extractPattern(arg) {
|
|
176
|
+
if (arg && typeof arg.getLiteralValue === 'function') {
|
|
177
|
+
return arg.getLiteralValue();
|
|
178
|
+
}
|
|
179
|
+
return null;
|
|
180
|
+
}
|
|
181
|
+
generateTypesFile() {
|
|
182
|
+
const moduleGroups = this.rpcMethods.reduce((groups, method) => {
|
|
183
|
+
if (!groups[method.module]) {
|
|
184
|
+
groups[method.module] = [];
|
|
185
|
+
}
|
|
186
|
+
groups[method.module].push(method);
|
|
187
|
+
return groups;
|
|
188
|
+
}, {});
|
|
189
|
+
const interfacesByModule = new Map();
|
|
190
|
+
this.interfaces.forEach(interfaceDef => {
|
|
191
|
+
if (!interfacesByModule.has(interfaceDef.module)) {
|
|
192
|
+
interfacesByModule.set(interfaceDef.module, []);
|
|
193
|
+
}
|
|
194
|
+
interfacesByModule.get(interfaceDef.module).push(interfaceDef);
|
|
195
|
+
});
|
|
196
|
+
Object.entries(moduleGroups).forEach(([moduleName, methods]) => {
|
|
197
|
+
this.generateModuleTypesFile(moduleName, methods, interfacesByModule.get(moduleName) || []);
|
|
198
|
+
});
|
|
199
|
+
this.generateMainTypesFile(moduleGroups);
|
|
200
|
+
}
|
|
201
|
+
generateModuleTypesFile(moduleName, methods, interfaces) {
|
|
202
|
+
const moduleInterfaces = interfaces.map(interfaceDef => interfaceDef.source).join('\n\n');
|
|
203
|
+
const moduleTypeMap = methods.map(method => {
|
|
204
|
+
const paramsType = this.generateParamsType(method.paramTypes);
|
|
205
|
+
return ` '${method.pattern}': { params: ${paramsType}; returns: ${method.returnType}; };`;
|
|
206
|
+
}).join('\n');
|
|
207
|
+
const fileContent = `// Auto-generated RPC types for ${moduleName.charAt(0).toUpperCase() + moduleName.slice(1)} module
|
|
208
|
+
// Do not edit this file manually - it will be overwritten
|
|
209
|
+
|
|
210
|
+
// ${moduleName.charAt(0).toUpperCase() + moduleName.slice(1)} module types
|
|
211
|
+
${moduleInterfaces}
|
|
212
|
+
|
|
213
|
+
// Type map for ${moduleName} module
|
|
214
|
+
export type ${this.toCamelCase(moduleName)}RpcMethods = {
|
|
215
|
+
${moduleTypeMap}
|
|
216
|
+
};
|
|
217
|
+
`;
|
|
218
|
+
const outputPath = path.join(this.options.rootDir, this.config.outputDir, `${moduleName}.rpc.gen.ts`);
|
|
219
|
+
fs.writeFileSync(outputPath, fileContent, 'utf8');
|
|
220
|
+
}
|
|
221
|
+
generateMainTypesFile(moduleGroups) {
|
|
222
|
+
const moduleImports = Object.keys(moduleGroups).map(moduleName => `import { ${this.toCamelCase(moduleName)}RpcMethods } from './${moduleName}.rpc.gen';`).join('\n');
|
|
223
|
+
const moduleReExports = Object.keys(moduleGroups).map(moduleName => `export * from './${moduleName}.rpc.gen';`).join('\n');
|
|
224
|
+
const allMethodsType = Object.keys(moduleGroups).map(moduleName => `${this.toCamelCase(moduleName)}RpcMethods`).join(' & ');
|
|
225
|
+
const fileContent = `// Auto-generated RPC types from all modules
|
|
226
|
+
// Do not edit this file manually - it will be overwritten
|
|
227
|
+
|
|
228
|
+
${moduleImports}
|
|
229
|
+
|
|
230
|
+
// Re-export all module types
|
|
231
|
+
${moduleReExports}
|
|
232
|
+
|
|
233
|
+
// Combined type map for all RPC methods
|
|
234
|
+
export type AllRpcMethods = ${allMethodsType};
|
|
235
|
+
|
|
236
|
+
// Usage examples:
|
|
237
|
+
// import type { User, Product } from '@modular-monolith/rpc';
|
|
238
|
+
//
|
|
239
|
+
// const user = await messageBus.send('user.findOne', { id: 'user123' });
|
|
240
|
+
// const products = await messageBus.send('product.findByOwner', { ownerId: 'user123' });
|
|
241
|
+
`;
|
|
242
|
+
const outputPath = path.join(this.options.rootDir, this.config.outputDir, 'all.rpc.gen.ts');
|
|
243
|
+
const outputDir = path.dirname(outputPath);
|
|
244
|
+
if (!fs.existsSync(outputDir)) {
|
|
245
|
+
fs.mkdirSync(outputDir, { recursive: true });
|
|
246
|
+
}
|
|
247
|
+
fs.writeFileSync(outputPath, fileContent, 'utf8');
|
|
248
|
+
console.log(`✅ Generated RPC types for ${this.rpcMethods.length} methods across ${Object.keys(moduleGroups).length} modules`);
|
|
249
|
+
Object.entries(moduleGroups).forEach(([module, methods]) => {
|
|
250
|
+
console.log(` ${module}: ${methods.length} methods`);
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
generateParamsType(params) {
|
|
254
|
+
if (params.length === 0)
|
|
255
|
+
return '{}';
|
|
256
|
+
const paramStrings = params.map(param => `${param.name}: ${param.type}`);
|
|
257
|
+
return `{ ${paramStrings.join('; ')} }`;
|
|
258
|
+
}
|
|
259
|
+
cleanReturnType(returnType) {
|
|
260
|
+
let cleanType = returnType;
|
|
261
|
+
const promiseMatch = returnType.match(/Promise<(.+)>/);
|
|
262
|
+
if (promiseMatch) {
|
|
263
|
+
cleanType = promiseMatch[1];
|
|
264
|
+
}
|
|
265
|
+
cleanType = cleanType.replace(/import\("[^"]*"\)\./g, '');
|
|
266
|
+
return cleanType;
|
|
267
|
+
}
|
|
268
|
+
cleanTypeString(typeStr) {
|
|
269
|
+
let cleanType = typeStr.replace(/import\("[^"]*"\)\./g, '');
|
|
270
|
+
cleanType = cleanType.replace(/CreateUserDto/g, 'CreateUserDto');
|
|
271
|
+
cleanType = cleanType.replace(/CreateProductDto/g, 'CreateProductDto');
|
|
272
|
+
cleanType = cleanType.replace(/UpdateUserDto/g, 'Partial<CreateUserDto>');
|
|
273
|
+
cleanType = cleanType.replace(/UpdateProductDto/g, 'Partial<CreateProductDto>');
|
|
274
|
+
return cleanType;
|
|
275
|
+
}
|
|
276
|
+
toCamelCase(str) {
|
|
277
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
exports.RpcTypesGenerator = RpcTypesGenerator;
|
|
281
|
+
//# sourceMappingURL=rpc-types-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc-types-generator.js","sourceRoot":"","sources":["../../src/generators/rpc-types-generator.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './interfaces';
|
|
2
|
+
export * from './module-base';
|
|
3
|
+
export * from './decorators/rpc-method.decorator';
|
|
4
|
+
export * from './rpc/typed-message-bus';
|
|
5
|
+
export * from './rpc/rpc-registry';
|
|
6
|
+
export * from './transport';
|
|
7
|
+
export * from './generators/rpc-types-generator';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,mCAAmC,CAAC;AAClD,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,kCAAkC,CAAC"}
|