canner
Version:
Build CMS in few lines of code for different data sources
51 lines (40 loc) • 1.59 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.OnDeployManager = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _lodash = require("lodash");
var OnDeployManager = function OnDeployManager() {
var _this = this;
(0, _classCallCheck2.default)(this, OnDeployManager);
(0, _defineProperty2.default)(this, "_map", void 0);
(0, _defineProperty2.default)(this, "_map", {});
(0, _defineProperty2.default)(this, "execute", function (_ref) {
var key = _ref.key,
value = _ref.value;
var callbacks = _this.findCallback(key);
return callbacks.reduce(function (result, callback) {
return callback(result);
}, {
data: value
});
});
(0, _defineProperty2.default)(this, "findCallback", function (key) {
return Object.values((0, _lodash.get)(_this._map, [key], {}));
});
(0, _defineProperty2.default)(this, "registerCallback", function (key, callback) {
var callbackId = randomStr();
(0, _lodash.set)(_this._map, [key, callbackId], callback);
return callbackId;
});
(0, _defineProperty2.default)(this, "unregisterCallback", function (key, callbackId) {
(0, _lodash.unset)(_this._map, [key, callbackId]);
});
};
exports.OnDeployManager = OnDeployManager;
function randomStr() {
return Math.random().toString(36).substr(2, 6);
}