UNPKG

lepont

Version:

A native <-> browser (webview) bridge library for react-native

28 lines (27 loc) 1 kB
import { Message, BridgePayload } from './types'; declare type WebView = { injectJavaScript: (s: string) => void; }; export declare type Bridge = { sendMessage: <T>(m: Message<T>) => void; }; export declare type BridgeImpl<T> = (payload: T, bridge: Bridge) => unknown; export declare type BridgeOption = (registry: Registry) => unknown; declare type WebViewRef = (wv: WebView | null) => void; declare type WebViewOnMessage = (event: any) => unknown; export declare function useBridge(...options: BridgeOption[]): [WebViewRef, WebViewOnMessage, { registry: Registry; }]; export declare class Registry implements Bridge { webView: WebView | null; registry: { [key: string]: BridgeImpl<any>; }; register<T>(type: string, handler: BridgeImpl<T>): void; ref: (webView: WebView | null) => void; clear: () => void; onMessage: <T>(e: any) => Promise<void>; sendMessage<T>(message: Message<T>): void; send<T, S>(p: BridgePayload<T, S>): void; } export {};