feat(ts-protoc-gen): change unary grpcweb responses to promises

This commit is contained in:
41666 2020-10-11 19:08:51 -04:00
parent c26f3c9ef7
commit a9af2d10bd

View file

@ -226,14 +226,10 @@ function printServiceStub(methodPrinter: Printer, service: RPCDescriptor) {
function printUnaryStubMethod(printer: CodePrinter, method: RPCMethodDescriptor) { function printUnaryStubMethod(printer: CodePrinter, method: RPCMethodDescriptor) {
printer printer
.printLn( .printLn(
`${method.serviceName}Client.prototype.${method.nameAsCamelCase} = function ${method.functionName}(requestMessage, metadata, callback) {` `${method.serviceName}Client.prototype.${method.nameAsCamelCase} = function ${method.functionName}(requestMessage, metadata) {`
) )
.indent() .indent()
.printLn(`if (arguments.length === 2) {`) .printLn(`let cancelled = false;`)
.indent()
.printLn(`callback = arguments[1];`)
.dedent()
.printLn('}')
.printLn( .printLn(
`var client = grpc.unary(${method.serviceName}.${method.nameAsPascalCase}, {` `var client = grpc.unary(${method.serviceName}.${method.nameAsPascalCase}, {`
) )
@ -245,18 +241,18 @@ function printUnaryStubMethod(printer: CodePrinter, method: RPCMethodDescriptor)
.printLn(`debug: this.options.debug,`) .printLn(`debug: this.options.debug,`)
.printLn(`onEnd: function (response) {`) .printLn(`onEnd: function (response) {`)
.indent() .indent()
.printLn(`if (callback) {`) .printLn(`if (cancelled === false) {`)
.indent() .indent()
.printLn(`if (response.status !== grpc.Code.OK) {`) .printLn(`if (response.status !== grpc.Code.OK) {`)
.indent() .indent()
.printLn(`var err = new Error(response.statusMessage);`) .printLn(`var err = new Error(response.statusMessage);`)
.printLn(`err.code = response.status;`) .printLn(`err.code = response.status;`)
.printLn(`err.metadata = response.trailers;`) .printLn(`err.metadata = response.trailers;`)
.printLn(`callback(err, null);`) .printLn(`Promise.reject(err);`)
.dedent() .dedent()
.printLn(`} else {`) .printLn(`} else {`)
.indent() .indent()
.printLn(`callback(null, response.message);`) .printLn(`Promise.resolve(response.message);`)
.dedent() .dedent()
.printLn(`}`) .printLn(`}`)
.dedent() .dedent()
@ -269,8 +265,8 @@ function printUnaryStubMethod(printer: CodePrinter, method: RPCMethodDescriptor)
.indent() .indent()
.printLn(`cancel: function () {`) .printLn(`cancel: function () {`)
.indent() .indent()
.printLn(`callback = null;`) .printLn(`cancelled = true;`)
.printLn(`client.close();`) .printLn(`Promise.reject(null);`)
.dedent() .dedent()
.printLn(`}`) .printLn(`}`)
.dedent() .dedent()
@ -527,19 +523,13 @@ function printUnaryStubMethodTypes(printer: CodePrinter, method: RPCMethodDescri
.indent() .indent()
.printLn(`requestMessage: ${method.requestType},`) .printLn(`requestMessage: ${method.requestType},`)
.printLn(`metadata: grpc.Metadata,`) .printLn(`metadata: grpc.Metadata,`)
.printLn(
`callback: (error: ServiceError|null, responseMessage: ${method.responseType}|null) => void`
)
.dedent() .dedent()
.printLn(`): UnaryResponse;`) .printLn(`): Promise<UnaryResponse>;`)
.printLn(`${method.nameAsCamelCase}(`) .printLn(`${method.nameAsCamelCase}(`)
.indent() .indent()
.printLn(`requestMessage: ${method.requestType},`) .printLn(`requestMessage: ${method.requestType},`)
.printLn(
`callback: (error: ServiceError|null, responseMessage: ${method.responseType}|null) => void`
)
.dedent() .dedent()
.printLn(`): UnaryResponse;`); .printLn(`): Promise<UnaryResponse>;`);
} }
function printServerStreamStubMethodTypes( function printServerStreamStubMethodTypes(