canner
Version:
Build CMS in few lines of code for different data sources
57 lines (44 loc) • 1.76 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _lodash = require("lodash");
var ObjectPattern =
/*#__PURE__*/
function () {
function ObjectPattern() {
var _this = this;
(0, _classCallCheck2.default)(this, ObjectPattern);
(0, _defineProperty2.default)(this, "actions", void 0);
(0, _defineProperty2.default)(this, "addAction", function (action) {
_this.actions.push(action);
_this.mergeAction();
});
(0, _defineProperty2.default)(this, "_mergeAction", function () {
_this.mergeMultiMapUpdate();
return _this.actions;
});
(0, _defineProperty2.default)(this, "mergeAction", (0, _lodash.throttle)(this._mergeAction, 150));
(0, _defineProperty2.default)(this, "getActions", function () {
return _this.actions;
});
this.actions = [];
}
(0, _createClass2.default)(ObjectPattern, [{
key: "mergeMultiMapUpdate",
value: function mergeMultiMapUpdate() {
this.actions = [this.actions.reduce(function (result, action) {
result.payload.value = (0, _objectSpread2.default)({}, result.payload.value, action.payload.value);
return result;
})];
}
}]);
return ObjectPattern;
}();
exports.default = ObjectPattern;