react-application-core
Version:
A react-based application core for the business applications.
43 lines • 1.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.findCommandResultByUuid = exports.findCommandResult = exports.channelsEntityResponsePayloadsMapper = void 0;
var R = require("ramda");
var util_1 = require("../../util");
var payload_wrapper_1 = require("./payload.wrapper");
/**
* @stable [21.05.2018]
* @param {string} ip
* @param {IReduxChannelsEntity} channelsEntity
* @returns {PayloadWrapper[]}
*/
exports.channelsEntityResponsePayloadsMapper = function (ip, channelsEntity) {
var channel = channelsEntity[ip];
return util_1.orNull(!R.isNil(channel) && !R.isNil(channel.messages), function () { return channel.messages.map(function (message) { return new payload_wrapper_1.PayloadWrapper(message.data); }); });
};
/**
* @stable [23.05.2018]
* @param {string} ip
* @param {IReduxChannelsEntity} channelsEntity
* @param {(cResult: CommandResult) => boolean} predicate
* @returns {CommandResult}
*/
exports.findCommandResult = function (ip, channelsEntity, predicate) {
var responsePayloads = exports.channelsEntityResponsePayloadsMapper(ip, channelsEntity);
if (responsePayloads) {
var responsePayload_1 = responsePayloads
.find(function (rPayload) { return !R.isNil(rPayload.getCommandResult()) && predicate(rPayload.getPayload()); });
return util_1.orNull(responsePayload_1, function () { return responsePayload_1.getCommandResult(); });
}
return null;
};
/**
* @stable [23.05.2018]
* @param {string} ip
* @param {IReduxChannelsEntity} channelsEntity
* @param {string} uuid
* @returns {CommandResult}
*/
exports.findCommandResultByUuid = function (ip, channelsEntity, uuid) {
return exports.findCommandResult(ip, channelsEntity, function (cResult) { return cResult.getUuid() === uuid; });
};
//# sourceMappingURL=protocol.support.js.map