Skip to content

Commit

Permalink
Template update done, final functionality done.
Browse files Browse the repository at this point in the history
  • Loading branch information
agreatfool committed Apr 23, 2020
1 parent bb80c80 commit 03024f3
Show file tree
Hide file tree
Showing 8 changed files with 66 additions and 39 deletions.
32 changes: 16 additions & 16 deletions build/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion build/index.js.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 11 additions & 2 deletions build/lib/format/ProtoSvcTsdFormatter.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion build/lib/format/ProtoSvcTsdFormatter.js.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions build/lib/template/svc_tsd.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,11 @@ export interface I{{{serviceName}}}Server {
{{lcFirst methodName}}: grpc.handleUnaryCall<{{{requestTypeName}}}, {{{responseTypeName}}}>;
{{/eq}}
{{#eq type "ClientWritableStream"}}
{{#if (fetchIsGrpcJs)}}
{{lcFirst methodName}}: handleClientStreamingCall<{{{requestTypeName}}}, {{{responseTypeName}}}>;
{{else}}
{{lcFirst methodName}}: grpc.handleClientStreamingCall<{{{requestTypeName}}}, {{{responseTypeName}}}>;
{{/if}}
{{/eq}}
{{#eq type "ClientReadableStream"}}
{{lcFirst methodName}}: grpc.handleServerStreamingCall<{{{requestTypeName}}}, {{{responseTypeName}}}>;
Expand Down
35 changes: 18 additions & 17 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,46 +11,47 @@ import {FileDescriptorProto} from "google-protobuf/google/protobuf/descriptor_pb

import {ProtoMsgTsdFormatter} from "./lib/format/ProtoMsgTsdFormatter";
import {ProtoSvcTsdFormatter} from "./lib/format/ProtoSvcTsdFormatter";
import { TplEngine } from "./lib/TplEngine";
import {TplEngine} from "./lib/TplEngine";

Utility.withAllStdIn((inputBuff: Buffer) => {

try {
let typedInputBuff = new Uint8Array((inputBuff as any).length);
//noinspection TypeScriptValidateTypes
const typedInputBuff = new Uint8Array((inputBuff as any).length);
typedInputBuff.set(inputBuff);

let codeGenRequest = CodeGeneratorRequest.deserializeBinary(typedInputBuff);
let codeGenResponse = new CodeGeneratorResponse();
let exportMap = new ExportMap();
let fileNameToDescriptor: { [key: string]: FileDescriptorProto } = {};
const codeGenRequest = CodeGeneratorRequest.deserializeBinary(typedInputBuff);
const codeGenResponse = new CodeGeneratorResponse();
const exportMap = new ExportMap();
const fileNameToDescriptor: { [key: string]: FileDescriptorProto } = {};

codeGenRequest.getProtoFileList().forEach(protoFileDescriptor => {
const isGrpcJs = "generate_package_definition" === codeGenRequest.getParameter();

codeGenRequest.getProtoFileList().forEach((protoFileDescriptor) => {
fileNameToDescriptor[protoFileDescriptor.getName()] = protoFileDescriptor;
exportMap.addFileDescriptor(protoFileDescriptor);
});

codeGenRequest.getFileToGenerateList().forEach(fileName => {
codeGenRequest.getFileToGenerateList().forEach((fileName) => {
// message part
let msgFileName = Utility.filePathFromProtoWithoutExt(fileName);
let msgTsdFile = new CodeGeneratorResponse.File();
const msgFileName = Utility.filePathFromProtoWithoutExt(fileName);
const msgTsdFile = new CodeGeneratorResponse.File();
msgTsdFile.setName(msgFileName + ".d.ts");
const msgModel = ProtoMsgTsdFormatter.format(fileNameToDescriptor[fileName], exportMap);
msgTsdFile.setContent(TplEngine.render('msg_tsd', msgModel));
msgTsdFile.setContent(TplEngine.render("msg_tsd", msgModel));
codeGenResponse.addFile(msgTsdFile);

// service part
let fileDescriptorModel = ProtoSvcTsdFormatter.format(fileNameToDescriptor[fileName], exportMap);
const fileDescriptorModel = ProtoSvcTsdFormatter.format(fileNameToDescriptor[fileName], exportMap, isGrpcJs);
if (fileDescriptorModel != null) {
let svcFileName = Utility.svcFilePathFromProtoWithoutExt(fileName);
let svtTsdFile = new CodeGeneratorResponse.File();
const svcFileName = Utility.svcFilePathFromProtoWithoutExt(fileName);
const svtTsdFile = new CodeGeneratorResponse.File();
svtTsdFile.setName(svcFileName + ".d.ts");
svtTsdFile.setContent(TplEngine.render('svc_tsd', fileDescriptorModel));
svtTsdFile.setContent(TplEngine.render("svc_tsd", fileDescriptorModel));
codeGenResponse.addFile(svtTsdFile);
}
});

process.stdout.write(new Buffer(codeGenResponse.serializeBinary()));
process.stdout.write(Buffer.from(codeGenResponse.serializeBinary()));
} catch (err) {
console.error("protoc-gen-ts error: " + err.stack + "\n");
process.exit(1);
Expand Down
Loading

0 comments on commit 03024f3

Please sign in to comment.