mirror of
https://github.com/getwax/wax.git
synced 2026-01-09 23:27:58 -05:00
29 lines
580 B
TypeScript
29 lines
580 B
TypeScript
import z from 'zod';
|
|
|
|
class JsonRpcError extends Error {
|
|
code: number | string;
|
|
data: unknown;
|
|
|
|
constructor({ code, data, message }: RawJsonRpcError) {
|
|
super(message);
|
|
|
|
this.code = code;
|
|
this.data = data;
|
|
}
|
|
|
|
static parse(rawError: unknown) {
|
|
return new JsonRpcError(RawJsonRpcError.parse(rawError));
|
|
}
|
|
}
|
|
|
|
const RawJsonRpcError = z.object({
|
|
code: z.union([z.number().int(), z.string()]),
|
|
data: z.unknown(),
|
|
message: z.string(),
|
|
});
|
|
|
|
type RawJsonRpcError = z.infer<typeof RawJsonRpcError>;
|
|
|
|
export default JsonRpcError;
|
|
export { RawJsonRpcError };
|