Skip to content

shekohex/jsonrpc-ts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JSONRPC Typescript

Build Status Greenkeeper badge Coverage Status npm version

Strongly 💪 Typed JSON RPC 2.0 Client for Nodejs

Fully tested to comply with the official JSON-RPC 2.0 specification

Quick Overview

By Declaring events using a simple interface mapping methods names to their parameters to get Strongly Typed, Fast and Modern Rpc client for your service.

Install

npm i jsonrpc-ts 

Usage

First you need to define your Methods, that could be achieved by creating an interface of methods name and there parameters.

// we have a service that can do math, // and it has this methods interface MathService { // a method called sum that accepts 2 args of type number sum: [number, number]; // methods can have named paramerter too. sub: { left: number; right: number }; // or if you need return type, you can have that too :) sumWithReturnType: ({ x, y }: { x: number; y: number }) => number; }

then import RpcClient and start making requests

import { RpcClient } from 'jsonrpc-ts'; const rpcClient = new RpcClient<MathService>({ url: '...' }); // now you have a strongly typed methods. // try to change [3, 2] to ['3', '2'] and the typescript compiler will catch you ! const response = await rpcClient.makeRequest({ method: 'sum', params: [3, 2], id: 1, jsonrpc: '2.0', }); // response.data.result === 5 // response2.data.result has type of number :) const response2 = await rpcClient.makeRequest({ method: 'sumWithReturnType', params: { x: 3, y: 2 }, id: 2, jsonrpc: '2.0', }); // response2.data.result === 5

About

Strongly 💪 Typed Fast and lightweight JSON RPC 2.0 Client for Nodejs

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •