@turbox3d/command-manager
Version:
Large-scale productivity application command management library
36 lines (35 loc) • 1.93 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.compose = compose;
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _Command2 = require("./Command");
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
/**
* 构建一个组合了其他 Command 的结构(本质依然是一个 Command)
*/
function compose(declaredMap) {
return /*#__PURE__*/function (_Command) {
function _class(holer, parent) {
var _this;
(0, _classCallCheck2["default"])(this, _class);
_this = _callSuper(this, _class, [holer, parent]);
// 构建 $children
Object.keys(declaredMap).forEach(function (key) {
var command = new declaredMap[key](_this.holder, _this);
_this[key] = command;
_this.$children[key] = command;
});
return _this;
}
(0, _inherits2["default"])(_class, _Command);
return (0, _createClass2["default"])(_class);
}(_Command2.Command);
}