UNPKG

mutants-appfx

Version:

appfx module

176 lines (137 loc) 5.43 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; var _getOwnPropertyDescriptor = require('babel-runtime/core-js/object/get-own-property-descriptor'); var _getOwnPropertyDescriptor2 = _interopRequireDefault(_getOwnPropertyDescriptor); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties'); var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); var _defineProperty = require('babel-runtime/core-js/object/define-property'); var _defineProperty2 = _interopRequireDefault(_defineProperty); var _keys = require('babel-runtime/core-js/object/keys'); var _keys2 = _interopRequireDefault(_keys); var _map = require('babel-runtime/core-js/map'); var _map2 = _interopRequireDefault(_map); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _desc, _value, _class, _descriptor, _descriptor2; var _mobx = require('mobx'); var _util = require('./util'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _initDefineProp(target, property, descriptor, context) { if (!descriptor) return; (0, _defineProperty2.default)(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); } function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object['ke' + 'ys'](descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object['define' + 'Property'](target, property, desc); desc = null; } return desc; } function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that transform-class-properties is enabled.'); } var Action = (_class = function () { (0, _createClass3.default)(Action, [{ key: 'name', // 需要执行actions方法名称 get: function get() { return this.store.execExpr(this.nameExpr); }, set: function set(nameExpr) { this.nameExpr = this.store.parseExpr(nameExpr); } }]); function Action(store, name) { var args = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; (0, _classCallCheck3.default)(this, Action); _initDefineProp(this, 'nameExpr', _descriptor, this); _initDefineProp(this, 'args', _descriptor2, this); this.key = (0, _util.assignId)(); this.store = store; this.nameExpr = this.store.parseExpr(name); var obj = {}; var exprs = new _map2.default(); this.keys = (0, _keys2.default)(args); this.keys.forEach(function (key) { exprs.set(key, store.parseExpr(args[key])); (0, _defineProperty2.default)(obj, key, { enumerable: true, // 这里必须是可枚举的要不observable不好使 get: function get() { return store.execExpr(exprs.get(key)); }, set: function set(expr) { exprs.set(key, store.parseExpr(expr)); } }); }); this.args = (0, _mobx.observable)(obj); } (0, _createClass3.default)(Action, [{ key: 'toJS', value: function toJS() { var $args = this.args; return { name: this.nameExpr.toString(), args: this.keys.reduce(function (obj, key) { obj[key] = $args[key]; return obj; }, {}) }; } }], [{ key: 'fromJS', value: function fromJS(store, obj) { if (typeof obj === 'string') { return new Action(store, obj); } else if (Array.isArray(obj)) { return obj.map(function (it) { return Action.fromJS(store, it); }); } else if (obj) { var name = obj.name, args = obj.args, other = (0, _objectWithoutProperties3.default)(obj, ['name', 'args']); return new Action(store, name, (0, _extends3.default)({}, other, args)); } else { return null; } } }]); return Action; }(), (_descriptor = _applyDecoratedDescriptor(_class.prototype, 'nameExpr', [_mobx.observable], { enumerable: true, initializer: null }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, 'args', [_mobx.observable], { enumerable: true, initializer: null }), _applyDecoratedDescriptor(_class.prototype, 'name', [_mobx.computed], (0, _getOwnPropertyDescriptor2.default)(_class.prototype, 'name'), _class.prototype)), _class); exports.default = Action; //# sourceMappingURL=Action.js.map