If you need to run logic as the application initializes you can use the onInitialize hook. This is defined as an action and it receives the application instance as the input value. You can do whatever you want here. Set initial state, run an action, configure a router etc.
{% tabs %} {% tab title="overmind/onInitialize.ts" %}
import { OnInitialize } from 'overmind'
export const onInitialize: OnInitialize = async ({
state,
actions,
effects
}, overmind) => {
const initialData = await effects.api.getInitialData()
state.initialData = initialData
}
{% endtab %}
{% tab title="overmind/index.ts" %}
import { IConfig } from 'overmind'
import { onInitialize } from './onInitialize'
import { state } from './state'
import * as actions from './actions'
export const config = {
onInitialize,
state,
actions
}
// For explicit typing check the Typescript guide
declare module 'overmind' {
interface Config extends IConfig<typeof config> {}
}
{% endtab %} {% endtabs %}