Add support for async / custom plugin export

Summary:
Sandy plugins can now set up an `onExport` handler to enable customizing the export format of a plugin: `client.onExport(callback: (idler, onStatusMessage) => Promise<state>)`

Import will be done in next diff

Reviewed By: nikoant

Differential Revision: D26124440

fbshipit-source-id: c787c79d929aa8fb484f15a9340d7c87545793cb
This commit is contained in:
Michel Weststrate
2021-02-01 11:40:20 -08:00
committed by Facebook GitHub Bot
parent 32bde8cace
commit 34c915a739
21 changed files with 264 additions and 77 deletions

View File

@@ -135,6 +135,13 @@ Usage: `client.onDeepLink(callback: (payload: unknown) => void)`
Trigger when the users navigates to this plugin using a deeplink, either from an external `flipper://` plugin URL, or because the user was linked here from another plugin.
#### `onExport`
Usage: `client.onExport(callback: (idler, onStatusMessage) => Promise<state>)`
Overrides the default serialization behavior of this plugin. Should return a promise with state that is to be stored.
This process is async, so it is possible to first fetch some additional state from the device.
### Methods
#### `send`
@@ -277,6 +284,14 @@ See the similarly named event under [`PluginClient`](#pluginclient).
See the similarly named event under [`PluginClient`](#pluginclient).
#### `onExport`
See the similarly named event under [`PluginClient`](#pluginclient).
#### `onImport`
See the similarly named event under [`PluginClient`](#pluginclient).
### Methods
#### `addMenuEntry`