Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/webeetle/jrpc-client

JRPC-Client is a simple JSON-RPC 2.0 client for node.js and browser, developed in typescript for work synergy with JRPC-Server.
https://github.com/webeetle/jrpc-client

json json-api json-rpc json-schema typescript

Last synced: 24 days ago
JSON representation

JRPC-Client is a simple JSON-RPC 2.0 client for node.js and browser, developed in typescript for work synergy with JRPC-Server.

Awesome Lists containing this project

README

        

# JRPC-Client



Build Status



Language

Last Commit


NPM Version


License

JRPC-Client is a simple JSON-RPC 2.0 client for node.js and browser, developed in typescript for work synergy with [JRPC-Server](https://github.com/webeetle/JRPC-Server).

## Install

```bash
npm i @habeetat/jrpc-client
```

## Todo

- [ ] Test
- [ ] Documentation
- [ ] Enable test in github action

## How to use

```typescript
export interface TestServerRpcMethods {
/**
* say hi
*/
hi(person: { name: string, bithday: Date }): Promise;

/**
* sum two numbers
*/
sum(a: number, b: number): Promise;

/**
* get all todos
*/
getTodos(): Promise<{ id: number, text: string, completed: boolean }[]>;
}

(async () => {
const resolver = async (url: string, data: string, resolve: (result: any) => void) => {
console.log(`send to ${url} data ${data}`);
};
const client = new RpcClient("http://localhost:3000/rpc", resolver);
const proxy = client.createProxy();
const result = await proxy.hi({ name: "John", bithday: new Date() });
})();
```