Skip to content

Commit 5b42e99

Browse files
committed
grpc-js: Refactor getting stack trace into function
1 parent 640a196 commit 5b42e99

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

packages/grpc-js/src/client.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,10 @@ export type ClientOptions = Partial<ChannelOptions> & {
108108
callInvocationTransformer?: CallInvocationTransformer;
109109
};
110110

111+
function getErrorStackString(error: Error): string {
112+
return error.stack!.split('\n').slice(1).join('\n');
113+
}
114+
111115
/**
112116
* A generic gRPC client. Primarily useful as a base class for all generated
113117
* clients.
@@ -340,7 +344,7 @@ export class Client {
340344
receivedStatus = true;
341345
if (status.code === Status.OK) {
342346
if (responseMessage === null) {
343-
const callerStack = callerStackError.stack!.split('\n').slice(1).join('\n');
347+
const callerStack = getErrorStackString(callerStackError);
344348
callProperties.callback!(callErrorFromStatus({
345349
code: Status.INTERNAL,
346350
details: 'No message received',
@@ -350,7 +354,7 @@ export class Client {
350354
callProperties.callback!(null, responseMessage);
351355
}
352356
} else {
353-
const callerStack = callerStackError.stack!.split('\n').slice(1).join('\n');
357+
const callerStack = getErrorStackString(callerStackError);
354358
callProperties.callback!(callErrorFromStatus(status, callerStack));
355359
}
356360
emitter.emit('status', status);
@@ -468,7 +472,7 @@ export class Client {
468472
receivedStatus = true;
469473
if (status.code === Status.OK) {
470474
if (responseMessage === null) {
471-
const callerStack = callerStackError.stack!.split('\n').slice(1).join('\n');
475+
const callerStack = getErrorStackString(callerStackError);
472476
callProperties.callback!(callErrorFromStatus({
473477
code: Status.INTERNAL,
474478
details: 'No message received',
@@ -478,7 +482,7 @@ export class Client {
478482
callProperties.callback!(null, responseMessage);
479483
}
480484
} else {
481-
const callerStack = callerStackError.stack!.split('\n').slice(1).join('\n');
485+
const callerStack = getErrorStackString(callerStackError);
482486
callProperties.callback!(callErrorFromStatus(status, callerStack));
483487
}
484488
emitter.emit('status', status);
@@ -597,7 +601,7 @@ export class Client {
597601
receivedStatus = true;
598602
stream.push(null);
599603
if (status.code !== Status.OK) {
600-
const callerStack = callerStackError.stack!.split('\n').slice(1).join('\n');
604+
const callerStack = getErrorStackString(callerStackError);
601605
stream.emit('error', callErrorFromStatus(status, callerStack));
602606
}
603607
stream.emit('status', status);
@@ -695,7 +699,7 @@ export class Client {
695699
receivedStatus = true;
696700
stream.push(null);
697701
if (status.code !== Status.OK) {
698-
const callerStack = callerStackError.stack!.split('\n').slice(1).join('\n');
702+
const callerStack = getErrorStackString(callerStackError);
699703
stream.emit('error', callErrorFromStatus(status, callerStack));
700704
}
701705
stream.emit('status', status);

0 commit comments

Comments
 (0)