Files
wax/packages/demos/inpage/src/JsonRpcError.ts
2024-04-02 15:33:21 +11:00

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