Files
flipper/desktop
Michel Weststrate 5df34a337c Unshare global types
Summary:
This diff adds `types` fields on the compiler config for every project. This way we can make sure that for example node types and packages are not available in flipper-ui-core. Without an explicit types field, all types would be shared between all packages, and implicitly included into the compilation of everything. For the same reason `types/index.d.ts` has been removed, we want to be intentional on which types are being used in which package.

This diff does most of the work, the next diff will fine tune the globals, and do some further cleanup.

As an alternative solution I first tried a `nohoist: **/node_modules/types/**` and make sure every package list explicitly the types used in package json, which works but is much more error prone, as for example two different react types versions in two packages will cause the most unreadable compiler error due to the types not being shared and not literally the same.

Reviewed By: lawrencelomax

Differential Revision: D33124441

fbshipit-source-id: c2b9d768f845ac28005d8331ef5fa1066c7e4cd7
2021-12-17 07:36:07 -08:00
..
2021-12-16 14:54:59 -08:00
2021-12-17 07:36:07 -08:00
2021-12-17 07:36:07 -08:00
2021-12-17 07:36:07 -08:00
2021-12-17 07:36:07 -08:00
2021-12-17 07:36:07 -08:00
2021-12-17 07:36:07 -08:00
2021-12-17 07:36:07 -08:00
2021-12-17 07:36:07 -08:00
2021-12-17 07:36:07 -08:00
2021-12-17 07:36:07 -08:00
2021-12-17 07:36:07 -08:00
2021-12-17 07:36:07 -08:00
2021-12-17 07:36:07 -08:00
2021-12-17 07:36:07 -08:00
2021-12-17 07:36:07 -08:00
2021-12-17 02:49:09 -08:00
2021-12-17 07:36:07 -08:00
2021-10-12 16:00:52 -07:00
2021-12-17 07:36:07 -08:00
2021-12-17 07:36:07 -08:00
2021-12-17 07:36:07 -08:00
2021-09-27 08:25:20 -07:00
2021-12-17 07:36:07 -08:00
2021-10-08 01:33:03 -07:00
2021-12-16 14:54:59 -08:00
2021-12-16 14:54:59 -08:00
2021-12-17 07:36:07 -08:00
2021-12-17 07:36:07 -08:00
2021-12-17 07:36:07 -08:00

Flipper Desktop

This folder contains everything to run the Flipper 'Desktop', that is, the UI which you use to interact with the device / app under debug.

Packages provided here:

  • flipper-common: utilities & types shared between client, server, flipper-plugin
  • flipper-server-core: all device & client management goes in here. Basically flipper's backend
  • flipper-ui-core: all UI goes in here, as far as it doesn't depend on Electron
  • flipper-ui-electron: the Electron app, will load server-core and ui-core, and glue them together, providing implementations for some electron * specific stuff like dialgos
  • flipper-server: A node process hosting flipper-server-core, that can be connected to over websockets. And probably can serve a browser version of the UI as well.
  • flipper-ui-browser: thin wrapper around flipper-ui-core, providing some browser specific behavior / stubs.
  • flipper-dump: (might remove later), but want to hack a quick and dirt flipper dump in here, as alternative way to test flipper-server-core.
  • flipper-plugin: The flipper SDK used by plugins. Exposes all API's that can be used by plugins
  • pkg: CLI tool to manage building flipper plugins
  • pkg-lib
  • plugin-lib
  • babel-transformer
  • doctor
  • eslint-plugin-flipper

Packages overview

flipper-ui-electron:
   - flipper-server-core (directly embedded)
   - flipper-ui-core
       - plugins (prebundled)
   - plugins (installable)
       - flipper-plugin

flipper-server
   - flipper-server-core
   - flipper-ui-browser (served by webserver)
       - flipper-ui-core (communicates using WebSocket with server-core)
           - plugins (prebundled)
   - plugins (installable)?

flipper-dump
   - flipper-server-core