UNPKG

umc-managed-store

Version:

extend umc store with structure-ensure and auto-clear to make store safety

50 lines (41 loc) 1.44 kB
'use strict' const util = require('util'); const ManagedStore = require('..'); const Types = ManagedStore.Types; let options = { structure: { members: Types.mapOf('member', { }),//所有的会员 feeds: Types.mapOf('feed', { feedId: Types.idOf('feed'), memberId: Types.idOf('member'), }),//所有的动态 feedRelations: {//所有的feed关系数据(详情里的) [Types.idOf('feed')]: { reply: {rows: Types.idArrayOf('feed')}, hotReply: {rows: Types.idArrayOf('feed')}, liked: {rows: Types.idArrayOf('member')}, } }, auth: {id: Types.idOf('member')},//登陆者信息, id/token等 portal: {//会员自身的一些数据, 结构均一致 feed: {rows: Types.idArrayOf('feed'), count: 0}, follower: {rows: Types.idArrayOf('member'), count: 0}, }, update: { version: '', local: {version: '', name: ''}, remote: {version: '', name: '', app: ''} },//自动更新相关 ui: {selectedMainBar: 'home'},//界面相关 } } const store = ManagedStore.create(options) console.log(util.inspect(store.state, {depth: null})); let newState = Object.assign({}, store.state); newState.feeds['123'] = {id: '123', content: 'hello'}; newState.portal.feed.rows.push('123'); store.setState(newState); console.log(util.inspect(store.state, {depth: null})); store.clear(); console.log(util.inspect(store.state, {depth: null}));