From 08f06bb407ae68cb30af707b60f65d1e4de56de2 Mon Sep 17 00:00:00 2001 From: Simon Liang Date: Thu, 25 Oct 2018 21:11:04 +0800 Subject: [PATCH 01/21] fixed shit --- package.json | 22 +++++++++++----------- src/grpc.server.ts | 9 ++++++--- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index b1ed0f8..62fefbf 100644 --- a/package.json +++ b/package.json @@ -1,15 +1,15 @@ { - "name": "@loopback/grpc", - "version": "1.0.0-alpha.2", + "name": "@xanthous/loopback4-extension-grpc", + "version": "1.0.0", "description": "A gRPC extencion for LoopBack Next", "main": "index.js", "engines": { "node": ">=8" }, "scripts": { - "build": "lb-tsc es2017", + "build": "lb-tsc es2017 --outDir dist", "build:apidocs": "lb-apidocs", - "build:watch": "lb-tsc es2017 --watch", + "build:watch": "lb-tsc es2017 --outDir dist --watch", "clean": "lb-clean loopback-grpc*.tgz dist package api-docs", "prepublishOnly": "npm run build && npm run build:apidocs", "pretest": "npm run lint:fix && npm run clean && npm run build", @@ -47,19 +47,19 @@ "compilers" ], "dependencies": { - "@loopback/context": "^4.0.0-alpha.30", - "@loopback/core": "^4.0.0-alpha.32", - "@loopback/metadata": "^4.0.0-alpha.9", - "@loopback/repository": "^4.0.0-alpha.28", - "@loopback/rest": "^4.0.0-alpha.24", + "@loopback/context": "1.0.0", + "@loopback/core": "1.0.0", + "@loopback/metadata": "1.0.0", + "@loopback/repository": "1.0.0", + "@loopback/rest": "1.0.0", "@mean-expert/protoc-ts": "0.0.2", "glob": "^7.1.2", "grpc": "^1.6.6", "protobufjs": "^6.8.0" }, "devDependencies": { - "@loopback/build": "^4.0.0-alpha.13", - "@loopback/testlab": "^4.0.0-alpha.23", + "@loopback/build": "1.0.0", + "@loopback/testlab": "1.0.0", "@types/glob": "^5.0.35" } } diff --git a/src/grpc.server.ts b/src/grpc.server.ts index 789bbd6..212c835 100644 --- a/src/grpc.server.ts +++ b/src/grpc.server.ts @@ -1,6 +1,7 @@ import { Application, CoreBindings, + BindingKey, Server, ControllerClass, } from '@loopback/core'; @@ -35,6 +36,9 @@ export class GrpcServer extends Context implements Server { * GRPCBindings.CONFIG). * */ + + listening: boolean = true; + constructor( @inject(CoreBindings.APPLICATION_INSTANCE) protected app: Application, @inject(GrpcBindings.GRPC_SERVER) protected server: grpc.Server, @@ -137,9 +141,8 @@ export class GrpcServer extends Context implements Server { .toClass(ctor) .inScope(BindingScope.CONTEXT); context.bind(GrpcBindings.GRPC_METHOD_NAME).to(methodName); - const sequence: GrpcSequence = await context.get( - GrpcBindings.GRPC_SEQUENCE, - ); + const key: BindingKey = BindingKey.create(GrpcBindings.GRPC_SEQUENCE); + const sequence: GrpcSequence = await context.get(key); return sequence.unaryCall(call); } }; From 8e74f5aad8db3dfbe92afa320160269cd63d9bd9 Mon Sep 17 00:00:00 2001 From: Simon Liang Date: Thu, 25 Oct 2018 21:12:19 +0800 Subject: [PATCH 02/21] no debugger --- src/grpc.server.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/grpc.server.ts b/src/grpc.server.ts index 212c835..c806050 100644 --- a/src/grpc.server.ts +++ b/src/grpc.server.ts @@ -130,7 +130,6 @@ export class GrpcServer extends Context implements Server { handleUnary().then( result => callback(null, result), error => { - debugger; callback(error); }, ); From ef8c1c4e6fa166bfd14f21866324a4f0fa1ccaaf Mon Sep 17 00:00:00 2001 From: Simon Liang Date: Thu, 25 Oct 2018 21:14:53 +0800 Subject: [PATCH 03/21] version --- package.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 62fefbf..2a5a9f2 100644 --- a/package.json +++ b/package.json @@ -47,19 +47,19 @@ "compilers" ], "dependencies": { - "@loopback/context": "1.0.0", - "@loopback/core": "1.0.0", - "@loopback/metadata": "1.0.0", - "@loopback/repository": "1.0.0", - "@loopback/rest": "1.0.0", + "@loopback/context": "^1.0.0", + "@loopback/core": "^1.0.0", + "@loopback/metadata": "^1.0.0", + "@loopback/repository": "^1.0.0", + "@loopback/rest": "^1.0.0", "@mean-expert/protoc-ts": "0.0.2", "glob": "^7.1.2", "grpc": "^1.6.6", "protobufjs": "^6.8.0" }, "devDependencies": { - "@loopback/build": "1.0.0", - "@loopback/testlab": "1.0.0", + "@loopback/build": "^1.0.0", + "@loopback/testlab": "^1.0.0", "@types/glob": "^5.0.35" } } From 160a9efaa5e86cad4a73338319543e515b0a963d Mon Sep 17 00:00:00 2001 From: Simon Liang Date: Thu, 25 Oct 2018 21:25:10 +0800 Subject: [PATCH 04/21] wrong protoc --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 2a5a9f2..91b8904 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@xanthous/loopback4-extension-grpc", - "version": "1.0.0", + "version": "1.0.1", "description": "A gRPC extencion for LoopBack Next", "main": "index.js", "engines": { @@ -52,7 +52,7 @@ "@loopback/metadata": "^1.0.0", "@loopback/repository": "^1.0.0", "@loopback/rest": "^1.0.0", - "@mean-expert/protoc-ts": "0.0.2", + "@xanthous/protoc-ts": "^0.0.4", "glob": "^7.1.2", "grpc": "^1.6.6", "protobufjs": "^6.8.0" From 0e8869575578bb1529c831fccd93dedb0c030e76 Mon Sep 17 00:00:00 2001 From: Simon Liang Date: Sat, 27 Oct 2018 23:29:38 +0800 Subject: [PATCH 05/21] added all the other calls, now need to fix protoc-ts to include those types properly --- src/grpc.sequence.ts | 16 ++++++++ src/grpc.server.ts | 97 +++++++++++++++++++++++++++++++------------- 2 files changed, 85 insertions(+), 28 deletions(-) diff --git a/src/grpc.sequence.ts b/src/grpc.sequence.ts index 456e508..dee08f3 100644 --- a/src/grpc.sequence.ts +++ b/src/grpc.sequence.ts @@ -31,4 +31,20 @@ export class GrpcSequence implements GrpcSequenceInterface { // Do something after call return reply; } + + // tslint:disable-next-line:no-any + async clientStreamingCall(clientStream: grpc.ServerReadableStream): Promise { + const reply = await this.controller[this.method](clientStream); + return reply; + } + + // tslint:disable-next-line:no-any + processServerStream(stream: grpc.ServerWriteableStream): void { + this.controller[this.method](stream); + } + + // tslint:disable-next-line:no-any + processBidiStream(stream: grpc.ServerDuplexStream): void { + this.controller[this.method](stream); + } } diff --git a/src/grpc.server.ts b/src/grpc.server.ts index c806050..cdeac4a 100644 --- a/src/grpc.server.ts +++ b/src/grpc.server.ts @@ -6,13 +6,12 @@ import { ControllerClass, } from '@loopback/core'; import {MetadataInspector} from '@loopback/metadata'; -import {Context, inject, Constructor} from '@loopback/context'; +import {Context, inject} from '@loopback/context'; import {GRPC_METHODS} from './decorators/grpc.decorator'; import {GrpcBindings} from './keys'; import {GrpcSequence} from './grpc.sequence'; import {Config} from './types'; import * as grpc from 'grpc'; -import {Service} from 'protobufjs'; import {GrpcGenerator} from './grpc.generator'; import {BindingScope} from '@loopback/context/dist/src/binding'; const debug = require('debug')('loopback:grpc:server'); @@ -103,7 +102,7 @@ export class GrpcServer extends Context implements Server { // tslint:disable-next-line:no-any const serviceDef: grpc.ServiceDefinition = serviceMeta.service; this.server.addService(serviceDef, { - [config.METHOD_NAME]: this.setupGrpcCall(ctor, methodName), + [config.METHOD_NAME]: this.setupGrpcCall(ctor, methodName, config), }); } } @@ -111,39 +110,81 @@ export class GrpcServer extends Context implements Server { * @method setupGrpcCall * @author Miroslav Bajtos * @author Jonathan Casarrubias + * @author Simon Liang * @license MIT - * @param prototype + * @param ctor * @param methodName */ private setupGrpcCall( ctor: ControllerClass, methodName: string, + config: Config.Method // tslint:disable-next-line:no-any - ): grpc.handleUnaryCall, any> { + ): grpc.handleCall { const context: Context = this; - return function( - // tslint:disable-next-line:no-any - call: grpc.ServerUnaryCall, - // tslint:disable-next-line:no-any - callback: (err: any, value?: T) => void, - ) { - handleUnary().then( - result => callback(null, result), - error => { - callback(error); - }, - ); - async function handleUnary(): Promise { - context.bind(GrpcBindings.CONTEXT).to(context); - context - .bind(GrpcBindings.GRPC_CONTROLLER) - .toClass(ctor) - .inScope(BindingScope.CONTEXT); - context.bind(GrpcBindings.GRPC_METHOD_NAME).to(methodName); - const key: BindingKey = BindingKey.create(GrpcBindings.GRPC_SEQUENCE); - const sequence: GrpcSequence = await context.get(key); - return sequence.unaryCall(call); + + context.bind(GrpcBindings.CONTEXT).to(context); + context + .bind(GrpcBindings.GRPC_CONTROLLER) + .toClass(ctor) + .inScope(BindingScope.CONTEXT); + context.bind(GrpcBindings.GRPC_METHOD_NAME).to(methodName); + const bindingKey: BindingKey = BindingKey.create(GrpcBindings.GRPC_SEQUENCE); + + if (config.REQUEST_STREAM) { + if (config.RESPONSE_STREAM) { + // bidi stream + return function( + // tslint:disable-next-line:no-any + bidiStream: grpc.ServerDuplexStream + ) { + context.get(bindingKey).then((sequence: GrpcSequence) => sequence.processBidiStream(bidiStream)); + }; + } else { + // client streaming + return function( + // tslint:disable-next-line:no-any + clientStream: grpc.ServerReadableStream, + // tslint:disable-next-line:no-any + callback: grpc.sendUnaryData + ) { + handleClientStream().then( + result => callback(null, result), + error => callback(error, null), + ); + async function handleClientStream(): Promise { + const sequence: GrpcSequence = await context.get(bindingKey); + return sequence.clientStreamingCall(clientStream); + } + } + } + } else { + if (config.RESPONSE_STREAM) { + // server streaming + return function( + // tslint:disable-next-line:no-any + serverStream: grpc.ServerWriteableStream + ) { + context.get(bindingKey).then((sequence: GrpcSequence) => sequence.processServerStream(serverStream)); + } + } else { + // unary call + return function( + // tslint:disable-next-line:no-any + call: grpc.ServerUnaryCall, + // tslint:disable-next-line:no-any + callback: grpc.sendUnaryData, + ) { + handleUnary().then( + result => callback(null, result), + error => callback(error, null), + ); + async function handleUnary(): Promise { + const sequence: GrpcSequence = await context.get(bindingKey); + return sequence.unaryCall(call); + } + }; } - }; + } } } From bf7f3e29fa23ce119c464455783da7002256e052 Mon Sep 17 00:00:00 2001 From: Simon Liang Date: Sun, 28 Oct 2018 00:22:10 +0800 Subject: [PATCH 06/21] added streaming calls generation --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 91b8904..4cdd361 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@xanthous/loopback4-extension-grpc", - "version": "1.0.1", + "version": "1.0.2", "description": "A gRPC extencion for LoopBack Next", "main": "index.js", "engines": { @@ -52,7 +52,7 @@ "@loopback/metadata": "^1.0.0", "@loopback/repository": "^1.0.0", "@loopback/rest": "^1.0.0", - "@xanthous/protoc-ts": "^0.0.4", + "@xanthous/protoc-ts": "^0.0.5", "glob": "^7.1.2", "grpc": "^1.6.6", "protobufjs": "^6.8.0" From 58ca7f3102a27aaa87610df9b14eb7ec73c8f79c Mon Sep 17 00:00:00 2001 From: Simon Liang Date: Sun, 28 Oct 2018 00:28:09 +0800 Subject: [PATCH 07/21] v1.0.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4cdd361..148ef8e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@xanthous/loopback4-extension-grpc", - "version": "1.0.2", + "version": "1.0.3", "description": "A gRPC extencion for LoopBack Next", "main": "index.js", "engines": { From 72fb0818fc3d93bdd3ebae58f9f79770385b8712 Mon Sep 17 00:00:00 2001 From: Simon Liang Date: Sun, 28 Oct 2018 00:43:06 +0800 Subject: [PATCH 08/21] upgraded protoc-ts --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 148ef8e..2f8e067 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "@loopback/metadata": "^1.0.0", "@loopback/repository": "^1.0.0", "@loopback/rest": "^1.0.0", - "@xanthous/protoc-ts": "^0.0.5", + "@xanthous/protoc-ts": "^0.0.6", "glob": "^7.1.2", "grpc": "^1.6.6", "protobufjs": "^6.8.0" From 44b877d5e91bc902376f9c42913773de9705d1ae Mon Sep 17 00:00:00 2001 From: Simon Liang Date: Sun, 28 Oct 2018 00:43:47 +0800 Subject: [PATCH 09/21] v1.0.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2f8e067..7812522 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@xanthous/loopback4-extension-grpc", - "version": "1.0.3", + "version": "1.0.4", "description": "A gRPC extencion for LoopBack Next", "main": "index.js", "engines": { From 6379137ef4aac004ad9e5cbc439c9da6e2922497 Mon Sep 17 00:00:00 2001 From: Simon Liang Date: Sun, 28 Oct 2018 00:49:10 +0800 Subject: [PATCH 10/21] v1.0.5 --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 7812522..571cd49 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@xanthous/loopback4-extension-grpc", - "version": "1.0.4", + "version": "1.0.5", "description": "A gRPC extencion for LoopBack Next", "main": "index.js", "engines": { @@ -52,7 +52,7 @@ "@loopback/metadata": "^1.0.0", "@loopback/repository": "^1.0.0", "@loopback/rest": "^1.0.0", - "@xanthous/protoc-ts": "^0.0.6", + "@xanthous/protoc-ts": "^0.1.0", "glob": "^7.1.2", "grpc": "^1.6.6", "protobufjs": "^6.8.0" From fa6124bddab9b22b84d7b5e536b70c273d115b20 Mon Sep 17 00:00:00 2001 From: Simon Liang Date: Thu, 25 Oct 2018 21:25:10 +0800 Subject: [PATCH 11/21] wrong protoc --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 2a5a9f2..91b8904 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@xanthous/loopback4-extension-grpc", - "version": "1.0.0", + "version": "1.0.1", "description": "A gRPC extencion for LoopBack Next", "main": "index.js", "engines": { @@ -52,7 +52,7 @@ "@loopback/metadata": "^1.0.0", "@loopback/repository": "^1.0.0", "@loopback/rest": "^1.0.0", - "@mean-expert/protoc-ts": "0.0.2", + "@xanthous/protoc-ts": "^0.0.4", "glob": "^7.1.2", "grpc": "^1.6.6", "protobufjs": "^6.8.0" From 10eba09dcd7d227d4eef9540920531382918d761 Mon Sep 17 00:00:00 2001 From: Simon Liang Date: Fri, 26 Oct 2018 08:40:16 +0800 Subject: [PATCH 12/21] Update package.json --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 91b8904..7a45f9d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { - "name": "@xanthous/loopback4-extension-grpc", - "version": "1.0.1", + "name": "@loopback/grpc", + "version": "1.0.0", "description": "A gRPC extencion for LoopBack Next", "main": "index.js", "engines": { From 0356c9f42b654f00c487cecba41e2db28fcdc47f Mon Sep 17 00:00:00 2001 From: Simon Liang Date: Sat, 27 Oct 2018 23:29:38 +0800 Subject: [PATCH 13/21] added all streaming calls --- src/grpc.sequence.ts | 16 ++++++++ src/grpc.server.ts | 97 +++++++++++++++++++++++++++++++------------- 2 files changed, 85 insertions(+), 28 deletions(-) diff --git a/src/grpc.sequence.ts b/src/grpc.sequence.ts index 456e508..dee08f3 100644 --- a/src/grpc.sequence.ts +++ b/src/grpc.sequence.ts @@ -31,4 +31,20 @@ export class GrpcSequence implements GrpcSequenceInterface { // Do something after call return reply; } + + // tslint:disable-next-line:no-any + async clientStreamingCall(clientStream: grpc.ServerReadableStream): Promise { + const reply = await this.controller[this.method](clientStream); + return reply; + } + + // tslint:disable-next-line:no-any + processServerStream(stream: grpc.ServerWriteableStream): void { + this.controller[this.method](stream); + } + + // tslint:disable-next-line:no-any + processBidiStream(stream: grpc.ServerDuplexStream): void { + this.controller[this.method](stream); + } } diff --git a/src/grpc.server.ts b/src/grpc.server.ts index c806050..cdeac4a 100644 --- a/src/grpc.server.ts +++ b/src/grpc.server.ts @@ -6,13 +6,12 @@ import { ControllerClass, } from '@loopback/core'; import {MetadataInspector} from '@loopback/metadata'; -import {Context, inject, Constructor} from '@loopback/context'; +import {Context, inject} from '@loopback/context'; import {GRPC_METHODS} from './decorators/grpc.decorator'; import {GrpcBindings} from './keys'; import {GrpcSequence} from './grpc.sequence'; import {Config} from './types'; import * as grpc from 'grpc'; -import {Service} from 'protobufjs'; import {GrpcGenerator} from './grpc.generator'; import {BindingScope} from '@loopback/context/dist/src/binding'; const debug = require('debug')('loopback:grpc:server'); @@ -103,7 +102,7 @@ export class GrpcServer extends Context implements Server { // tslint:disable-next-line:no-any const serviceDef: grpc.ServiceDefinition = serviceMeta.service; this.server.addService(serviceDef, { - [config.METHOD_NAME]: this.setupGrpcCall(ctor, methodName), + [config.METHOD_NAME]: this.setupGrpcCall(ctor, methodName, config), }); } } @@ -111,39 +110,81 @@ export class GrpcServer extends Context implements Server { * @method setupGrpcCall * @author Miroslav Bajtos * @author Jonathan Casarrubias + * @author Simon Liang * @license MIT - * @param prototype + * @param ctor * @param methodName */ private setupGrpcCall( ctor: ControllerClass, methodName: string, + config: Config.Method // tslint:disable-next-line:no-any - ): grpc.handleUnaryCall, any> { + ): grpc.handleCall { const context: Context = this; - return function( - // tslint:disable-next-line:no-any - call: grpc.ServerUnaryCall, - // tslint:disable-next-line:no-any - callback: (err: any, value?: T) => void, - ) { - handleUnary().then( - result => callback(null, result), - error => { - callback(error); - }, - ); - async function handleUnary(): Promise { - context.bind(GrpcBindings.CONTEXT).to(context); - context - .bind(GrpcBindings.GRPC_CONTROLLER) - .toClass(ctor) - .inScope(BindingScope.CONTEXT); - context.bind(GrpcBindings.GRPC_METHOD_NAME).to(methodName); - const key: BindingKey = BindingKey.create(GrpcBindings.GRPC_SEQUENCE); - const sequence: GrpcSequence = await context.get(key); - return sequence.unaryCall(call); + + context.bind(GrpcBindings.CONTEXT).to(context); + context + .bind(GrpcBindings.GRPC_CONTROLLER) + .toClass(ctor) + .inScope(BindingScope.CONTEXT); + context.bind(GrpcBindings.GRPC_METHOD_NAME).to(methodName); + const bindingKey: BindingKey = BindingKey.create(GrpcBindings.GRPC_SEQUENCE); + + if (config.REQUEST_STREAM) { + if (config.RESPONSE_STREAM) { + // bidi stream + return function( + // tslint:disable-next-line:no-any + bidiStream: grpc.ServerDuplexStream + ) { + context.get(bindingKey).then((sequence: GrpcSequence) => sequence.processBidiStream(bidiStream)); + }; + } else { + // client streaming + return function( + // tslint:disable-next-line:no-any + clientStream: grpc.ServerReadableStream, + // tslint:disable-next-line:no-any + callback: grpc.sendUnaryData + ) { + handleClientStream().then( + result => callback(null, result), + error => callback(error, null), + ); + async function handleClientStream(): Promise { + const sequence: GrpcSequence = await context.get(bindingKey); + return sequence.clientStreamingCall(clientStream); + } + } + } + } else { + if (config.RESPONSE_STREAM) { + // server streaming + return function( + // tslint:disable-next-line:no-any + serverStream: grpc.ServerWriteableStream + ) { + context.get(bindingKey).then((sequence: GrpcSequence) => sequence.processServerStream(serverStream)); + } + } else { + // unary call + return function( + // tslint:disable-next-line:no-any + call: grpc.ServerUnaryCall, + // tslint:disable-next-line:no-any + callback: grpc.sendUnaryData, + ) { + handleUnary().then( + result => callback(null, result), + error => callback(error, null), + ); + async function handleUnary(): Promise { + const sequence: GrpcSequence = await context.get(bindingKey); + return sequence.unaryCall(call); + } + }; } - }; + } } } From bbd9fc404c33090b780ac3928b02a2f252a07d23 Mon Sep 17 00:00:00 2001 From: Simon Liang Date: Sun, 28 Oct 2018 00:22:10 +0800 Subject: [PATCH 14/21] added streaming calls generation --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 7a45f9d..977fc22 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@loopback/grpc", - "version": "1.0.0", + "version": "1.0.1", "description": "A gRPC extencion for LoopBack Next", "main": "index.js", "engines": { @@ -52,7 +52,7 @@ "@loopback/metadata": "^1.0.0", "@loopback/repository": "^1.0.0", "@loopback/rest": "^1.0.0", - "@xanthous/protoc-ts": "^0.0.4", + "@xanthous/protoc-ts": "^0.0.5", "glob": "^7.1.2", "grpc": "^1.6.6", "protobufjs": "^6.8.0" From 6c892b651671c72fe929be8d41b085d8074f1529 Mon Sep 17 00:00:00 2001 From: Simon Liang Date: Sun, 28 Oct 2018 00:28:09 +0800 Subject: [PATCH 15/21] v1.0.3 --- package.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/package.json b/package.json index 977fc22..7271022 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,11 @@ { +<<<<<<< HEAD "name": "@loopback/grpc", "version": "1.0.1", +======= + "name": "@xanthous/loopback4-extension-grpc", + "version": "1.0.3", +>>>>>>> 58ca7f3... v1.0.3 "description": "A gRPC extencion for LoopBack Next", "main": "index.js", "engines": { From 0a9037919e5518d364a2552a9812c6f6d25a836e Mon Sep 17 00:00:00 2001 From: Simon Liang Date: Sun, 28 Oct 2018 00:43:06 +0800 Subject: [PATCH 16/21] upgraded protoc-ts --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7271022..b3ffdeb 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ "@loopback/metadata": "^1.0.0", "@loopback/repository": "^1.0.0", "@loopback/rest": "^1.0.0", - "@xanthous/protoc-ts": "^0.0.5", + "@xanthous/protoc-ts": "^0.0.6", "glob": "^7.1.2", "grpc": "^1.6.6", "protobufjs": "^6.8.0" From e1014c87eadc695ca3eb71cd9cf48da0ebd655c5 Mon Sep 17 00:00:00 2001 From: Simon Liang Date: Sun, 28 Oct 2018 00:43:47 +0800 Subject: [PATCH 17/21] v1.0.4 --- package.json | 5 ----- 1 file changed, 5 deletions(-) diff --git a/package.json b/package.json index b3ffdeb..5b98e8a 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,6 @@ { -<<<<<<< HEAD "name": "@loopback/grpc", "version": "1.0.1", -======= - "name": "@xanthous/loopback4-extension-grpc", - "version": "1.0.3", ->>>>>>> 58ca7f3... v1.0.3 "description": "A gRPC extencion for LoopBack Next", "main": "index.js", "engines": { From 1708e746c79401d0453e56cd2b39a1ee18a549c1 Mon Sep 17 00:00:00 2001 From: Simon Liang Date: Sun, 28 Oct 2018 00:49:10 +0800 Subject: [PATCH 18/21] v1.0.5 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5b98e8a..69c5163 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "@loopback/metadata": "^1.0.0", "@loopback/repository": "^1.0.0", "@loopback/rest": "^1.0.0", - "@xanthous/protoc-ts": "^0.0.6", + "@xanthous/protoc-ts": "^0.1.0", "glob": "^7.1.2", "grpc": "^1.6.6", "protobufjs": "^6.8.0" From 6e7ec8b5916f86bad6aac9ef3fd9ee8d96ad271a Mon Sep 17 00:00:00 2001 From: Simon Liang Date: Sun, 28 Oct 2018 01:04:50 +0800 Subject: [PATCH 19/21] fixing test script --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 69c5163..ae3f3dc 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "clean": "lb-clean loopback-grpc*.tgz dist package api-docs", "prepublishOnly": "npm run build && npm run build:apidocs", "pretest": "npm run lint:fix && npm run clean && npm run build", - "test": "lb-mocha \"DIST/test/unit/**/*.js\" \"DIST/test/acceptance/**/*.js\"", + "test": "lb-mocha \"dist/test/unit/**/*.js\" \"dist/test/acceptance/**/*.js\"", "lint": "npm run prettier:check && npm run tslint", "lint:fix": "npm run prettier:fix && npm run tslint:fix", "tslint": "lb-tslint --project tsconfig.json", From 34eec958130682359d7c763451d8c49da593a799 Mon Sep 17 00:00:00 2001 From: Simon Liang Date: Mon, 29 Oct 2018 16:18:30 +0800 Subject: [PATCH 20/21] fixed the method creation so there is multiple rpc endpoints --- src/grpc.server.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/grpc.server.ts b/src/grpc.server.ts index cdeac4a..7f5b26e 100644 --- a/src/grpc.server.ts +++ b/src/grpc.server.ts @@ -100,7 +100,8 @@ export class GrpcServer extends Context implements Server { // tslint:disable-next-line:no-any const serviceMeta = pkgMeta[config.SERVICE_NAME] as any; // tslint:disable-next-line:no-any - const serviceDef: grpc.ServiceDefinition = serviceMeta.service; + const serviceDef: grpc.ServiceDefinition = + { [methodName]: serviceMeta.service[methodName] }; this.server.addService(serviceDef, { [config.METHOD_NAME]: this.setupGrpcCall(ctor, methodName, config), }); From 9341b9948995cf7d6c9d3adad11346abeb465fdd Mon Sep 17 00:00:00 2001 From: Osman Mesut Ozcan Date: Tue, 30 Oct 2018 11:58:20 +0300 Subject: [PATCH 21/21] update package version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ae3f3dc..fc35ea6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@loopback/grpc", - "version": "1.0.1", + "version": "1.0.7", "description": "A gRPC extencion for LoopBack Next", "main": "index.js", "engines": {