Commit Graph

12 Commits

Author SHA1 Message Date
Anton Nikolaev
68248a7c63 Device plugin management (4/n): Allow choosing "device" plugin type in "flipper-pkg init"
Summary:
Added option to bootstrap device plugin in "flipper-pkg".

Changelog: "flipper-pkg init" can now be used to bootstrap device plugins

Reviewed By: mweststrate

Differential Revision: D26389429

fbshipit-source-id: 90773011bd50289004cd747111e1787402840922
2021-02-16 10:50:19 -08:00
Michel Weststrate
2f15ef883d Improve OSS plugin template
Summary:
Based https://github.com/facebook/flipper/issues/1866 and running `npx flipper-plugin init` locally. Doesn't address the original issue

Fixes #1866

Reviewed By: passy

Differential Revision: D26147089

fbshipit-source-id: 608dc92c5ccc741b6e760ea5a5034f9444e951b7
2021-02-01 02:28:34 -08:00
Michel Weststrate
cc438e60ad Update public docs to use Sandy
Summary: This updates the docs of Flipper to use Sandy, rather than `FlipperPlugin` class. Restructured the docs a bit as a result.

Reviewed By: passy

Differential Revision: D24991285

fbshipit-source-id: 66d5760c25cf9cf3983515433dfd64348d51db3d
2020-11-16 13:10:32 -08:00
Michel Weststrate
dc82ec2885 flipper-pkg template will now use sandy
Summary:
This diff updates plugin scaffolding by using Sandy and closely following the internal Scarf templates (see D24949452, D24949452)

By using `flipper-plugin`, it is now also possible to write unit tests for a plugin, and the default infra for that is generated (babel / jest)

For now there is still a dependency on `flipper` to support fancy components not yet available in Sandy, this will be updated in the future: T79632585

Changelog: `flipper-pkg init` now uses the new Sandy plugin infrastructure ant Ant.design component system

Reviewed By: nikoant

Differential Revision: D24950080

fbshipit-source-id: afc5e7ac728b20cb84fdbbdcb76cd45968736c01
2020-11-16 13:10:32 -08:00
Michel Weststrate
49b4022228 added tests for generated template files
Summary:
Created a test that snapshots the generated files, so that we can capture accidental regressions when generating files.

Also made the package id to package name a bit more robust

Reviewed By: jknoxville

Differential Revision: D21619633

fbshipit-source-id: 88ffb127e050d840df9ccd4b15ba29a71f341975
2020-05-19 05:33:35 -07:00
Michel Weststrate
080085e788 added simple watch mode
Summary:
Added a watch mode to the bundle command of flipper plugins. This makes it easy to test develop plugins locally, even when you are using a production build of flipper, which lowers the barrier of developing / fixing plugins.

opted for `fs.watch` over watchman to avoid some overengineering:
1. pkg / pkg-lib don't have the watchman utilities that would be needed for this. I wasn't sure if I could move those over from `static` without breaking the bootstrapping process
2. watchman is often a nuisance on non FB machines that aren't set up for it. fs.watch in contrast doesn't have any further dependencies or setup requirements, and is much more likely to work ootb.
3. since we watch only the `src` folder we don't really need the watchman optimizations. (so for a package.json change people would have to restart, but I don't think that is much of a problem).

Reviewed By: jknoxville

Differential Revision: D21523814

fbshipit-source-id: b1de72b7d01c6fc50cb8ce5709f54f8019eb89e4
2020-05-19 05:33:34 -07:00
Michel Weststrate
1e309abe4f add react types to template
Summary: See previous diff, should have merged those two diffs

Reviewed By: jknoxville

Differential Revision: D21523815

fbshipit-source-id: 3db91d06d845f0764e28f0dbf3020e77812cde53
2020-05-19 05:33:34 -07:00
Michel Weststrate
8d6ad59c52 add tsconfig to template
Summary: When opening a freshly generated plugin in VScode the IDE would be full of errors, even though it can bundle correctly thanks to the defaults used by bundle. This  is fixed by diff by correctly setting up a tsconfig.

Reviewed By: jknoxville

Differential Revision: D21523817

fbshipit-source-id: 8f6b58fbfb704460ddb5b845ddfb137b28d37187
2020-05-19 05:33:33 -07:00
Michel Weststrate
47f72e3332 add build command by default
Summary: By adding a build command the flipper plugin can be picked up, even when using a production build of Flipper, as we don't require Flipper's own infrastructure anymore to compile plugins.

Reviewed By: jknoxville

Differential Revision: D21523819

fbshipit-source-id: eed935ee95a7e3bff2ace629836b4b2450b5d1ad
2020-05-19 05:33:33 -07:00
Michel Weststrate
310a76d03f Improve standard view template
Summary:
As soon as any data was send to a freshly generated plugin, the plugin would crash as React doesn't support directly rendering data. Replaced it with a poor mans rendering that simply dumps all the data we received.

Also made sure the view is scrollable now which wasn't the case before.

Reviewed By: jknoxville

Differential Revision: D21523816

fbshipit-source-id: 3e04799facdf8b66ce9d66217a47fc7826d58d43
2020-05-19 05:33:33 -07:00
Michel Weststrate
7536c0e930 Add default .gitignore file
Summary:
This stack contains a bunch of improvements I made to smoothen the demo of plugin creating in the Flipper + React Native talk.

With 98% likelihood people will manage the source code of their Flipper plugins in git. This will make sure the `.gitignore` is configured properly ootb

Reviewed By: nikoant

Differential Revision: D21523818

fbshipit-source-id: b2ed769edc8fb9fd320464b05686e817e438f21e
2020-05-19 05:33:32 -07:00
Anton Nikolaev
d08dfee018 "init" command for flipper-pkg tool
Summary: Added command "init" to "flipper-pkg" which helps to quickly initialise Flipper desktop plugin.

Reviewed By: passy

Differential Revision: D21253819

fbshipit-source-id: 85a2fbde07ecb63737d180d2a7e5cc2846b4f533
2020-04-27 17:34:12 -07:00