UNPKG

mobx-roof

Version:

Simple React data management by mobx.

77 lines (62 loc) 3.03 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; exports.default = createModel; var _MobxModel2 = require('../core/MobxModel'); var _MobxModel3 = _interopRequireDefault(_MobxModel2); var _utils = require('../common/utils'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } var uuid = 0; function createModel(_ref) { var name = _ref.name; var _ref$data = _ref.data; var data = _ref$data === undefined ? {} : _ref$data; var _ref$constants = _ref.constants; var constants = _ref$constants === undefined ? {} : _ref$constants; var _ref$privates = _ref.privates; var privates = _ref$privates === undefined ? {} : _ref$privates; var _ref$actions = _ref.actions; var actions = _ref$actions === undefined ? {} : _ref$actions; var _ref$autorun = _ref.autorun; var autorun = _ref$autorun === undefined ? {} : _ref$autorun; var others = _objectWithoutProperties(_ref, ['name', 'data', 'constants', 'privates', 'actions', 'autorun']); var Parent = arguments.length <= 1 || arguments[1] === undefined ? _MobxModel3.default : arguments[1]; var mobxActions = (0, _MobxModel2.toMobxActions)(actions); if (!(0, _MobxModel2.isMobxModelClass)(Parent)) { throw new Error('[createModel] Parent class must extend From MobxModel.'); } if (!name) { throw new Error('[createModel] need a name.'); } function MobxModel() { var _initData = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; var middleware = arguments[1]; var _autorun = arguments[2]; var _constants = arguments[3]; (0, _utils.classCallCheck)(this, MobxModel); if (typeof data === 'function') { throw new Error('[createModel] `data` can not be a function, please use `init` instead.'); } var _data = _extends({}, data, _initData); return (0, _utils.possibleConstructorReturn)(this, Object.getPrototypeOf(MobxModel).call(this, _data, middleware, _extends({}, autorun, _autorun), _extends({}, constants, _constants))); } MobxModel.uuid = ++uuid; MobxModel.actions = actions; MobxModel.autorun = autorun; (0, _utils.inherits)(MobxModel, Parent); // Define MobxModel name Object.defineProperties(MobxModel, { name: { enumerable: false, configurable: true, writable: false, value: (0, _utils.nameToUpperCase)(name) } }); MobxModel.prototype = Object.assign(MobxModel.prototype, others, privates, mobxActions); return MobxModel; } module.exports = exports['default'];