read infos from package.json

Summary:
Adding the properties from a plugin's `package.json` as static properties to the class.
The name from `package.json` is used as it's `id`.

This allows us in the future to add meta information about a plugin to it's package.json and still use the data inside the app.

Reviewed By: priteshrnandgaonkar

Differential Revision: D13417288

fbshipit-source-id: 3d0a62d4cb0115153cce1aaee677b9680fefebf4
This commit is contained in:
Daniel Büchele
2018-12-18 08:27:25 -08:00
committed by Facebook Github Bot
parent e23da69db9
commit 6ffc027051
9 changed files with 54 additions and 47 deletions

View File

@@ -49,9 +49,13 @@ export class FlipperBasePlugin<
Actions = *,
PersistedState = *,
> extends React.Component<Props<PersistedState>, State> {
static title: string = 'Unknown';
static id: string = 'Unknown';
static icon: string = 'apps';
static title: ?string = null;
static id: string = '';
static icon: ?string = null;
static bugs: ?{
email?: string,
url?: string,
} = null;
static keyboardActions: ?KeyboardActions;
static screenshot: ?string;
static defaultPersistedState: PersistedState;
@@ -78,7 +82,7 @@ export class FlipperBasePlugin<
onKeyboardAction: ?(action: string) => void;
toJSON() {
return `<${this.constructor.name}#${this.constructor.title}>`;
return `<${this.constructor.name}#${this.constructor.id}>`;
}
// methods to be overriden by plugins