import Vue from 'vue' ; import Vuex from 'vuex' ; import createLogger from 'vuex/dist/logger' ; import { Route } from 'vue-router' ; import App , { AppState } from './App' ; import GlobalHeader , { GlobalHeaderState } from './GlobalHeader' ; import Login , { LoginState } from './Login' ; import Authorize , { AuthorizeState } from './Authorize' ; import TimelineSpace , { TimelineSpaceModuleState } from './TimelineSpace' ; import Preferences , { PreferencesModuleState } from './Preferences' ; import Settings , { SettingsModuleState } from './Settings' ; import organisms , { OrganismsModuleState } from './organisms' ; import { MyWindow } from '~/src/types/global' ; Vue . use ( Vuex ) ; const win = ( window as any ) as MyWindow ; export interface RootState { App : AppState ; GlobalHeader : GlobalHeaderState ; Login : LoginState ; Authorize : AuthorizeState ; TimelineSpace : TimelineSpaceModuleState ; Preferences : PreferencesModuleState ; Settings : SettingsModuleState ; molecules : OrganismsModuleState ; route : Route ; } export default new Vuex . Store ( { strict : win . node_env !== 'production' , plugins : win . node_env !== 'production' ? [ createLogger ( { } ) ] : [ ] , modules : { App , GlobalHeader , Login , Authorize , TimelineSpace , Preferences , Settings , organisms } } ) ;