github.com/covergates/covergates@v0.2.2-0.20201009050117-42ef8a19fb95/web/src/store/modules/user/index.ts (about) 1 import { Module } from 'vuex'; 2 import { 3 fetchUser, 4 fetchSCM, 5 fetchTokens 6 } from './actions'; 7 import { 8 UpdateUser, 9 updateTokens, 10 ClearError, 11 SetError, 12 updateSCM, 13 startLoading, 14 stopLoading 15 } from './mutations'; 16 import { RootState } from '@/store'; 17 18 export enum Actions { 19 FETCH_USER = 'FETCH_USER', 20 FETCH_USER_SCM = 'FETCH_USER_SCM', 21 FETCH_USER_TOKENS = 'FETCH_USER_TOKENS' 22 } 23 24 export enum Mutations { 25 UPDATE_USER = 'UPDATE_USER', 26 UPDATE_USER_SCM = 'UPDATE_USER_SCM', 27 UPDATE_USER_TOKENS = 'UPDATE_USER_TOKENS', 28 SET_USER_ERROR = 'SET_USER_ERROR', 29 CLEAR_USER_ERROR = 'CLEAR_USER_ERROR', 30 START_USER_LOADING = 'START_USER_LOADING', 31 STOP_USER_LOADING = 'STOP_USER_LOADING' 32 } 33 34 export type UserState = { 35 current?: User; 36 tokens: Token[]; 37 error?: Error; 38 scm?: Record<string, boolean>; 39 loading: boolean; 40 }; 41 const module: Module<UserState, RootState> = { 42 state: { 43 current: undefined, 44 tokens: [], 45 error: undefined, 46 scm: undefined, 47 loading: false 48 }, 49 actions: { 50 [Actions.FETCH_USER]: fetchUser, 51 [Actions.FETCH_USER_SCM]: fetchSCM, 52 [Actions.FETCH_USER_TOKENS]: fetchTokens 53 }, 54 mutations: { 55 [Mutations.UPDATE_USER]: UpdateUser, 56 [Mutations.UPDATE_USER_TOKENS]: updateTokens, 57 [Mutations.SET_USER_ERROR]: SetError, 58 [Mutations.CLEAR_USER_ERROR]: ClearError, 59 [Mutations.START_USER_LOADING]: startLoading, 60 [Mutations.STOP_USER_LOADING]: stopLoading, 61 [Mutations.UPDATE_USER_SCM]: updateSCM 62 } 63 }; 64 65 declare module '@/store' { 66 interface State { 67 user: UserState; 68 } 69 } 70 71 export default module;