Summary: This stack introduces Sandy device plugins, they are quite similar to normal plugins, but, a devicePlugin module is organized as ``` export function supportsDevice(device): boolean export function devicePlugin(devicePluginClient) export function Component ``` Device plugins get access to the device meta data and can subscribe to the `onLogEntry` callback and `onDestroy` lifecycle. They will be able to store state just as normal plugins, but can't send or receive methods, so devicePluginClient is a bit limited. This diff only sets up most of the new data structures, and makes sure everything still compiles and no existing tests fail. To prevent this diff from becoming to big, actually loading, rendering and testing device plugins will be done in next diffs Please take a critical look at the api proposed and the (especially) the public names used :) Reviewed By: passy, nikoant Differential Revision: D22691351 fbshipit-source-id: bdbbd7f86d14b646fc9a693ad19f33583a76f26d
30 lines
1010 B
TypeScript
30 lines
1010 B
TypeScript
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @format
|
|
*/
|
|
|
|
import * as TestUtilites from './test-utils/test-utils';
|
|
|
|
export {SandyPluginInstance, FlipperClient} from './plugin/Plugin';
|
|
export {
|
|
Device,
|
|
DeviceLogEntry,
|
|
DeviceLogListener,
|
|
DevicePluginClient,
|
|
LogLevel,
|
|
} from './plugin/DevicePlugin';
|
|
export {SandyPluginDefinition} from './plugin/SandyPluginDefinition';
|
|
export {SandyPluginRenderer} from './plugin/PluginRenderer';
|
|
export {SandyPluginContext, usePlugin} from './plugin/PluginContext';
|
|
export {createState, useValue, Atom} from './state/atom';
|
|
|
|
// It's not ideal that this exists in flipper-plugin sources directly,
|
|
// but is the least pain for plugin authors.
|
|
// Probably we should make sure that testing-library doesn't end up in our final Flipper bundle (which packages flipper-plugin)
|
|
// T69106962
|
|
export const TestUtils = TestUtilites;
|