[Suggestion] provide error types
- Dominant language
- TypeScript
- Stars
- 4.8k
- Forks
- 716
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 10
Description
### Is your feature request related to a problem? Please describe.
Provide error types for dealing and identifing errors. If you promisify the methods and are working with async/await + try/catch, typescript mark errors as unknown.
### Describe the solution you'd like
Something like this:
```
interface Metadata {
get: (key: string) => string[];
}
export interface GRPCError {
message: string;
code: number;
details: string;
metadata: Metadata;
}
export function isGRPCError(err: unknown): err is GRPCError {
let e = err as GRPCError;
return (
typeof e.message === "string" &&
typeof e.code === "number" &&
typeof e.details === "string" &&
typeof e.metadata === "object" &&
typeof e.metadata.get === "function"
);
}
```
```
import { GRPCClient, isGRPCError } from "src";
(async () => {
try {
let resp = await GRPCClient.myMethod();
} catch (err) { // err is unknown
if (isGRPCError(err)) {
console.error("error reason:", err.metadata.get("reason"));
}
}
})();
```
Contributor guide
Assessment
This issue has not been assessed yet.