allserver
Version:
Multi-protocol simple RPC server and [optional] client. Boilerplate-less. Opinionated. Minimalistic. DX-first.
30 lines (24 loc) • 801 B
JavaScript
module.exports = require("./ClientTransport").compose({
name: "MemoryClientTransport",
props: {
_allserverContext: null,
uri: "memory",
},
init({ allserverContext }) {
this._allserverContext = allserverContext || this._allserverContext;
},
methods: {
async introspect(ctx) {
ctx.procedureName = "";
const result = await this.call(ctx);
if (!result) throw Error(); // The ClientTransport expects us to throw if call fails
return result;
},
async call(ctx) {
return this._allserverContext.allserver.handleCall(ctx);
},
createCallContext(defaultCtx) {
return { ...defaultCtx, ...this._allserverContext, memory: {} };
},
},
});