UNPKG

@hazae41/jsonrpc

Version:

Rust-like JSON-RPC for TypeScript

1 lines 8.02 kB
{"version":3,"file":"err.mjs","sources":["../../../../src/mods/rpc/err.ts"],"sourcesContent":["import { Err } from \"@hazae41/result\"\nimport { Errors } from \"libs/errors/index.js\"\nimport { RpcId } from \"./request.js\"\n\nexport interface RpcErrorInit {\n readonly code: number,\n readonly message: string,\n readonly data: unknown\n}\n\nexport interface RpcErrInit {\n readonly jsonrpc: \"2.0\"\n readonly id: RpcId\n readonly error: RpcErrorInit\n}\n\nexport namespace RpcErrInit {\n\n export function from(response: RpcErr): RpcErrInit {\n return response.toJSON()\n }\n\n}\n\nexport class RpcError extends Error {\n readonly #class = RpcError\n readonly name = this.#class.name\n\n static readonly codes = {\n ParseError: -32700,\n InvalidRequest: -32600,\n MethodNotFound: -32601,\n InvalidParams: -32602,\n InternalError: -32603\n } as const\n\n static readonly messages = {\n ParseError: \"Parse error\",\n InvalidRequest: \"Invalid Request\",\n MethodNotFound: \"Method not found\",\n InvalidParams: \"Invalid params\",\n InternalError: \"Internal error\",\n ServerError: \"Server error\"\n } as const\n\n constructor(\n readonly code: number,\n readonly message: string,\n readonly data: unknown = undefined\n ) {\n super(message)\n }\n\n static from(init: RpcErrorInit) {\n const { code, message, data } = init\n return new RpcError(code, message, data)\n }\n\n static rewrap(error: unknown) {\n if (error instanceof RpcError)\n return error\n return new RpcInternalError(Errors.toString(error))\n }\n\n toJSON() {\n const { code, message, data } = this\n return { code, message, data }\n }\n\n}\n\nexport class RpcParseError extends RpcError {\n readonly #class = RpcParseError\n readonly name = this.#class.name\n\n static readonly code = RpcError.codes.ParseError\n static readonly message = RpcError.messages.ParseError\n\n constructor(message: string = RpcError.messages.ParseError) {\n super(RpcError.codes.ParseError, message)\n }\n}\n\nexport class RpcInvalidRequestError extends RpcError {\n readonly #class = RpcInvalidRequestError\n readonly name = this.#class.name\n\n static readonly code = RpcError.codes.InvalidRequest\n static readonly message = RpcError.messages.InvalidRequest\n\n constructor(message: string = RpcError.messages.InvalidRequest) {\n super(RpcError.codes.InvalidRequest, message)\n }\n\n}\n\nexport class RpcMethodNotFoundError extends RpcError {\n readonly #class = RpcMethodNotFoundError\n readonly name = this.#class.name\n\n static readonly code = RpcError.codes.MethodNotFound\n static readonly message = RpcError.messages.MethodNotFound\n\n constructor(message: string = RpcError.messages.MethodNotFound) {\n super(RpcError.codes.MethodNotFound, message)\n }\n\n}\n\nexport class RpcInvalidParamsError extends RpcError {\n readonly #class = RpcInvalidParamsError\n readonly name = this.#class.name\n\n static readonly code = RpcError.codes.InvalidParams\n static readonly message = RpcError.messages.InvalidParams\n\n constructor(message: string = RpcError.messages.InvalidParams) {\n super(RpcError.codes.InvalidParams, message)\n }\n\n}\n\nexport class RpcInternalError extends RpcError {\n readonly #class = RpcInternalError\n readonly name = this.#class.name\n\n static readonly code = RpcError.codes.InternalError\n static readonly message = RpcError.messages.InternalError\n\n constructor(message: string = RpcError.messages.InternalError) {\n super(RpcError.codes.InternalError, message)\n }\n\n}\n\nexport class RpcErr extends Err<RpcError> {\n readonly jsonrpc = \"2.0\"\n\n constructor(\n readonly id: RpcId,\n readonly error: RpcError\n ) {\n super(error)\n }\n\n static from(init: RpcErrInit) {\n return new RpcErr(init.id, RpcError.from(init.error))\n }\n\n static rewrap<T extends Err.Infer<T>>(id: RpcId, result: T) {\n return new RpcErr(id, RpcError.rewrap(result.inner))\n }\n\n toJSON() {\n const { jsonrpc, id } = this\n\n const error = this.error.toJSON()\n\n return { jsonrpc, id, error } as const\n }\n\n}"],"names":[],"mappings":"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"}