appStore.addModel = (Models) => {
if(Models.prototype instanceof BaseModel){
Models = [Models];
}
if(Array.isArray(Models)){
const newModels = {};
Models.forEach(Model => {
if(!Model.displayName){
Model.displayName = lcfirst(Model.name);
}
newModels[Model.displayName] = Model;
});
Models = newModels;
}
const { reducers, models } = createReducerAndModels(appStore.reducers, Models);
Object.assign(appStore.models, models);
appStore.reducers = reducers;
const rootReducer = combineReducers(reducers);
appStore.replaceReducer(rootReducer);
for(let name in models){
let type = '@rx/store/hot-' + name;
models[name].defineActionTypes[type] = {
type: type,
status: 'action'
}
appStore.dispatch({type: type, state: reducers[name].$initialState});
}
}
appStore.getModel = (name) => {
return appStore.models[name];
}