@xstate/inspect
Version:
XState inspection utilities
83 lines • 2.3 kB
TypeScript
import type { ActorRef, AnyInterpreter, AnyState, AnyStateMachine, SCXML } from 'xstate';
import { XStateDevInterface } from 'xstate';
import { InspectMachineEvent } from './inspectMachine';
export declare type MaybeLazy<T> = T | (() => T);
export declare type ServiceListener = (service: AnyInterpreter) => void;
export declare type Replacer = (key: string, value: any) => any;
export interface InspectorOptions {
url?: string;
iframe?: MaybeLazy<HTMLIFrameElement | null | false>;
devTools?: MaybeLazy<XStateDevInterface>;
serialize?: Replacer | undefined;
targetWindow?: Window | undefined | null;
}
export interface Inspector extends ActorRef<InspectMachineEvent, AnyState> {
/**
* Disconnects the inspector.
*/
disconnect: () => void;
}
/**
* Events that the receiver sends to the inspector
*/
export declare type ReceiverCommand = {
type: 'xstate.event';
event: string;
service: string;
} | {
type: 'xstate.inspecting';
};
/**
* Events that the receiver receives from the inspector
*/
export declare type ReceiverEvent = {
type: 'service.register';
machine: string;
state: string;
id: string;
sessionId: string;
parent?: string;
source?: string;
} | {
type: 'service.stop';
sessionId: string;
} | {
type: 'service.state';
state: string;
sessionId: string;
} | {
type: 'service.event';
event: string;
sessionId: string;
};
export declare type ParsedReceiverEvent = {
type: 'service.register';
machine: AnyStateMachine;
state: AnyState;
id: string;
sessionId: string;
parent?: string;
source?: string;
} | {
type: 'service.stop';
sessionId: string;
} | {
type: 'service.state';
state: AnyState;
sessionId: string;
} | {
type: 'service.event';
event: SCXML.Event<any>;
sessionId: string;
};
export declare type InspectReceiver = ActorRef<ReceiverCommand, ParsedReceiverEvent>;
export interface WindowReceiverOptions {
window: Window;
targetWindow: Window;
}
export interface WebSocketReceiverOptions {
server: string;
protocol?: 'ws' | 'wss';
serialize: Replacer | undefined;
}
//# sourceMappingURL=types.d.ts.map