Invisible link to canonical for Microformats

jsonrpc (slug)


slug.jsonrpc

slug.jsonrpc — JSON-RPC 2.0 helpers

Builders, validators, and parser/encoder utilities for JSON-RPC 2.0 messages as defined by the specification: https://www.jsonrpc.org/specification

TOC

Constants

INTERNAL_ERROR

num slug.jsonrpc#INTERNAL_ERROR

INVALID_PARAMS

num slug.jsonrpc#INVALID_PARAMS

INVALID_REQUEST

num slug.jsonrpc#INVALID_REQUEST

METHOD_NOT_FOUND

num slug.jsonrpc#METHOD_NOT_FOUND

PARSE_ERROR

num slug.jsonrpc#PARSE_ERROR

VERSION

str slug.jsonrpc#VERSION

Functions

encode(message)

fn slug.jsonrpc#encode(message) -> @str

encodes a JSON-RPC message or batch to JSON.

Parameter Type Default
message  

errorObject(code, message, data)

fn slug.jsonrpc#errorObject(@num code, @str message, data = nil) -> @map

builds a JSON-RPC error object.

Parameter Type Default
code @num
message @str
data   nil

failure(id, code, message, data)

fn slug.jsonrpc#failure(id, @num code, @str message, data = nil) -> @map

builds a JSON-RPC error response object.

Parameter Type Default
id  
code @num
message @str
data   nil

isBatch(v)

fn slug.jsonrpc#isBatch(v) -> @bool

returns true when v is a JSON-RPC batch payload.

Parameter Type Default
v  

isErrorResponse(v)

fn slug.jsonrpc#isErrorResponse(v) -> @bool

returns true when v is an error response.

Parameter Type Default
v  

isMessage(v)

fn slug.jsonrpc#isMessage(v) -> @bool

returns true when v is a valid single JSON-RPC message object.

Parameter Type Default
v  

isNotification(v)

fn slug.jsonrpc#isNotification(v) -> @bool

returns true when v is a notification object.

Parameter Type Default
v  

isRequest(v)

fn slug.jsonrpc#isRequest(v) -> @bool

returns true when v is a request object (includes notifications).

Parameter Type Default
v  

isResponse(v)

fn slug.jsonrpc#isResponse(v) -> @bool

returns true when v is a response object.

Parameter Type Default
v  

isSuccessResponse(v)

fn slug.jsonrpc#isSuccessResponse(v) -> @bool

returns true when v is a success response.

Parameter Type Default
v  

notification(method, params)

fn slug.jsonrpc#notification(@str method, params = nil) -> @map

builds a JSON-RPC notification object (request without id).

Parameter Type Default
method @str
params   nil

parse(payload)

fn slug.jsonrpc#parse(@str payload) -> ?

decodes JSON and validates it as JSON-RPC 2.0.

Throws JsonRpcError with code:

  • -32700 for JSON parse errors
  • -32600 for structurally invalid JSON-RPC payloads
Parameter Type Default
payload @str

Throws: @struct(Error{type:JsonRpcError})


request(method, id, params)

fn slug.jsonrpc#request(@str method, id, params = nil) -> @map

builds a JSON-RPC request object.

Parameter Type Default
method @str
id  
params   nil

success(id, result)

fn slug.jsonrpc#success(id, result = nil) -> @map

builds a JSON-RPC success response object.

The result member is always present (it may be nil).

Parameter Type Default
id  
result   nil

validate(message)

fn slug.jsonrpc#validate(message) -> ?

validates a JSON-RPC message or batch.

Returns the input when valid, otherwise throws JsonRpcError with code = -32600 (Invalid Request).

Parameter Type Default
message  

Throws: @struct(Error{type:JsonRpcError})