flipper-client-sdk
Version:
SDK to build Flipper clients for JS based apps
47 lines (46 loc) • 1.7 kB
TypeScript
export declare type FlipperPluginID = string;
export declare type FlipperMethodID = string;
export declare class FlipperResponder {
messageID?: number;
private client;
constructor(messageID: number, client: FlipperClient);
success(response?: any): void;
error(response?: any): void;
}
export declare type FlipperReceiver = (params: any, responder: FlipperResponder) => void;
export declare class FlipperConnection {
pluginId: FlipperPluginID;
private client;
private subscriptions;
constructor(pluginId: FlipperPluginID, client: FlipperClient);
send(method: FlipperMethodID, params: any): void;
receive(method: FlipperMethodID, receiver: FlipperReceiver): void;
call(method: FlipperMethodID, params: any, responder: FlipperResponder): void;
hasReceiver(method: FlipperMethodID): boolean;
}
export interface FlipperPlugin {
getId(): string;
onConnect(connection: FlipperConnection): void;
onDisconnect(): void;
runInBackground(): boolean;
}
export declare abstract class FlipperClient {
private _isConnected;
protected plugins: Map<FlipperPluginID, FlipperPlugin>;
protected connections: Map<FlipperPluginID, FlipperConnection>;
addPlugin(plugin: FlipperPlugin): void;
getPlugin(id: FlipperPluginID): FlipperPlugin | undefined;
onConnect(): void;
onDisconnect(): void;
abstract start(appName: string): void;
abstract stop(): void;
abstract sendData(payload: any): void;
abstract isAvailable(): boolean;
protected onMessageReceived(message: {
method: string;
id: number;
params: any;
}): void;
private connectPlugin;
private disconnectPlugin;
}