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
- INTERNAL_ERROR
- INVALID_PARAMS
- INVALID_REQUEST
- METHOD_NOT_FOUND
- PARSE_ERROR
- VERSION
encode(message)errorObject(code, message, data)failure(id, code, message, data)isBatch(v)isErrorResponse(v)isMessage(v)isNotification(v)isRequest(v)isResponse(v)isSuccessResponse(v)notification(method, params)parse(payload)request(id, method, params)success(id, result)validate(message)
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:list|map):str
encodes a JSON-RPC message or batch to JSON.
| Parameter | Type | Default |
|---|---|---|
message | list | map | — |
errorObject(code, message, data)
fn slug.jsonrpc#errorObject(code:num, message:str, data:any = nil):map<str,any>
builds a JSON-RPC error object.
| Parameter | Type | Default |
|---|---|---|
code | num | — |
message | str | — |
data | any | nil |
failure(id, code, message, data)
fn slug.jsonrpc#failure(id:str|num|nil, code:num, message:str, data:any = nil):map<str,any>
builds a JSON-RPC error response object.
| Parameter | Type | Default |
|---|---|---|
id | str | num | nil | — |
code | num | — |
message | str | — |
data | any | 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(method:str, params:list|map|nil = nil):map<str,any>
builds a JSON-RPC notification object (request without id).
| Parameter | Type | Default |
|---|---|---|
method | str | — |
params | list | map | nil | nil |
parse(payload)
fn slug.jsonrpc#parse(payload:str):any
decodes JSON and validates it as JSON-RPC 2.0.
Throws JsonRpcError with code:
-32700for JSON parse errors-32600for structurally invalid JSON-RPC payloads
| Parameter | Type | Default |
|---|---|---|
payload | str | — |
Throws: Error{type:JsonRpcError}
request(id, method, params)
fn slug.jsonrpc#request(id:str|num|nil, method:str, params:list|map|nil = nil):map<str,any>
builds a JSON-RPC request object.
| Parameter | Type | Default |
|---|---|---|
id | str | num | nil | — |
method | str | — |
params | list | map | nil | nil |
success(id, result)
fn slug.jsonrpc#success(id:str|num|nil, result:any = nil):map<str,any>
builds a JSON-RPC success response object.
The result member is always present (it may be nil).
| Parameter | Type | Default |
|---|---|---|
id | str | num | nil | — |
result | any | nil |
validate(message)
fn slug.jsonrpc#validate(message:any):map|list
validates a JSON-RPC message or batch.
Returns the input when valid, otherwise throws JsonRpcError with code = -32600 (Invalid Request).
| Parameter | Type | Default |
|---|---|---|
message | any | — |
Throws: Error{type:JsonRpcError}