UNPKG

boa-handler-request

Version:
35 lines (34 loc) 1.48 kB
// RequestAction -> HTTP request -> ResponseAction "use strict"; var do_1 = require('rxjs/operator/do'); var filter_1 = require('rxjs/operator/filter'); var share_1 = require('rxjs/operator/share'); var init = function (options) { var requests = options.requests, requestActionType = options.requestActionType, responseActionType = options.responseActionType; var requestType = requestActionType ? requestActionType : 'request'; var responseType = responseActionType ? responseActionType : 'response'; var requestMap = requests.reduce(function (a, i) { var o = {}; o[i.name] = i; return Object.assign({}, a, o); }, {}); var handler = function (action$, options) { var re = options.re; return share_1.share.call(filter_1.filter.call(do_1._do.call(filter_1.filter.call(action$, function (action) { return action.type === requestType; }), function (_a) { var _b = _a.data, name = _b.name, params = _b.params; var request = requestMap[name]; request.request(params).then(function (response) { var responseAction = { type: responseType, data: { request: request, response: response } }; re(responseAction); }); }), function () { return false; })); }; return { handler: handler }; }; exports.init = init;