picorpc
Version:
A tiny RPC library and spec, inspired by JSON-RPC 2.0 and tRPC.
25 lines (24 loc) • 810 B
JavaScript
/* IMPORT */
import createAbstractClient from './abstract.js';
import { deserialize, serialize } from '../json.js';
/* MAIN */
const createHttpClient = (options) => {
const { context, url } = options;
const serializer = options.serializer || serialize;
const deserializer = options.deserializer || deserialize;
return createAbstractClient({
context,
handler: async (request) => {
const response = await fetch(url, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: serializer(request)
});
const content = await response.text();
const result = deserializer(content);
return result;
}
});
};
/* EXPORT */
export default createHttpClient;