js-flipper
Version:
Flipper bindings for Node.js and web
74 lines (73 loc) • 2.2 kB
TypeScript
/// <reference types="node" />
import { FlipperRequest, FlipperResponse } from './message';
import { FlipperPlugin } from './plugin';
export declare enum WSCloseCode {
NormalClosure = 1000,
GoingAway = 1001,
ProtocolError = 1002,
UnsupportedData = 1003,
NoStatusRecvd = 1005,
AbnormalClosure = 1006,
InvalidFramePayloadData = 1007,
PolicyViolation = 1008,
MessageTooBig = 1009,
MissingExtension = 1010,
InternalError = 1011,
ServiceRestart = 1012,
TryAgainLater = 1013,
BadGateway = 1014,
TLSHandshake = 1015
}
export interface FlipperWebSocket {
onclose: ((ev: {
code: WSCloseCode;
}) => void) | ((ev: {
detail?: {
code: WSCloseCode;
};
}) => void) | null;
onerror: ((ev: unknown) => void) | null;
onmessage: ((ev: {
data: Buffer | ArrayBuffer | Buffer[] | string;
}) => void) | null;
onopen: (() => void) | null;
close(code?: number): void;
send(data: string): void;
readyState: number;
}
interface FlipperClientOptions {
urlBase?: string;
websocketFactory?: (url: string) => FlipperWebSocket;
onError?: (e: unknown) => void;
reconnectTimeout?: number;
getDeviceId?: () => Promise<string> | string;
}
export declare class FlipperClient {
private readonly plugins;
private readonly connections;
private ws?;
private deviceId;
private readonly os;
private readonly device;
private reconnectionTimer?;
private resolveStartPromise?;
private urlBase;
private websocketFactory;
private onError;
private reconnectTimeout;
private appName;
constructor();
addPlugin(plugin: FlipperPlugin): void;
getPlugin(id: string): FlipperPlugin | undefined;
start(appName: string, { urlBase, websocketFactory, onError, reconnectTimeout, getDeviceId, }?: FlipperClientOptions): Promise<void>;
stop(): void;
sendData(payload: FlipperRequest | FlipperResponse): void;
get isConnected(): boolean;
private connectToFlipper;
private reconnect;
private onMessageReceived;
private refreshPlugins;
private connectPlugin;
private disconnectPlugin;
}
export {};