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(method, id, 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) -> @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:
-32700for JSON parse errors-32600for 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})