Pass supportsMethod as an argument to the exportPersistedState
Summary: This diff adds supportsMethod as a closure which can be used to verify a method is implemented on the client side. It will be used in the next diff Reviewed By: jknoxville Differential Revision: D21176415 fbshipit-source-id: fe16d966c58d36558034ce4ade8f58f8031aab18
This commit is contained in:
committed by
Facebook GitHub Bot
parent
3a95875f67
commit
9d0d900b05
@@ -31,6 +31,15 @@ export function callClient(
|
|||||||
return (method, params) => client.call(id, method, false, params);
|
return (method, params) => client.call(id, method, false, params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This function is intended to be called from outside of the plugin.
|
||||||
|
// If you want to `supportsMethod` from the plugin use, this.client.supportsMethod
|
||||||
|
export function supportsMethod(
|
||||||
|
client: Client,
|
||||||
|
id: string,
|
||||||
|
): (method: string) => Promise<boolean> {
|
||||||
|
return (method) => client.supportsMethod(id, method);
|
||||||
|
}
|
||||||
|
|
||||||
export interface PluginClient {
|
export interface PluginClient {
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line
|
||||||
send(method: string, params?: Parameters): void;
|
send(method: string, params?: Parameters): void;
|
||||||
@@ -109,6 +118,7 @@ export abstract class FlipperBasePlugin<
|
|||||||
store: ReduxState | undefined,
|
store: ReduxState | undefined,
|
||||||
idler?: Idler,
|
idler?: Idler,
|
||||||
statusUpdate?: (msg: string) => void,
|
statusUpdate?: (msg: string) => void,
|
||||||
|
supportsMethod?: (method: string) => Promise<boolean>,
|
||||||
) => Promise<StaticPersistedState | undefined>)
|
) => Promise<StaticPersistedState | undefined>)
|
||||||
| null;
|
| null;
|
||||||
static getActiveNotifications:
|
static getActiveNotifications:
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ function createMockFlipperPluginWithExportPersistedState(id: string) {
|
|||||||
callClient: (string, ?Object) => Promise<Object>,
|
callClient: (string, ?Object) => Promise<Object>,
|
||||||
persistedState: ?{msg: string},
|
persistedState: ?{msg: string},
|
||||||
store: ?ReduxState,
|
store: ?ReduxState,
|
||||||
|
supportsMethod?: (string) => Promise<boolean>,
|
||||||
): Promise<?{msg: string}> => {
|
): Promise<?{msg: string}> => {
|
||||||
return Promise.resolve({
|
return Promise.resolve({
|
||||||
msg: 'MockFlipperPluginWithExportPersistedState',
|
msg: 'MockFlipperPluginWithExportPersistedState',
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import {
|
|||||||
FlipperDevicePlugin,
|
FlipperDevicePlugin,
|
||||||
FlipperPlugin,
|
FlipperPlugin,
|
||||||
callClient,
|
callClient,
|
||||||
|
supportsMethod,
|
||||||
FlipperBasePlugin,
|
FlipperBasePlugin,
|
||||||
} from '../plugin';
|
} from '../plugin';
|
||||||
import {default as BaseDevice} from '../devices/BaseDevice';
|
import {default as BaseDevice} from '../devices/BaseDevice';
|
||||||
@@ -472,6 +473,7 @@ export async function fetchMetadata(
|
|||||||
state,
|
state,
|
||||||
idler,
|
idler,
|
||||||
statusUpdate,
|
statusUpdate,
|
||||||
|
supportsMethod(client, pluginId),
|
||||||
),
|
),
|
||||||
`Timed out while collecting data for ${pluginName}`,
|
`Timed out while collecting data for ${pluginName}`,
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user