export function castGrpcError()

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;
}