tee-mo-core
Version:
46 lines (31 loc) • 2.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.validateModel = undefined;
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _invariant = require('invariant');
var _invariant2 = _interopRequireDefault(_invariant);
var _isPlainObject = require('is-plain-object');
var _isPlainObject2 = _interopRequireDefault(_isPlainObject);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function validateModel(model, modelList) {
var namespace = model.namespace,
_model$reducers = model.reducers,
reducers = _model$reducers === undefined ? {} : _model$reducers,
_model$effects = model.effects,
effects = _model$effects === undefined ? {} : _model$effects;
//必须有namespace
(0, _invariant2.default)(namespace, '[teeMo.model] \u5E94\u8BE5\u5B9A\u4E49 namespace');
//必须是string类型
(0, _invariant2.default)(typeof namespace === 'string', '[teeMo.model] namespace\u5FC5\u987B\u662Fstring\u7C7B\u578B,\u5F53\u524Dnamespace\u7684\u7C7B\u578B\u662F [' + _typeof(model.namespace) + ']');
//必须唯一
(0, _invariant2.default)(!modelList.some(function (m) {
return namespace === m.namespace;
}), '[teeMo.model] namespace\u5FC5\u987B\u552F\u4E00');
//reducers必须是一个普通的javaScript对象
(0, _invariant2.default)((0, _isPlainObject2.default)(reducers), '[teeMo.model] reducers\u5FC5\u987B\u662F\u4E00\u4E2A\u666E\u901A\u7684javaScript\u5BF9\u8C61,\u5F53\u524D\u7684reducer\u7684\u7C7B\u578B\u662F [' + (typeof reducers === 'undefined' ? 'undefined' : _typeof(reducers)) + ']');
//effects必须是一个普通的javaScript对象
(0, _invariant2.default)((0, _isPlainObject2.default)(effects), '[teeMo.model] effects\u5FC5\u987B\u662F\u4E00\u4E2A\u666E\u901A\u7684javaScript\u5BF9\u8C61,\u5F53\u524D\u7684effect\u7684\u7C7B\u578B\u662F [' + (typeof effects === 'undefined' ? 'undefined' : _typeof(effects)) + ']');
}
exports.validateModel = validateModel;