fusion-plugin-rpc
Version:
Fetch data on the server and client with an RPC style interface.
24 lines (23 loc) • 3.87 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _justMapObject = _interopRequireDefault(require("just-map-object"));
var _justCompare = _interopRequireDefault(require("just-compare"));
var _responseError = _interopRequireDefault(require("./response-error"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const getMockRpcHandlers = (fixtures, onMockRpc) => fixtures.reduce((rpcHandlers, fixture) => ({
...rpcHandlers,
...(0, _justMapObject.default)(fixture, (rpcId, responseDetails) => async (...args) => {
const response = Array.isArray(responseDetails) ? responseDetails.filter(item => (0, _justCompare.default)(item.args, args))[0].response : responseDetails;
onMockRpc && onMockRpc(rpcId, args, response);
if (response instanceof Error) {
throw response;
}
return response;
})
}), {});
var _default = getMockRpcHandlers;
exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRNb2NrUnBjSGFuZGxlcnMiLCJmaXh0dXJlcyIsIm9uTW9ja1JwYyIsInJlZHVjZSIsInJwY0hhbmRsZXJzIiwiZml4dHVyZSIsIm1hcE9iamVjdCIsInJwY0lkIiwicmVzcG9uc2VEZXRhaWxzIiwiYXJncyIsInJlc3BvbnNlIiwiQXJyYXkiLCJpc0FycmF5IiwiZmlsdGVyIiwiaXRlbSIsImlzRXF1YWwiLCJFcnJvciJdLCJzb3VyY2VzIjpbInNyYy9tb2NrLXJwYy1oYW5kbGVycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbWFwT2JqZWN0IGZyb20gJ2p1c3QtbWFwLW9iamVjdCc7XG5pbXBvcnQgaXNFcXVhbCBmcm9tICdqdXN0LWNvbXBhcmUnO1xuaW1wb3J0IFJlc3BvbnNlRXJyb3IgZnJvbSAnLi9yZXNwb25zZS1lcnJvcic7XG5pbXBvcnQge3R5cGUgSGFuZGxlclR5cGV9IGZyb20gJy4vdG9rZW5zJztcblxuZXhwb3J0IHR5cGUgUnBjUmVzcG9uc2UgPSBhbnkgfCBSZXNwb25zZUVycm9yO1xuZXhwb3J0IHR5cGUgUnBjUmVzcG9uc2VNYXAgPSBBcnJheTx7XG4gIGFyZ3M6IEFycmF5PGFueT47XG4gIHJlc3BvbnNlOiBScGNSZXNwb25zZTtcbn0+O1xuZXhwb3J0IHR5cGUgUnBjRml4dHVyZVQgPSB7XG4gIFt4OiBzdHJpbmddOiBScGNSZXNwb25zZU1hcCB8IFJwY1Jlc3BvbnNlO1xufTtcbnR5cGUgT25Nb2NrUnBjQ2FsbGJhY2tUID0gKFxuICBoYW5kbGVyOiBzdHJpbmcsXG4gIGFyZ3M6IEFycmF5PGFueT4sXG4gIHJlc3BvbnNlOiBScGNSZXNwb25zZVxuKSA9PiB2b2lkO1xuXG5jb25zdCBnZXRNb2NrUnBjSGFuZGxlcnMgPSAoXG4gIGZpeHR1cmVzOiBBcnJheTxScGNGaXh0dXJlVD4sXG4gIG9uTW9ja1JwYz86IE9uTW9ja1JwY0NhbGxiYWNrVFxuKTogSGFuZGxlclR5cGUgPT5cbiAgZml4dHVyZXMucmVkdWNlKFxuICAgIChycGNIYW5kbGVycywgZml4dHVyZSkgPT4gKHtcbiAgICAgIC4uLnJwY0hhbmRsZXJzLFxuICAgICAgLi4ubWFwT2JqZWN0KGZpeHR1cmUsIChycGNJZCwgcmVzcG9uc2VEZXRhaWxzKSA9PiBhc3luYyAoLi4uYXJncykgPT4ge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IEFycmF5LmlzQXJyYXkocmVzcG9uc2VEZXRhaWxzKVxuICAgICAgICAgID8gcmVzcG9uc2VEZXRhaWxzLmZpbHRlcigoaXRlbSkgPT4gaXNFcXVhbChpdGVtLmFyZ3MsIGFyZ3MpKVswXVxuICAgICAgICAgICAgICAucmVzcG9uc2VcbiAgICAgICAgICA6IHJlc3BvbnNlRGV0YWlscztcblxuICAgICAgICBvbk1vY2tScGMgJiYgb25Nb2NrUnBjKHJwY0lkLCBhcmdzLCByZXNwb25zZSk7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICB0aHJvdyByZXNwb25zZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgIH0pLFxuICAgIH0pLFxuICAgIHt9XG4gICk7XG5cbmV4cG9ydCBkZWZhdWx0IGdldE1vY2tScGNIYW5kbGVycztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQTZDO0FBaUI3QyxNQUFNQSxrQkFBa0IsR0FBRyxDQUN6QkMsUUFBNEIsRUFDNUJDLFNBQThCLEtBRTlCRCxRQUFRLENBQUNFLE1BQU0sQ0FDYixDQUFDQyxXQUFXLEVBQUVDLE9BQU8sTUFBTTtFQUN6QixHQUFHRCxXQUFXO0VBQ2QsR0FBRyxJQUFBRSxzQkFBUyxFQUFDRCxPQUFPLEVBQUUsQ0FBQ0UsS0FBSyxFQUFFQyxlQUFlLEtBQUssT0FBTyxHQUFHQyxJQUFJLEtBQUs7SUFDbkUsTUFBTUMsUUFBUSxHQUFHQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0osZUFBZSxDQUFDLEdBQzNDQSxlQUFlLENBQUNLLE1BQU0sQ0FBRUMsSUFBSSxJQUFLLElBQUFDLG9CQUFPLEVBQUNELElBQUksQ0FBQ0wsSUFBSSxFQUFFQSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUMxREMsUUFBUSxHQUNYRixlQUFlO0lBRW5CTixTQUFTLElBQUlBLFNBQVMsQ0FBQ0ssS0FBSyxFQUFFRSxJQUFJLEVBQUVDLFFBQVEsQ0FBQztJQUU3QyxJQUFJQSxRQUFRLFlBQVlNLEtBQUssRUFBRTtNQUM3QixNQUFNTixRQUFRO0lBQ2hCO0lBRUEsT0FBT0EsUUFBUTtFQUNqQixDQUFDO0FBQ0gsQ0FBQyxDQUFDLEVBQ0YsQ0FBQyxDQUFDLENBQ0g7QUFBQyxlQUVXVixrQkFBa0I7QUFBQSJ9