easy-qwebchannel
Version:
Easy IPC communication for QT applications
63 lines (62 loc) • 1.93 kB
TypeScript
export declare type CallbackFunction = (...args: any[]) => any;
export declare class EasyQWebChannel {
private context;
private deferred;
private onceConnectedSignalName;
/**
* @param channelObjectName
* @example new EasyQWebChannel('fooObj')
*/
constructor(channelObjectName: string);
ready(): Promise<any>;
/**
* @param signalName
* @param methodName
* @param callback
* @returns Promise<void>
* @example channel.answerNative(
* 'signalName',
* 'jsFinished',
* (args: any[]) => ({ jsSideResult: 'test' })
* )
*/
answerNative(signalName: string, methodName: string, callback: CallbackFunction): Promise<any>;
/**
* @param signalName
* @param methodName
* @param callback
* @param skipCallMethodWhenVoid if callback returns void, skip calling methodName
*/
answerNativeHeartBeat(signalName: string, methodName: string, callback: CallbackFunction, skipCallMethodWhenVoid?: boolean): void;
/**
* @param methodName
* @param signalName
* @param data
* @returns Promise<any>
* @example channel.callNative(
* 'methodName',
* 'nativeMethodFinished',
* { methodArgument: 'test' },
* )
*/
callNative(methodName: string, signalName: string, data: any): Promise<any>;
/**
* @param methodName
* @param data
*/
callNativeWithoutResponse(methodName: string, data: any): void;
/**
* @param methodName
*/
canUseMethod(methodName: string): boolean;
/**
* @param signalName
*/
canUseSignal(signalName: string): boolean;
/**
* @param signalName
* @param callback
* @example channel.once('nativeMethodFinished', (args: any[]) => {})
*/
once(signalName: string, callback: CallbackFunction): Promise<void>;
}