exome
Version:
State manager for deeply nested states
81 lines (80 loc) • 1.98 kB
TypeScript
import { type Middleware } from "exome";
export interface DevtoolsExtensionInterface {
connect(config: {
name: string;
maxAge?: number;
details: {
version: string;
};
}): DevtoolsExtensionConnectionInterface;
}
export interface DevtoolsExtensionConnectionInterface {
disconnect(): void;
send(data: {
event: "update";
type: "all";
payload: {
actions: Action[];
states: [string, any][];
};
}): void;
send(data: {
event: "update";
type: "action";
payload: Action;
}): void;
send(data: {
event: "update";
type: "state";
payload: [string, any] | [string, any, string];
}): void;
send(data: {
event: "send";
type: "actions";
payload: Action[];
}): void;
send(data: {
event: "send";
type: "action";
payload: Action;
}): void;
send(data: {
event: "send";
type: "states";
payload: [string, any][];
}): void;
send(data: {
event: "send";
type: "state";
payload: [string, any];
}): void;
subscribe(cb: (data: {
type: "sync";
}) => void): () => void;
}
export interface ExomeDevtoolsConfig {
name: string;
maxAge?: number;
ignoreListActions?: string[];
ignoreListStores?: string[];
}
/**
* Subscribes to Exome Developer Tools.
* https://chromewebstore.google.com/detail/exome-developer-tools/pcanmpamoedhpfpbjajlkpicbikbnhdg
*/
export declare const exomeDevtools: ({ name, maxAge, ignoreListActions, ignoreListStores, }: ExomeDevtoolsConfig) => Middleware;
interface Action {
id: string;
name: string;
payload: any[];
instance: string;
depth: number;
now: number;
time?: number;
trace: string;
error?: string;
response?: string;
before: Record<string, any>;
after?: Record<string, any>;
}
export {};