refactor(cli/js): Replace constructError() with getErrorClass() (#4189)

Flattens dispatch error handling to produce one less useless stack frame on op errors.
This commit is contained in:
Nayeem Rahman 2020-02-29 18:04:10 +00:00 committed by GitHub
parent f55b22e195
commit 1f9d158bdc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 32 additions and 39 deletions

View file

@ -25,48 +25,48 @@ export enum ErrorKind {
Other = 22
}
export function constructError(kind: ErrorKind, msg: string): never {
export function getErrorClass(kind: ErrorKind): { new (msg: string): Error } {
switch (kind) {
case ErrorKind.TypeError:
throw new TypeError(msg);
return TypeError;
case ErrorKind.Other:
throw new Error(msg);
return Error;
case ErrorKind.URIError:
throw new URIError(msg);
return URIError;
case ErrorKind.NotFound:
throw new NotFound(msg);
return NotFound;
case ErrorKind.PermissionDenied:
throw new PermissionDenied(msg);
return PermissionDenied;
case ErrorKind.ConnectionRefused:
throw new ConnectionRefused(msg);
return ConnectionRefused;
case ErrorKind.ConnectionReset:
throw new ConnectionReset(msg);
return ConnectionReset;
case ErrorKind.ConnectionAborted:
throw new ConnectionAborted(msg);
return ConnectionAborted;
case ErrorKind.NotConnected:
throw new NotConnected(msg);
return NotConnected;
case ErrorKind.AddrInUse:
throw new AddrInUse(msg);
return AddrInUse;
case ErrorKind.AddrNotAvailable:
throw new AddrNotAvailable(msg);
return AddrNotAvailable;
case ErrorKind.BrokenPipe:
throw new BrokenPipe(msg);
return BrokenPipe;
case ErrorKind.AlreadyExists:
throw new AlreadyExists(msg);
return AlreadyExists;
case ErrorKind.InvalidData:
throw new InvalidData(msg);
return InvalidData;
case ErrorKind.TimedOut:
throw new TimedOut(msg);
return TimedOut;
case ErrorKind.Interrupted:
throw new Interrupted(msg);
return Interrupted;
case ErrorKind.WriteZero:
throw new WriteZero(msg);
return WriteZero;
case ErrorKind.UnexpectedEof:
throw new UnexpectedEof(msg);
return UnexpectedEof;
case ErrorKind.BadResource:
throw new BadResource(msg);
return BadResource;
case ErrorKind.Http:
throw new Http(msg);
return Http;
}
}