in src/errors.ts [319:336]
export function castGrpcError<T extends Error>(err: T): Error {
if (err.constructor !== Error) {
return err; // it looks like it's already some kind of typed error
}
let ctor = getMatchingGrpcError(err.message);
if (!ctor && 'code' in err && typeof (err as any).code === 'number') {
ctor = grpcCodeToError.get((err as any).code);
}
if (!ctor) {
ctor = err.message.includes('etcdserver:') ? EtcdError : GRPCGenericError;
}
const castError = new ctor(rewriteErrorName(err.message, ctor));
castError.stack = rewriteErrorName(String(err.stack), ctor);
return castError;
}