cheetah-framework
Version:
Cheetah Framework JS used in all our applications
37 lines (31 loc) • 811 B
JavaScript
import * as Library from './factory'
const defaultOptions = {
broadcastListener: true,
subscribe (mutation, state) {},
subscribeAction (action, state) {},
state: {},
mutations: {},
getters: {},
actions: {}
}
class StoreFactory {
static make (options) {
options = _.defaults(options, defaultOptions)
const Model = options.model
const getters = _.extend(Library.buildGetters(Model), options.getters)
const actions = _.extend(Library.buildActions(Model), options.actions)
const mutations = _.extend(Library.buildMutations(Model), options.mutations)
const state = _.extend(options.state, {
items: [],
loaded: false
})
return {
namespaced: true,
state,
getters,
actions,
mutations
}
}
}
export default StoreFactory