function store () { const data = {} return { get (keyword) { return data[keyword] }, getAll () { return Object.assign({}, data) }, set (keyword, list) { data[keyword] = list this.log() }, setAll (remoteData) { Object.keys(remoteData).forEach(keyword => { data[keyword] = Object.keys(remoteData[keyword]).map(value => { return { value: isNaN(Number(value)) ? value : Number(value), label: remoteData[keyword][value], } }) }) this.log() }, log () { console.group('Config change:') console.log(this.getAll()) console.groupEnd('Config change:') }, } } export default store()