dareway-rui
Version:
50 lines (38 loc) • 1.84 kB
JavaScript
;
var _interopRequireDefault = require('@babel/runtime/helpers/interopRequireDefault');
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.default = createModel;
var _objectWithoutProperties2 = _interopRequireDefault(require('@babel/runtime/helpers/objectWithoutProperties'));
var _isPlainObject = _interopRequireDefault(require('is-plain-object'));
var _RUIModel = _interopRequireDefault(require('./RUIModel'));
function createModel() {
var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
if (!(0, _isPlainObject.default)(model)) {
throw new Error('createModel 入参 model 必须为非空普通 JS 对象,请检查!');
} // 校验 model 结构
var _model$state = model.state,
state = _model$state === void 0 ? {} : _model$state,
_model$effects = model.effects,
effects = _model$effects === void 0 ? {} : _model$effects,
_model$reducers = model.reducers,
reducers = _model$reducers === void 0 ? {} : _model$reducers,
invalidModelProperties = (0, _objectWithoutProperties2.default)(model, ['state', 'effects', 'reducers']);
var errorMsg = '';
var hasInvalidModelProperties = false;
for (var key in invalidModelProperties) {
hasInvalidModelProperties = true;
errorMsg += ''.concat(key, ',');
}
if (hasInvalidModelProperties) {
throw new Error(
'\u51FD\u6570\u5B9A\u4E49\uFF1ARUICore.createModel({state, effects, reducers})\n\u5F02\u5E38\u4FE1\u606F\uFF1A\u5165\u53C2 model \u4E2D\u5305\u542B\u4E0D\u6B63\u786E\u7684\u5C5E\u6027\u503C\u3010'.concat(
errorMsg,
'\u3011\n\u8BF7\u68C0\u67E5!'
)
);
}
return new _RUIModel.default(model);
}
//@ sourceMappingURL=createModel.js.map