Commit Graph

131 Commits

Author SHA1 Message Date
Daniel Büchele
5868946818 certificate provider
Summary: _typescript_

Reviewed By: passy

Differential Revision: D17096517

fbshipit-source-id: a6e69e8b9a82fe76bb1de51a3a93182f35f40b3f
2019-08-28 20:34:59 -07:00
Daniel Büchele
0ec48d4fc9 index
Summary:
This converts the index file to TypeScript which is used as an export for all plugins. Alongside, I had to fix a couple of errors in various files to make sure everything works correctly.

For plugins using flow, we define an interface which uses the type definition for FlipperPlugin and types all UI components as `any`.

Reviewed By: passy

Differential Revision: D16936890

fbshipit-source-id: dacd9a63a82b9f0bbb530b06072186874cba7b6f
2019-08-22 10:02:27 -07:00
Daniel Büchele
d0da0d66a5 main folder
Summary: _typescript_

Reviewed By: passy

Differential Revision: D16762117

fbshipit-source-id: b6ee32e0bb3fc686fc69cfccab703e2ef4989571
2019-08-15 03:33:06 -07:00
Pascal Hartig
573655c2f6 Migrate onRegisterDevice
Summary: _typescript_

Reviewed By: danielbuechele

Differential Revision: D16764866

fbshipit-source-id: bdf532dea1c3019f0cb7728b3a0a07a3602cf04b
2019-08-14 04:43:51 -07:00
Benjamin Elo
e4b071e867 Migrate PluginDebugger from js to tsx
Summary: Migrated PluginDebugger.js to PluginDebugger.tsx

Reviewed By: passy

Differential Revision: D16732025

fbshipit-source-id: c4ff5586f823e90eba14eef5a8dac114a058763b
2019-08-12 06:06:41 -07:00
Pascal Hartig
fcf99fda4b Migrate is{Headless,Production}
Summary: _typescript_

Reviewed By: jknoxville

Differential Revision: D16711115

fbshipit-source-id: 174e1d3057182c35a6e3493612ddcb3d6ba1ee54
2019-08-12 03:53:14 -07:00
John Knox
882d7e1a39 Convert utils/processConfig to TS
Reviewed By: danielbuechele

Differential Revision: D16710602

fbshipit-source-id: 3dbccdb0aedd3d5415487d690fb943aafdafa0f0
2019-08-12 03:11:16 -07:00
Pascal Hartig
b42abcbb59 Migrate logger
Summary:
Removed defunct log filtering functionality, but we probably want to rebuild that.
Funny that tsc caught this as non functioning but Flow happily accepted it.

Reviewed By: danielbuechele

Differential Revision: D16690959

fbshipit-source-id: b079dd6faba83ca0c443d00cbb69c8ff95c4fa69
2019-08-09 10:47:12 -07:00
John Knox
4afc417ea5 Convert iOSDevice dispatcher to TS
Summary: Convert iOSDevice dispatcher to TS

Reviewed By: passy

Differential Revision: D16690183

fbshipit-source-id: 629ac178e91b4774449503529df7e07cee6741c5
2019-08-09 09:05:10 -07:00
John Knox
6da09fa381 Convert plugins dispatcher to TS
Summary: Convert plugins dispatcher to TS

Reviewed By: passy

Differential Revision: D16689874

fbshipit-source-id: afdac7960e267ebed350fcb170795689bd327807
2019-08-09 09:05:10 -07:00
John Knox
9edfe88caa Convert notifications dispatcher to TS
Summary: Convert notifications dispatcher to TS

Reviewed By: danielbuechele

Differential Revision: D16689175

fbshipit-source-id: 7806d5452a57566ea3d6fdfd233a1679435e0103
2019-08-09 09:05:10 -07:00
Pritesh Nandgaonkar
c43beb53d1 Migrate dispatcher index to tsx
Summary: As per the title

Reviewed By: jknoxville, passy

Differential Revision: D16690303

fbshipit-source-id: fa78ea1e3f288249676d5a6423e5d0f0a6e427a4
2019-08-09 07:56:55 -07:00
Pritesh Nandgaonkar
86642816fb Migrate desktopDevice.js to tsx
Summary: As per the title

Reviewed By: jknoxville

Differential Revision: D16690092

fbshipit-source-id: bcb9a0e5a1e05849dd1f470fdd8d54b898f79695
2019-08-09 07:56:55 -07:00
Pritesh Nandgaonkar
c3807a6ba2 Migrate application from js to tsx
Summary: As per the title

Reviewed By: jknoxville

Differential Revision: D16690005

fbshipit-source-id: 8975da8aa7221b731358eacb4040f48198bf073b
2019-08-09 07:56:55 -07:00
Pritesh Nandgaonkar
03b5b133b8 Migrate androidDevice dispatcher from js to tsx
Summary: As per the title

Reviewed By: jknoxville

Differential Revision: D16689714

fbshipit-source-id: 1ff415a89b4ac91ffd4a23e8b50ec9fedfeea40e
2019-08-09 07:56:54 -07:00
Pritesh Nandgaonkar
0c0d595cbb Migrate WindowsDevice from js to tsx
Summary: As per the title

Reviewed By: jknoxville

Differential Revision: D16668705

fbshipit-source-id: 520981f2c1356a17561203f18e00f65a751ee8b8
2019-08-09 07:56:54 -07:00
Pritesh Nandgaonkar
2ed24c4a56 Migrate MacDevice from js to tsx
Summary: As per the title

Reviewed By: jknoxville

Differential Revision: D16668140

fbshipit-source-id: 109a7ce29a9dc3934673060e93741b96847dfa56
2019-08-09 07:56:54 -07:00
Pritesh Nandgaonkar
f408f3f949 Migrate the iOSDevice from js to tsx
Summary: As per the title.

Reviewed By: jknoxville

Differential Revision: D16668086

fbshipit-source-id: c246fcaf117802cf1d3c6b3959bf0d0c2761fdce
2019-08-09 07:56:53 -07:00
Pritesh Nandgaonkar
eb26a74327 Migrate AndroidDevice from js to tsx
Summary: As per the title

Reviewed By: jknoxville

Differential Revision: D16667269

fbshipit-source-id: d213f4ebacf8050ae55a8e3268909da8535f2d93
2019-08-09 07:56:53 -07:00
Pritesh Nandgaonkar
47a55b0f26 Migrate BaseDevice from js to tsx
Summary: As per the title

Reviewed By: passy

Differential Revision: D16687261

fbshipit-source-id: a9d85424fb0a08fada7edd0355c356907518d366
2019-08-09 06:56:54 -07:00
John Knox
18f43daa04 Convert server dispatcher to TS
Summary: Convert file to TS

Reviewed By: passy

Differential Revision: D16687921

fbshipit-source-id: 246f5ff58030463889f8f230d120477ff90f04c7
2019-08-09 04:58:27 -07:00
John Knox
bb7e3d4837 Convert tracking dispatcher to TS
Summary: Convert file to TS

Reviewed By: passy

Differential Revision: D16687919

fbshipit-source-id: a2fb8a0ba5e0d5c42765e80311b39868b1e78244
2019-08-09 04:58:27 -07:00
John Knox
8f7c817d56 Convert types dispatcher to TS
Summary: Convert file to TS

Reviewed By: passy

Differential Revision: D16687880

fbshipit-source-id: d3d8712fa4298f8124717ae98239ed63d3282b12
2019-08-09 04:58:27 -07:00
John Knox
cff023150e Convert user dispatcher to TS
Summary: Convert file to TS

Reviewed By: passy

Differential Revision: D16687861

fbshipit-source-id: 5aa88b169b915bc1abd71d312f510073ea78b0c7
2019-08-09 04:58:26 -07:00
Pascal Hartig
3c2d9973e5 Migrate iOSContainerUtility
Summary: TSC actually found a type error here in `safeExec` which is nice.

Reviewed By: danielbuechele

Differential Revision: D16666740

fbshipit-source-id: 28a1ad12190d2351a48323f23c3a69947503625d
2019-08-09 04:02:45 -07:00
Pascal Hartig
fc0966a133 Migrate GK
Summary: _typescript_

Reviewed By: jknoxville

Differential Revision: D16647882

fbshipit-source-id: a5a7053379cd9468e1da9ab0ac2098be3443dda7
2019-08-08 14:32:20 -07:00
John Knox
3bfb7faf0a Convert plugin.js to plugin.tsx
Summary:
* Deletes plugin.js
* Adds plugin.tsx
* Adds plugin flow-typed module that has the old flow types

Reviewed By: passy

Differential Revision: D16668067

fbshipit-source-id: b2f0ce47c4cf7125b4e352821e921b97675d12a9
2019-08-08 12:06:11 -07:00
Daniel Büchele
5f53087c7e client server
Summary: Migrating Server, Client and UninitializedClient to TypeScript

Reviewed By: passy

Differential Revision: D16687855

fbshipit-source-id: 402e4dbcd5d283d3e280d4d8b312662829457886
2019-08-08 11:00:38 -07:00
Daniel Büchele
64cefd0f84 migrate redux store
Summary: Migrating redux stores to TypeScript

Reviewed By: passy

Differential Revision: D16579796

fbshipit-source-id: e3e507f17f1bdd57eb45e30cb0b28aaee6c4521c
2019-08-08 08:07:21 -07:00
Pascal Hartig
6a43b0cc88 Revert D16648356: Migration of Basedevice from js to tsx
Differential Revision:
D16648356

Original commit changeset: 12954532acf9

fbshipit-source-id: 76754f427e7ccac0f0b0030c3a0af02d036c1a8b
2019-08-06 08:50:32 -07:00
Pritesh Nandgaonkar
604e6d761f Migration of Basedevice from js to tsx
Summary: Converted BaseDevice from js to tsx

Reviewed By: passy

Differential Revision: D16648356

fbshipit-source-id: 12954532acf91930ab8c5f995bb94f6f9fe44015
2019-08-06 05:12:20 -07:00
John Knox
f7875002dd Add user ratings
Summary:
Adds a star rating to flipper internal.

Based on the nuclide behaviour:
We get an event emitted when a user changes their rating.
And we also get the rating with every ping event, which is fired every minute, if flipper is the primary window.

The only thing I don't like that much is that this doesn't actually say anywhere what the stars are for.

Reviewed By: passy

Differential Revision: D16420281

fbshipit-source-id: 69a52f64058955d7cd068215478e95c554cb9ed4
2019-07-24 00:14:46 -07:00
John Knox
5288c4ac93 Rename id in CLEAR_PLUGIN_STATE event
Summary:
There's been a bug here where the id was treated as a pluginId.
Renaming to make it clear.

Reviewed By: passy

Differential Revision: D16338884

fbshipit-source-id: 42c6c92653811d88cd37ebf4834346b1f0bb2c2a
2019-07-18 05:28:45 -07:00
John Knox
782c23393a Back out "[flipper] disconnect client instead of removing it"
Summary:
Original commit changeset: 650ef1344b8b

Backing this out until we can come up with a better way to do it.

The change was introduced so that when a device disconnects / crashes, we don't lose all plugin state, and you can still see what was on screen before the crash..

However, there are some problems with this solution, which get quite complicated. Putting them here for future reference:
* Closing an app results in the plugins staying there, and there's no way to tell it's not actually connected.
* If the app reconnects, the JS plugin doesn't get re-initialized. Even though the client plugin has been.

Reviewed By: bnelo12

Differential Revision: D16280931

fbshipit-source-id: 48e09b876e631aa87372054e706cdb9a2b3e2eb7
2019-07-16 08:39:05 -07:00
John Knox
a097e673d8 Back out "[flipper] fix reconnecting clients"
Summary:
Original commit changeset: 1d0e6ce17c89

Backing this out until we can come up with a better way to do it.

The change was introduced so that when a device disconnects / crashes, we don't lose all plugin state, and you can still see what was on screen before the crash..

However, there are some problems with this solution, which get quite complicated. Putting them here for future reference:
* Closing an app results in the plugins staying there, and there's no way to tell it's not actually connected.
* If the app reconnects, the JS plugin doesn't get re-initialized. Even though the client plugin has been.

Reviewed By: bnelo12

Differential Revision: D16280932

fbshipit-source-id: 92585cdd0dace2012924df4106327a1e21ab9f9b
2019-07-16 08:39:05 -07:00
Pascal Hartig
e831743132 Harden lint rules
Summary: Taking another stab at adding some lint rules to make it harder to shoot yourself in the foot. Hopefully nothing too controversial. Preferring spread and rest should lead is more readable and there's no downside when using ES6. The "useless" rules are just things like renaming imports to the original name which should only happen during refactors.

Reviewed By: jknoxville

Differential Revision: D16180453

fbshipit-source-id: 1cf6851b7726c0aee953ec7cf7dd6fa0aca32253
2019-07-10 12:06:39 -07:00
Pascal Hartig
c588b650ae Prefer const wherever possible
Summary:
Non-final identifiers make code harder to understand.
This is particularly true for JavaScript where even the *type*
can change as a value gets reassigned later.

This enforces to use `const` whereever possible, but doesn't
"outlaw" `let`. Mixed destructuring is also still allowed.

Used `eslint --fix` to change all existing cases.

Reviewed By: jknoxville

Differential Revision: D16131329

fbshipit-source-id: 2eceaca7c603b71b36e005be5d135e1849f2518d
2019-07-10 03:28:25 -07:00
Pascal Hartig
662db20948 Disallow var
Summary: We're ES6 and `var`s scoping rules are weird. Let's block this.

Reviewed By: jknoxville

Differential Revision: D16131290

fbshipit-source-id: ba67d16bb8a185a4bb59a657a97b00230dbacafe
2019-07-10 03:28:25 -07:00
Daniel Büchele
af8fbf2b46 remove warning for GKs
Summary: As we are trying to clean the console from any non-important logs, I am removing the warnings about GK'd plugins. This information can be seen on the "Plugin not showing" panel.

Reviewed By: jknoxville

Differential Revision: D16148408

fbshipit-source-id: 5aeffa6e82524aacb050385ba86439654c07c741
2019-07-09 03:07:04 -07:00
Daniel Büchele
f2c8fe0205 fix reconnecting clients
Summary:
When an archived device reconnected, the clients from the architved device weren't removed and a new client was added. This caused a client to be shown multiple times after reconnecting a device.

In this diff, all clients and pluginStates from an archived device are removed once the device reconnects.

Reviewed By: passy

Differential Revision: D16075349

fbshipit-source-id: 1d0e6ce17c89bb75dd993466bca6bd64e2c63338
2019-07-02 03:11:06 -07:00
Daniel Büchele
468468a3bc Client fixes
Summary:
Event emitter was typed any. Therefore, Client extended any and thing went south.
removing the explicit any type and fixing flow errors.

Reviewed By: jknoxville

Differential Revision: D15987630

fbshipit-source-id: 9456149d46f839d9579fcc2671ab2a82935fc23a
2019-07-01 02:36:18 -07:00
Daniel Büchele
718939cd6b disconnect client instead of removing it
Summary: When an Android device disconnects, the device is marked as offline. In this diff, we want to make sure the client for the disconnected apps is not removed, but converted into a "disconnected" client. This makes sure plugins are still shown for the disconnected app.

Reviewed By: passy

Differential Revision: D15985424

fbshipit-source-id: 650ef1344b8be4411794b0344805cb75ceae4a83
2019-06-25 07:51:51 -07:00
Daniel Büchele
74d7359cbe archive disconnected Android devices
Summary:
Adding a `archive` method to Android devices, that returns a new ArchivedDevice with the same properties as the Android device. This method is called when an android device disconnects and the new ArchivedDevice is added to the devices list. When the device reconnects again, the archived device is removed.

Currently only logs are persisted. In following diffs we can:
- add support for iOS
- move the persisted pluginStates to the archived device as well

Reviewed By: passy

Differential Revision: D15942904

fbshipit-source-id: 07c5415994594abd630d0c4b458b76d1aac6ef02
2019-06-24 04:05:07 -07:00
John Knox
fdd75a123f Fix missing simulator bug
Summary:
Apple has changed the xcrun api in some cases, it seems.
Adding support for true instead of YES...

Reviewed By: danielbuechele

Differential Revision: D15940810

fbshipit-source-id: 94ba2733527e005b989fb5a62ffbab2f7a0243b9
2019-06-21 09:00:21 -07:00
Daniel Büchele
eb36e667d4 iOS CLI version mismatch detection
Summary:
Trying to detect version mismatches between the running Simulator and the version of Xcode's CLI tools.

What is done in this check:
- The running path of the running simulator is queries from `ps`
- The path of Xcode CLI tools is queried using `xcode-select -p`.
- The two paths are compared if they differ

Reviewed By: jknoxville, passy

Differential Revision: D15803238

fbshipit-source-id: 6638312505fc950ff7869fd55494984bfffb677b
2019-06-13 06:42:16 -07:00
John Knox
92edb82e13 Exit cleanly after flushing stdout
Summary:
Using `process.exit()` stops the node process without waiting for the event loop to finish, so when using async i/o, which is what happens when piped, if the output is buffered, the process can terminate before it finishes flushing the buffer.

This means you only get some of the output and the JSON is malformed.

This fixes it by calling `process.exit()` inside the flushed callback.

Reviewed By: passy

Differential Revision: D15624806

fbshipit-source-id: ea540ed5a40fb1811e5b705b190da96c8e54730d
2019-06-06 01:59:08 -07:00
Pritesh Nandgaonkar
873475405a Catch the exception thrown in xcrun
Summary: Catch the exception thrown in xcrun, which will occur for linux machines and in the cases when Xcode command line toolchain is not installed.

Reviewed By: passy

Differential Revision: D15621368

fbshipit-source-id: f3044cee6f7a4b5ba927a33003f9690c1fe31586
2019-06-05 11:41:31 -07:00
Daniel Büchele
72a39cb09d notification throttling
Summary:
Notification from plugins (especially network) could be very spammy. This diff introduces a throttle, so a plugin can only send a notification every 5 seconds. If a notification is sent earlier, it is not displayed and the counter is reset to 5 seconds from now.
In the notifications panel still all notifications are dispalyed.

Reviewed By: passy

Differential Revision: D15621427

fbshipit-source-id: ea5e3b39fdd5cdedff3fd5234e752800520a423b
2019-06-04 07:55:25 -07:00
John Knox
befaecbf7c Cleanup android client so tests exit without forcing them
Summary:
We've got some exit troubles, meaning we have to use process.exit() to stop the headless process. This isn't good because the output isn't necessarily flushed when the process forcefully exits this way.
The tests can check for this, so I've removed the forceExit flag, and fixed the case stopping them from cleanly exiting - the android adb client.

Reviewed By: passy

Differential Revision: D15602919

fbshipit-source-id: b4a9dbabf5d3c874bda6bf938e4acb7b5b7e901b
2019-06-03 10:44:08 -07:00
Pritesh Nandgaonkar
c94c2c8455 Add list-devices option to list the available devices.
Summary: This diff adds an option of `--list-devices` which will list the currently active devices on the machine. It will be later used to select a device by passing an `id` as an argument.

Reviewed By: danielbuechele

Differential Revision: D15524250

fbshipit-source-id: 7a79ceb1e431a25adcb4e05bc0cb68407c527806
2019-05-29 09:54:38 -07:00