Skip to content

Commit 3b6495a

Browse files
committed
Add generate parameter
1 parent a78a914 commit 3b6495a

File tree

1 file changed

+28
-8
lines changed

1 file changed

+28
-8
lines changed

src/index.ts

+28-8
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,25 @@ withAllStdIn((inputBuff: Buffer) => {
2525
const exportMap = new ExportMap();
2626
const fileNameToDescriptor: {[key: string]: FileDescriptorProto} = {};
2727

28-
// Generate separate `.ts` files for services if param is set
2928
const parameter = codeGenRequest.getParameter();
30-
const generateGrpcWebServices = parameter === "service=grpc-web" || parameter === "service=true";
31-
const generateGrpcNodeServices = parameter === "service=grpc-node";
29+
const parameters: {[key: string]: string[]} = {
30+
generate: ["base"],
31+
};
32+
33+
if (parameter === "service=grpc-web" || parameter === "service=true") {
34+
parameters.generate.push("grpc-web")
35+
} else if (parameter === "service=grpc-node") {
36+
parameters.generate.push("grpc-node")
37+
} else if (parameter.length > 0) {
38+
parameter.split(",").forEach(parameterSection => {
39+
const [key, value] = parameterSection.split("=", 2);
40+
parameters[key] = value ? value.split("+") : [];
41+
});
42+
}
43+
44+
const generateBaseFile = parameters["generate"].indexOf('base') !== -1;
45+
const generateGrpcWebServices = parameters["generate"].indexOf('grpc-web') !== -1;
46+
const generateGrpcNodeServices = parameters["generate"].indexOf('grpc-node') !== -1;
3247

3348
if (parameter === "service=true") {
3449
console.warn("protoc-gen-ts warning: The service=true parameter has been deprecated. Use service=grpc-web instead.");
@@ -41,15 +56,20 @@ withAllStdIn((inputBuff: Buffer) => {
4156

4257
codeGenRequest.getFileToGenerateList().forEach(fileName => {
4358
const outputFileName = replaceProtoSuffix(fileName);
44-
const thisFile = new CodeGeneratorResponse.File();
45-
thisFile.setName(outputFileName + ".d.ts");
46-
thisFile.setContent(printFileDescriptorTSD(fileNameToDescriptor[fileName], exportMap));
47-
codeGenResponse.addFile(thisFile);
59+
60+
if (generateBaseFile) {
61+
const thisFile = new CodeGeneratorResponse.File();
62+
thisFile.setName(outputFileName + ".d.ts");
63+
thisFile.setContent(printFileDescriptorTSD(fileNameToDescriptor[fileName], exportMap));
64+
codeGenResponse.addFile(thisFile);
65+
}
4866

4967
if (generateGrpcWebServices) {
5068
generateGrpcWebService(outputFileName, fileNameToDescriptor[fileName], exportMap)
5169
.forEach(file => codeGenResponse.addFile(file));
52-
} else if (generateGrpcNodeServices) {
70+
}
71+
72+
if (generateGrpcNodeServices) {
5373
const file = generateGrpcNodeService(outputFileName, fileNameToDescriptor[fileName], exportMap);
5474
codeGenResponse.addFile(file);
5575
}

0 commit comments

Comments
 (0)