46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
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
|
|
}
|
|
})
|