UNPKG

react-application-core

Version:

A react-based application core for the business applications.

71 lines 2.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PayloadWrapper = void 0; var R = require("ramda"); var type_1 = require("../../util/type"); var object_status_1 = require("./object.status"); var command_result_1 = require("./command.result"); var protocol_interface_1 = require("./protocol.interface"); var cond_1 = require("../../util/cond"); /** * @stable [24.05.2018] */ var PayloadWrapper = /** @class */ (function () { /** * @stable [24.05.2018] * @param {IKeyValue | IProtocolPayloadEntity} payload */ function PayloadWrapper(payload) { var payloadAsProtocolEntity = payload; if (Object.keys(payload).length === 2 && type_1.TypeUtils.isString(payloadAsProtocolEntity.type) && !R.isNil(payloadAsProtocolEntity.payload)) { // Response this.type = payloadAsProtocolEntity.type; var payloadClass = protocol_interface_1.RESPONSE_PAYLOAD_OBJECTS_CLASSES.find(function (ctor) { return Reflect.get(ctor, protocol_interface_1.$PROTOCOL_PAYLOAD_CLASS_IDENTIFIER) === payloadAsProtocolEntity.type; }); if (payloadClass) { this.payload = Object.assign(new payloadClass(), payloadAsProtocolEntity.payload); } else { this.payload = payloadAsProtocolEntity.payload; } } else { // Request this.type = Reflect.get(payload.constructor, protocol_interface_1.$PROTOCOL_PAYLOAD_CLASS_IDENTIFIER); this.payload = payload; } } /** * @stable [21.05.2018] * @returns {ObjectStatus} */ PayloadWrapper.prototype.getObjectStatus = function () { return cond_1.ConditionUtils.orNull(this.payload instanceof object_status_1.ObjectStatus, this.payload); }; /** * @stable [08.11.2020] */ PayloadWrapper.prototype.getCommandResult = function () { return cond_1.ConditionUtils.orNull(this.payload instanceof command_result_1.CommandResult, this.payload); }; /** * @stable [21.05.2018] * @returns {AnyT} */ PayloadWrapper.prototype.getPayload = function () { return this.payload; }; /** * @stable [21.05.2018] * @returns {string} */ PayloadWrapper.prototype.getType = function () { return this.type; }; return PayloadWrapper; }()); exports.PayloadWrapper = PayloadWrapper; //# sourceMappingURL=payload.wrapper.js.map