@hazae41/jsonrpc
Version:
Rust-like JSON-RPC for TypeScript
121 lines (118 loc) • 3.75 kB
JavaScript
import { Err } from '@hazae41/result';
import { Errors } from '../../libs/errors/index.mjs';
var RpcErrInit;
(function (RpcErrInit) {
function from(response) {
return response.toJSON();
}
RpcErrInit.from = from;
})(RpcErrInit || (RpcErrInit = {}));
class RpcError extends Error {
code;
message;
data;
#class = RpcError;
name = this.#class.name;
static codes = {
ParseError: -32700,
InvalidRequest: -32600,
MethodNotFound: -32601,
InvalidParams: -32602,
InternalError: -32603
};
static messages = {
ParseError: "Parse error",
InvalidRequest: "Invalid Request",
MethodNotFound: "Method not found",
InvalidParams: "Invalid params",
InternalError: "Internal error",
ServerError: "Server error"
};
constructor(code, message, data = undefined) {
super(message);
this.code = code;
this.message = message;
this.data = data;
}
static from(init) {
const { code, message, data } = init;
return new RpcError(code, message, data);
}
static rewrap(error) {
if (error instanceof RpcError)
return error;
return new RpcInternalError(Errors.toString(error));
}
toJSON() {
const { code, message, data } = this;
return { code, message, data };
}
}
class RpcParseError extends RpcError {
#class = RpcParseError;
name = this.#class.name;
static code = RpcError.codes.ParseError;
static message = RpcError.messages.ParseError;
constructor(message = RpcError.messages.ParseError) {
super(RpcError.codes.ParseError, message);
}
}
class RpcInvalidRequestError extends RpcError {
#class = RpcInvalidRequestError;
name = this.#class.name;
static code = RpcError.codes.InvalidRequest;
static message = RpcError.messages.InvalidRequest;
constructor(message = RpcError.messages.InvalidRequest) {
super(RpcError.codes.InvalidRequest, message);
}
}
class RpcMethodNotFoundError extends RpcError {
#class = RpcMethodNotFoundError;
name = this.#class.name;
static code = RpcError.codes.MethodNotFound;
static message = RpcError.messages.MethodNotFound;
constructor(message = RpcError.messages.MethodNotFound) {
super(RpcError.codes.MethodNotFound, message);
}
}
class RpcInvalidParamsError extends RpcError {
#class = RpcInvalidParamsError;
name = this.#class.name;
static code = RpcError.codes.InvalidParams;
static message = RpcError.messages.InvalidParams;
constructor(message = RpcError.messages.InvalidParams) {
super(RpcError.codes.InvalidParams, message);
}
}
class RpcInternalError extends RpcError {
#class = RpcInternalError;
name = this.#class.name;
static code = RpcError.codes.InternalError;
static message = RpcError.messages.InternalError;
constructor(message = RpcError.messages.InternalError) {
super(RpcError.codes.InternalError, message);
}
}
class RpcErr extends Err {
id;
error;
jsonrpc = "2.0";
constructor(id, error) {
super(error);
this.id = id;
this.error = error;
}
static from(init) {
return new RpcErr(init.id, RpcError.from(init.error));
}
static rewrap(id, result) {
return new RpcErr(id, RpcError.rewrap(result.inner));
}
toJSON() {
const { jsonrpc, id } = this;
const error = this.error.toJSON();
return { jsonrpc, id, error };
}
}
export { RpcErr, RpcErrInit, RpcError, RpcInternalError, RpcInvalidParamsError, RpcInvalidRequestError, RpcMethodNotFoundError, RpcParseError };
//# sourceMappingURL=err.mjs.map