undux
Version:
Dead simple state management for React
78 lines (69 loc) • 1.39 kB
TypeScript
type StartMessage = {
id: undefined,
source: '@devtools-extension'
state: undefined
type: 'START'
}
type InitMessage = {
payload: {
nextLiftedState: object
preloadedState: undefined
type: 'IMPORT_STATE'
}
state?: undefined
type: 'DISPATCH'
}
type JumpToActionMessage = {
id: string
payload: {
actionId: number
type: 'JUMP_TO_ACTION'
}
source: '@devtools-extension'
state: string
type: 'DISPATCH'
}
type JumpToStateMessage = {
id: string
payload: {
id: number
type: 'JUMP_TO_STATE'
}
source: '@devtools-extension'
state: string
type: 'DISPATCH'
}
type PauseMessage = {
id: string
payload: {
status: boolean
type: 'PAUSE_RECORDING'
}
source: '@devtools-extension'
state: undefined
type: 'DISPATCH'
}
type ToggleMessage = {
id: string
payload: {
id: number
type: 'TOGGLE_ACTION'
}
source: '@devtools-extension'
state: string
type: 'DISPATCH'
}
type Message = StartMessage | InitMessage | JumpToActionMessage
| JumpToStateMessage | PauseMessage | ToggleMessage
type Devtools = {
connect(): Devtools
send(key: string | number | symbol | null, storeState: object): void
subscribe(f: (message: Message) => void): void
}
declare module 'ReduxDevtoolsExtension' {
declare global {
interface Window {
__REDUX_DEVTOOLS_EXTENSION__?: Devtools
}
}
}