@hyper-fetch/plugin-devtools
Version:
Socket devtool plugin for HyperFetch
66 lines (54 loc) • 1.8 kB
text/typescript
import { AdapterInstance, ClientInstance, ClientOptionsType, ExtractAdapterOptionsType } from "@hyper-fetch/core";
import { CoreEvents, CustomEvents, EventSourceType, InternalEvents } from "./events.types";
export enum MessageType {
INTERNAL = "INTERNAL",
EVENT = "EVENT",
}
export enum MessageOrigin {
PLUGIN = "PLUGIN",
APP = "APP",
}
export interface BaseMessagePayload {
messageType: MessageType;
eventType?: InternalEvents | CoreEvents | CustomEvents;
connectionName: string;
eventData?: any;
environment: string;
origin: MessageOrigin;
[x: string]: any;
}
export interface PluginInternalMessagePayload extends BaseMessagePayload {
messageType: MessageType.INTERNAL;
eventType: InternalEvents.PLUGIN_INITIALIZED | InternalEvents.PLUGIN_HANGUP;
connectionName: string;
origin: MessageOrigin.PLUGIN;
clientOptions: ClientOptionsType<ClientInstance>;
adapterOptions: ExtractAdapterOptionsType<AdapterInstance>;
}
export interface AppInternalMessagePayload extends BaseMessagePayload {
messageType: MessageType.INTERNAL;
eventType: InternalEvents.APP_INITIALIZED;
connectionName: string;
eventData: any;
origin: MessageOrigin.APP;
}
export interface HFEventMessagePayload extends BaseMessagePayload {
messageType: MessageType.EVENT;
eventSource: EventSourceType;
connectionName: string;
eventName: string;
eventType?: CoreEvents | CustomEvents;
eventData: any;
isTriggeredExternally: boolean;
}
export type AppInternalMessage = {
data: AppInternalMessagePayload;
};
export type PluginInternalMessage = {
data: PluginInternalMessagePayload;
};
// Unify data and payload words
export type HFEventMessage = {
data: HFEventMessagePayload;
};
export type Message = HFEventMessage | PluginInternalMessage | AppInternalMessage;