@zoranwong/acc-engine.js
Version:
A javascript framework to accelerate your applicatin developement
131 lines (98 loc) • 5.14 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _newArrowCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/newArrowCheck"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _ServiceProvider2 = _interopRequireDefault(require("../constracts/ServiceProvider"));
var _underscore = require("underscore");
var _Command = _interopRequireDefault(require("./Command"));
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
var CommandServiceProvider = /*#__PURE__*/function (_ServiceProvider) {
(0, _inherits2["default"])(CommandServiceProvider, _ServiceProvider);
var _super = _createSuper(CommandServiceProvider);
function CommandServiceProvider() {
(0, _classCallCheck2["default"])(this, CommandServiceProvider);
return _super.apply(this, arguments);
}
(0, _createClass2["default"])(CommandServiceProvider, [{
key: "register",
value: function register() {
var _this = this;
this.app.singleton('commands', function () {
(0, _newArrowCheck2["default"])(this, _this);
return new Map();
}.bind(this));
var commands = this.app.commands;
this.app.mixin({
registerCommand: function registerCommand() {
var _this2 = this;
var commandMap = {};
for (var _len = arguments.length, commands = new Array(_len), _key = 0; _key < _len; _key++) {
commands[_key] = arguments[_key];
}
if (commands.length === 2) {
var key = commands[0],
command = commands[1];
commandMap[key] = command;
} else if (commands.length && !(0, _underscore.isArray)(commands[0])) {
commandMap = commands[0];
}
(0, _underscore.each)(commandMap,
/**@param {Function|Command} command*/
function (command, key) {
(0, _newArrowCheck2["default"])(this, _this2);
this.commands.set(key, new command(this));
}.bind(this));
},
command: /*#__PURE__*/function () {
var _command = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(commandName) {
var command,
_len2,
params,
_key2,
_args = arguments;
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
(0, _newArrowCheck2["default"])(this, _this);
command = commands.get(commandName);
for (_len2 = _args.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
params[_key2 - 1] = _args[_key2];
}
if (!command) {
_context.next = 7;
break;
}
_context.next = 6;
return command.handle.apply(command, params);
case 6:
return _context.abrupt("return", _context.sent);
case 7:
case "end":
return _context.stop();
}
}
}, _callee, this);
}));
function command(_x) {
return _command.apply(this, arguments);
}
return command;
}().bind(this)
});
}
}]);
return CommandServiceProvider;
}(_ServiceProvider2["default"]);
exports["default"] = CommandServiceProvider;