Skip to content

Commit

Permalink
Handle server side errors
Browse files Browse the repository at this point in the history
  • Loading branch information
slumbi authored and kondi committed May 17, 2018
1 parent c6bcb46 commit 0e0f8d1
Showing 1 changed file with 16 additions and 8 deletions.
24 changes: 16 additions & 8 deletions src/index.ts
Expand Up @@ -52,18 +52,26 @@ function createMethod(rxImpl: DynamicMethods, name: string, serviceMethods: Dyna

function createUnaryMethod(rxImpl: DynamicMethods, name: string) {
return function(call: any, callback: any) {
const response: Observable<any> = rxImpl[name](call.request, call.metadata);
response.subscribe(
data => callback(null, data),
error => callback(error)
);
try {
const response: Observable<any> = rxImpl[name](call.request, call.metadata);
response.subscribe(
data => callback(null, data),
error => callback(error)
);
} catch (error) {
callback(error);
}
};
}

function createStreamingMethod(rxImpl: DynamicMethods, name: string) {
return async function(call: any, callback: any) {
const response: Observable<any> = rxImpl[name](call.request, call.metadata);
await response.forEach(data => call.write(data));
return async function(call: any) {
try {
const response: Observable<any> = rxImpl[name](call.request, call.metadata);
await response.forEach(data => call.write(data));
} catch (error) {
call.emit('error', error);
}
call.end();
};
}
Expand Down

0 comments on commit 0e0f8d1

Please sign in to comment.