UNPKG

umc-managed-store

Version:

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

91 lines (85 loc) 3.62 kB
'use strict' 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'), }),//所有的动态 teams: Types.mapOf('team', { memberId: Types.idOf('member'), }),//所有的小组 activityOrders: Types.mapOf('activityOrder', { memberId: Types.idOf('member'), activityId: Types.idOf('feed'), }),//所有的活动订单, 里面存储的是订单数据 feedRelations: {//所有的feed关系数据(详情里的) [Types.idOf('feed')]: { reply: {rows: Types.idArrayOf('feed')}, hotReply: {rows: Types.idArrayOf('feed')}, liked: {rows: Types.idArrayOf('member')}, activityOrder: {rows: Types.idArrayOf('activityOrder')}, } }, teamRelations: {//所有team关系数据(详情里的) [Types.idOf('team')]: { thread: {rows: Types.idArrayOf('feed')}, member: {rows: Types.idArrayOf('member')}, } }, auth: {id: Types.idOf('member')},//登陆者信息, id/token等 portal: {//会员自身的一些数据, 结构均一致 feed: {rows: Types.idArrayOf('feed'), count: 0}, activity: {rows: Types.idArrayOf('feed'), count: 0}, work: {rows: Types.idArrayOf('feed'), count: 0}, friend: {rows: Types.idArrayOf('member'), count: 0}, followed: {rows: Types.idArrayOf('member'), count: 0}, follower: {rows: Types.idArrayOf('member'), count: 0}, team: {rows: Types.idArrayOf('team'), count: 0}, activityOrder: {rows: Types.idArrayOf('activityOrder'), count: 0}, }, recommend: {//推荐 member: {rows: Types.idArrayOf('feed')}, activity: {rows: Types.idArrayOf('feed')}, work: {rows: Types.idArrayOf('feed')}, team: {rows: Types.idArrayOf('team')}, }, pull: {//拉取数据通知 feed: {rows: Types.idArrayOf('feed'), newlyCount: 0}, liked: {rows: Types.idArrayOf('feed'), newlyCount: 0}, at: {rows: Types.idArrayOf('feed'), newlyCount: 0}, reply: {rows: Types.idArrayOf('feed'), newlyCount: 0}, }, ranklist: {//各排行榜数据 'member-forever': {rows: Types.idArrayOf('feed')}, 'member-month': {rows: Types.idArrayOf('feed')}, 'member-day': {rows: Types.idArrayOf('feed')}, 'work-forever': {rows: Types.idArrayOf('feed')}, 'work-month': {rows: Types.idArrayOf('feed')}, 'work-day': {rows: Types.idArrayOf('feed')}, 'work-forever-茶艺': {rows: Types.idArrayOf('feed')}, 'work-forever-香道': {rows: Types.idArrayOf('feed')}, }, rooms: {},//房间, 会引用到member和team的数据(名称与头像) chats: {},//各房间的即时聊天消息, 只跟rooms相关 exchange: {},//社交面板, 只跟rooms和chats有关 search: {//搜索结果 feed: {rows: Types.idArrayOf('feed'), term: ''}, activity: {rows: Types.idArrayOf('feed'), term: ''}, work: {rows: Types.idArrayOf('feed'), term: ''}, member: {rows: Types.idArrayOf('member'), term: ''}, friend: {rows: Types.idArrayOf('member'), term: ''}, followed: {rows: Types.idArrayOf('member'), term: ''}, follower: {rows: Types.idArrayOf('member'), term: ''}, team: {rows: Types.idArrayOf('team'), term: ''}, thread: {rows: Types.idArrayOf('feed'), term: ''}, }, update: {},//自动更新相关 ui: {},//界面相关 } } const store = ManagedStore.create(options) console.log(store.state);