Commit Graph

5 Commits

Author SHA1 Message Date
Andrey Goncharov
d1ed676a48 Remove dynamic dependencies from flipper-server
Summary:
Currently, Flipper Server has a few productions dependencies (mac-ca, node-fetch) that are not bundled with the Flipper Server. It makes it harder to distribute Flipper Server, as now all potential consumers need not only to download the bundle, but also install these additional dependencies.
This diff makes it possible to bundle `mac-ca` and `node-fetch` with Flipper Server. As a result, Flipper Server becomes dependency-free in production.

Reviewed By: lblasa

Differential Revision: D36345213

fbshipit-source-id: 2cd6ba1b3301b45dc2295891964ba020fd107586
2022-05-13 03:19:47 -07:00
Andrey Goncharov
ba9a80545d Support globally installed React DevTools
Summary:
- Support loading globally installed DevTools

Background:
1. Initially, I wanted to use react-devtools-core as before. react-devtools-core standalone contains quite a few imports of node.js APIs. After [a conversation with Brian](https://fb.workplace.com/groups/react.devtools/permalink/3131548550392044), I pivoted to react-devtools-inline
2. Technical design doc of react-devtools-inline integration: https://docs.google.com/document/d/1STUSUhXzrW_KkvqSu7Ge-rxjVFF7oU3_NbwzimkO_Z4
3. We support usage of globally installed devtools. Code of react-devtools-inline is not ready to be used by the browser as is. We need to bundle it and substitute React and ReactDOM imports with the globals.
4. As we can't pre-compile what users install globally, we need to bundle global devtools on demand,
5. I tried re-using our Metro bundling pipeline initially, but gave up after fighting it for 2 days. Included, `rollup` instead.
6. Size of a `tgz` archive with a plugin is 2.1MB

allow-large-files

Reviewed By: mweststrate

Differential Revision: D34968770

fbshipit-source-id: 352299964ccc195b8677dbda47db84ffaf38737b
2022-03-31 04:01:33 -07:00
Andrey Goncharov
b1bc31044d Fix flipper-server build
Summary:
flipper-server build fails when a server add-on uses one of the ignored modules.
For instance, React DevTools is goin got use `ws` which has an optional dependency on `utf-8-validate` and `bufferutil`. Even though it is optional, it is still required, and therefore picked up by Metro.
This way it is silently ignored.

Reviewed By: mweststrate

Differential Revision: D34716514

fbshipit-source-id: a9d463d2d5d7c954e35d9a16f3da44ce17615673
2022-03-31 04:01:33 -07:00
Andrey Goncharov
aec05533d7 Expose a subset of flipper-plugin to flipper server
Summary: Flipper plugins rely on 'flipper-plugin' package being accessible from 'global'. Expose a subset (without UI stuff) of flipper-plugin to server add-ons

Reviewed By: mweststrate

Differential Revision: D34400811

fbshipit-source-id: e0079ddfa67e66c1b24ab02d7682917ddfc84aaf
2022-02-28 03:50:34 -08:00
Anton Kastritskiy
844728d9dc rename babel-transformer files from ts to tsx
Summary: group files rename

Reviewed By: passy

Differential Revision: D33889860

fbshipit-source-id: 888e173fc72b5e126c1e41324b6cae6be29274c5
2022-01-31 06:14:59 -08:00