UNPKG

fusion-plugin-rpc

Version:

Fetch data on the server and client with an RPC style interface.

16 lines 3.58 kB
import mapObject from 'just-map-object'; import isEqual from 'just-compare'; import ResponseError from './response-error'; const getMockRpcHandlers = (fixtures, onMockRpc) => fixtures.reduce((rpcHandlers, fixture) => ({ ...rpcHandlers, ...mapObject(fixture, (rpcId, responseDetails) => async (...args) => { const response = Array.isArray(responseDetails) ? responseDetails.filter(item => isEqual(item.args, args))[0].response : responseDetails; onMockRpc && onMockRpc(rpcId, args, response); if (response instanceof Error) { throw response; } return response; }) }), {}); export default getMockRpcHandlers; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYXBPYmplY3QiLCJpc0VxdWFsIiwiUmVzcG9uc2VFcnJvciIsImdldE1vY2tScGNIYW5kbGVycyIsImZpeHR1cmVzIiwib25Nb2NrUnBjIiwicmVkdWNlIiwicnBjSGFuZGxlcnMiLCJmaXh0dXJlIiwicnBjSWQiLCJyZXNwb25zZURldGFpbHMiLCJhcmdzIiwicmVzcG9uc2UiLCJBcnJheSIsImlzQXJyYXkiLCJmaWx0ZXIiLCJpdGVtIiwiRXJyb3IiXSwic291cmNlcyI6WyJzcmMvbW9jay1ycGMtaGFuZGxlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1hcE9iamVjdCBmcm9tICdqdXN0LW1hcC1vYmplY3QnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnanVzdC1jb21wYXJlJztcbmltcG9ydCBSZXNwb25zZUVycm9yIGZyb20gJy4vcmVzcG9uc2UtZXJyb3InO1xuaW1wb3J0IHt0eXBlIEhhbmRsZXJUeXBlfSBmcm9tICcuL3Rva2Vucyc7XG5cbmV4cG9ydCB0eXBlIFJwY1Jlc3BvbnNlID0gYW55IHwgUmVzcG9uc2VFcnJvcjtcbmV4cG9ydCB0eXBlIFJwY1Jlc3BvbnNlTWFwID0gQXJyYXk8e1xuICBhcmdzOiBBcnJheTxhbnk+O1xuICByZXNwb25zZTogUnBjUmVzcG9uc2U7XG59PjtcbmV4cG9ydCB0eXBlIFJwY0ZpeHR1cmVUID0ge1xuICBbeDogc3RyaW5nXTogUnBjUmVzcG9uc2VNYXAgfCBScGNSZXNwb25zZTtcbn07XG50eXBlIE9uTW9ja1JwY0NhbGxiYWNrVCA9IChcbiAgaGFuZGxlcjogc3RyaW5nLFxuICBhcmdzOiBBcnJheTxhbnk+LFxuICByZXNwb25zZTogUnBjUmVzcG9uc2VcbikgPT4gdm9pZDtcblxuY29uc3QgZ2V0TW9ja1JwY0hhbmRsZXJzID0gKFxuICBmaXh0dXJlczogQXJyYXk8UnBjRml4dHVyZVQ+LFxuICBvbk1vY2tScGM/OiBPbk1vY2tScGNDYWxsYmFja1Rcbik6IEhhbmRsZXJUeXBlID0+XG4gIGZpeHR1cmVzLnJlZHVjZShcbiAgICAocnBjSGFuZGxlcnMsIGZpeHR1cmUpID0+ICh7XG4gICAgICAuLi5ycGNIYW5kbGVycyxcbiAgICAgIC4uLm1hcE9iamVjdChmaXh0dXJlLCAocnBjSWQsIHJlc3BvbnNlRGV0YWlscykgPT4gYXN5bmMgKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBBcnJheS5pc0FycmF5KHJlc3BvbnNlRGV0YWlscylcbiAgICAgICAgICA/IHJlc3BvbnNlRGV0YWlscy5maWx0ZXIoKGl0ZW0pID0+IGlzRXF1YWwoaXRlbS5hcmdzLCBhcmdzKSlbMF1cbiAgICAgICAgICAgICAgLnJlc3BvbnNlXG4gICAgICAgICAgOiByZXNwb25zZURldGFpbHM7XG5cbiAgICAgICAgb25Nb2NrUnBjICYmIG9uTW9ja1JwYyhycGNJZCwgYXJncywgcmVzcG9uc2UpO1xuXG4gICAgICAgIGlmIChyZXNwb25zZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICB9KSxcbiAgICB9KSxcbiAgICB7fVxuICApO1xuXG5leHBvcnQgZGVmYXVsdCBnZXRNb2NrUnBjSGFuZGxlcnM7XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFNBQVMsTUFBTSxpQkFBaUI7QUFDdkMsT0FBT0MsT0FBTyxNQUFNLGNBQWM7QUFDbEMsT0FBT0MsYUFBYSxNQUFNLGtCQUFrQjtBQWlCNUMsTUFBTUMsa0JBQWtCLEdBQUcsQ0FDekJDLFFBQTRCLEVBQzVCQyxTQUE4QixLQUU5QkQsUUFBUSxDQUFDRSxNQUFNLENBQ2IsQ0FBQ0MsV0FBVyxFQUFFQyxPQUFPLE1BQU07RUFDekIsR0FBR0QsV0FBVztFQUNkLEdBQUdQLFNBQVMsQ0FBQ1EsT0FBTyxFQUFFLENBQUNDLEtBQUssRUFBRUMsZUFBZSxLQUFLLE9BQU8sR0FBR0MsSUFBSSxLQUFLO0lBQ25FLE1BQU1DLFFBQVEsR0FBR0MsS0FBSyxDQUFDQyxPQUFPLENBQUNKLGVBQWUsQ0FBQyxHQUMzQ0EsZUFBZSxDQUFDSyxNQUFNLENBQUVDLElBQUksSUFBS2YsT0FBTyxDQUFDZSxJQUFJLENBQUNMLElBQUksRUFBRUEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDMURDLFFBQVEsR0FDWEYsZUFBZTtJQUVuQkwsU0FBUyxJQUFJQSxTQUFTLENBQUNJLEtBQUssRUFBRUUsSUFBSSxFQUFFQyxRQUFRLENBQUM7SUFFN0MsSUFBSUEsUUFBUSxZQUFZSyxLQUFLLEVBQUU7TUFDN0IsTUFBTUwsUUFBUTtJQUNoQjtJQUVBLE9BQU9BLFFBQVE7RUFDakIsQ0FBQztBQUNILENBQUMsQ0FBQyxFQUNGLENBQUMsQ0FBQyxDQUNIO0FBRUgsZUFBZVQsa0JBQWtCIn0=