Implement headless tic-tac-toe CLI

Summary: Add a CLI app to play tic-tac-toe from the terminal.

Reviewed By: lblasa

Differential Revision: D36548528

fbshipit-source-id: 4cdfb9d8887cb0d4d0100a822f39a4f9fb25aa9b
This commit is contained in:
Andrey Goncharov
2022-05-23 08:06:18 -07:00
committed by Facebook GitHub Bot
parent 0fcfdef465
commit abbb267482
2 changed files with 29 additions and 2 deletions

View File

@@ -0,0 +1,17 @@
# headless-tic-tac-toe
**Experimental feature!**
Flipper can run plugins in a headless mode - expose their API over the wire. This is an example of how it might look like.
## Quick start
0. Clone [Flipper repo](https://github.com/facebook/flipper)
0. Navigate to `/desktop` folder.
0. Run `yarn`
0. Run `yarn flipper-server`
0. Start you mobile device (or any other device that supports Flipper).
0. Open your app that supports "ReactNativeTicTacToe" plugin (for instance, [React Native Example app](https://github.com/facebook/flipper/tree/main/react-native/ReactNativeFlipperExample)).
0. In a different terminal window, navigate to `/desktop/examples/headless-demo`
0. Run `yarn`
0. Run `yarn start`

View File

@@ -7,8 +7,18 @@
* @format * @format
*/ */
const {TicTacToeClient} = require('./ticTacToeClient');
const main = async () => { const main = async () => {
// TODO: Implement me const ticTacToeClient = new TicTacToeClient();
await ticTacToeClient.init();
const targetClientId = await ticTacToeClient.selectClient();
await ticTacToeClient.startTicTacToePlugin(targetClientId);
ticTacToeClient.startGame(targetClientId);
}; };
main().catch(console.error); main().catch((e) => {
console.error('main -> error', e);
process.exit(1);
});