Files
flipper/js/js-flipper
dependabot[bot] f94cdd1593 Bump eslint from 8.24.0 to 8.25.0 in /js/js-flipper (#4200)
Summary:
Bumps [eslint](https://github.com/eslint/eslint) from 8.24.0 to 8.25.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/eslint/eslint/releases">eslint's releases</a>.</em></p>
<blockquote>
<h2>v8.25.0</h2>
<h2>Features</h2>
<ul>
<li><a href="173e820408"><code>173e820</code></a> feat: Pass --max-warnings value to formatters (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16348">#16348</a>) (Brandon Mills)</li>
<li><a href="6964cb1e0f"><code>6964cb1</code></a> feat: remove support for ignore files in FlatESLint (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16355">#16355</a>) (Milos Djermanovic)</li>
<li><a href="1cc4b3a8f8"><code>1cc4b3a</code></a> feat: <code>id-length</code> counts graphemes instead of code units (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16321">#16321</a>) (Sosuke Suzuki)</li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a href="90c602802b"><code>90c6028</code></a> docs: Conflicting fixes (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16366">#16366</a>) (Ben Perlmutter)</li>
<li><a href="5a3fe70c52"><code>5a3fe70</code></a> docs: Add VS to integrations page (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16381">#16381</a>) (Maria José Solano)</li>
<li><a href="49bd1e5669"><code>49bd1e5</code></a> docs: remove unused link definitions (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16376">#16376</a>) (Nick Schonning)</li>
<li><a href="3bd380d3ea"><code>3bd380d</code></a> docs: typo cleanups for docs (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16374">#16374</a>) (Nick Schonning)</li>
<li><a href="b3a08376cf"><code>b3a0837</code></a> docs: remove duplicate words (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16378">#16378</a>) (Nick Schonning)</li>
<li><a href="a682562458"><code>a682562</code></a> docs: add <code>BigInt</code> to <code>new-cap</code> docs (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16362">#16362</a>) (Sosuke Suzuki)</li>
<li><a href="f6d57fb657"><code>f6d57fb</code></a> docs: Update docs README (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16352">#16352</a>) (Ben Perlmutter)</li>
<li><a href="721434705b"><code>7214347</code></a> docs: fix logical-assignment-operators option typo (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16346">#16346</a>) (Jonathan Wilsson)</li>
</ul>
<h2>Chores</h2>
<ul>
<li><a href="1f785944f6"><code>1f78594</code></a> chore: upgrade <code>@​eslint/eslintrc</code><a href="https://github.com/1"><code>@​1</code></a>.3.3 (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16397">#16397</a>) (Milos Djermanovic)</li>
<li><a href="8476a9b8b8"><code>8476a9b</code></a> chore: Remove CODEOWNERS (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16375">#16375</a>) (Nick Schonning)</li>
<li><a href="720ff75beb"><code>720ff75</code></a> chore: use &quot;ci&quot; for Dependabot commit message (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16377">#16377</a>) (Nick Schonning)</li>
<li><a href="42f547948f"><code>42f5479</code></a> chore: bump actions/stale from 5 to 6 (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16350">#16350</a>) (dependabot[bot])</li>
<li><a href="e5e9e271da"><code>e5e9e27</code></a> chore: remove <code>jsdoc</code> dev dependency (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16344">#16344</a>) (Milos Djermanovic)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/eslint/eslint/blob/main/CHANGELOG.md">eslint's changelog</a>.</em></p>
<blockquote>
<p>v8.25.0 - October 7, 2022</p>
<ul>
<li><a href="1f785944f6"><code>1f78594</code></a> chore: upgrade <code>@​eslint/eslintrc</code><a href="https://github.com/1"><code>@​1</code></a>.3.3 (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16397">#16397</a>) (Milos Djermanovic)</li>
<li><a href="173e820408"><code>173e820</code></a> feat: Pass --max-warnings value to formatters (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16348">#16348</a>) (Brandon Mills)</li>
<li><a href="8476a9b8b8"><code>8476a9b</code></a> chore: Remove CODEOWNERS (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16375">#16375</a>) (Nick Schonning)</li>
<li><a href="720ff75beb"><code>720ff75</code></a> chore: use &quot;ci&quot; for Dependabot commit message (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16377">#16377</a>) (Nick Schonning)</li>
<li><a href="90c602802b"><code>90c6028</code></a> docs: Conflicting fixes (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16366">#16366</a>) (Ben Perlmutter)</li>
<li><a href="5a3fe70c52"><code>5a3fe70</code></a> docs: Add VS to integrations page (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16381">#16381</a>) (Maria José Solano)</li>
<li><a href="6964cb1e0f"><code>6964cb1</code></a> feat: remove support for ignore files in FlatESLint (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16355">#16355</a>) (Milos Djermanovic)</li>
<li><a href="49bd1e5669"><code>49bd1e5</code></a> docs: remove unused link definitions (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16376">#16376</a>) (Nick Schonning)</li>
<li><a href="42f547948f"><code>42f5479</code></a> chore: bump actions/stale from 5 to 6 (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16350">#16350</a>) (dependabot[bot])</li>
<li><a href="3bd380d3ea"><code>3bd380d</code></a> docs: typo cleanups for docs (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16374">#16374</a>) (Nick Schonning)</li>
<li><a href="b3a08376cf"><code>b3a0837</code></a> docs: remove duplicate words (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16378">#16378</a>) (Nick Schonning)</li>
<li><a href="a682562458"><code>a682562</code></a> docs: add <code>BigInt</code> to <code>new-cap</code> docs (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16362">#16362</a>) (Sosuke Suzuki)</li>
<li><a href="1cc4b3a8f8"><code>1cc4b3a</code></a> feat: <code>id-length</code> counts graphemes instead of code units (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16321">#16321</a>) (Sosuke Suzuki)</li>
<li><a href="f6d57fb657"><code>f6d57fb</code></a> docs: Update docs README (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16352">#16352</a>) (Ben Perlmutter)</li>
<li><a href="e5e9e271da"><code>e5e9e27</code></a> chore: remove <code>jsdoc</code> dev dependency (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16344">#16344</a>) (Milos Djermanovic)</li>
<li><a href="721434705b"><code>7214347</code></a> docs: fix logical-assignment-operators option typo (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16346">#16346</a>) (Jonathan Wilsson)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="94ba68d76a"><code>94ba68d</code></a> 8.25.0</li>
<li><a href="c705f228b4"><code>c705f22</code></a> Build: changelog update for 8.25.0</li>
<li><a href="1f785944f6"><code>1f78594</code></a> chore: upgrade <code>@​eslint/eslintrc</code><a href="https://github.com/1"><code>@​1</code></a>.3.3 (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16397">#16397</a>)</li>
<li><a href="173e820408"><code>173e820</code></a> feat: Pass --max-warnings value to formatters (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16348">#16348</a>)</li>
<li><a href="8476a9b8b8"><code>8476a9b</code></a> chore: Remove CODEOWNERS (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16375">#16375</a>)</li>
<li><a href="720ff75beb"><code>720ff75</code></a> chore: use &quot;ci&quot; for Dependabot commit message (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16377">#16377</a>)</li>
<li><a href="90c602802b"><code>90c6028</code></a> docs: Conflicting fixes (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16366">#16366</a>)</li>
<li><a href="5a3fe70c52"><code>5a3fe70</code></a> docs: Add VS to integrations page (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16381">#16381</a>)</li>
<li><a href="6964cb1e0f"><code>6964cb1</code></a> feat: remove support for ignore files in FlatESLint (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16355">#16355</a>)</li>
<li><a href="49bd1e5669"><code>49bd1e5</code></a> docs: remove unused link definitions (<a href="https://github-redirect.dependabot.com/eslint/eslint/issues/16376">#16376</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/eslint/eslint/compare/v8.24.0...v8.25.0">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=eslint&package-manager=npm_and_yarn&previous-version=8.24.0&new-version=8.25.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

 ---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `dependabot rebase` will rebase this PR
- `dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `dependabot merge` will merge this PR after your CI passes on it
- `dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `dependabot cancel merge` will cancel a previously requested merge and block automerging
- `dependabot reopen` will reopen this PR if it is closed
- `dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

</details>

Pull Request resolved: https://github.com/facebook/flipper/pull/4200

Reviewed By: aigoncharov

Differential Revision: D40334976

Pulled By: mweststrate

fbshipit-source-id: 1453e97b21bbdfa16cae2994131c1d0808d066fc
2022-10-14 07:37:57 -07:00
..
2021-10-21 04:28:21 -07:00
2022-01-18 07:46:05 -08:00
2021-10-21 04:28:21 -07:00
2021-10-21 04:28:21 -07:00
2021-10-21 04:28:21 -07:00
2022-10-12 09:00:41 -07:00
2022-06-01 02:49:25 -07:00
2021-10-21 04:28:21 -07:00

js-flipper

This package exposes JavaScript bindings to talk from web / Node.js directly to flipper.

Installation

yarn add js-flipper

Usage

How to build Flipper plugins is explained in the flipper documentation: Creating a Flipper plugin. Building a Flipper plugin involves building a plugin for the Desktop app, and a plugin that runs on a Device (web or Node.js). This package is only needed for the plugin that runs on the device (web / Node.js), and wants to use the WebSocket connection to communicate to Flipper.

This package exposes a flipperClient. It has:

  • addPlugin method. It accepts a plugin parameter, that registers a client plugin and will fire the relevant callbacks if the corresponding desktop plugin is selected in the Flipper Desktop. The full plugin API is documented here.
  • start method. It starts the client. It has two arguments:
    • appName - (required) the name displayed in Flipper
    • options which conforms to the interface
      interface FlipperClientOptions {
        // Make the client connect to a different URL
        urlBase?: string;
        // Override WebSocket implementation (Node.js folks, it is for you!)
        websocketFactory?: (url: string) => FlipperWebSocket;
        // Override how errors are handled (it is simple `console.error` by default)
        onError?: (e: unknown) => void;
        // Timeout after which client tries to reconnect to Flipper
        reconnectTimeout?: number;
        // Set device ID. Default: random ID persisted to local storage.
        getDeviceId?: () => Promise<string> | string
      }
      

Example (web)

An example plugin can be found in FlipperTicTacToe.js.

The corresponding Desktop plugin ships by default in Flipper, so importing the above file and dropping the <FlipperTicTacToe /> component somewhere in your application should work out of the box.

The sources of the corresponding Desktop plugin can be found here.

Node.js

Node.js does not have a built-in WebSocket implementation. You need to install any implementation of WebSockets for Node.js that is compatible with the interface of the web version.

import flipperClient from 'js-flipper';
// Say, you decided to go with 'ws'
// https://github.com/websockets/ws
import WebSocket from 'ws';

// Start the client and pass some options
// You might ask yourself why there is the second argument `{ origin: 'localhost:' }`
// Flipper Desktop verifies the `Origin` header for every WS connection. You need to set it to one of the whitelisted values (see `VALID_WEB_SOCKET_REQUEST_ORIGIN_PREFIXES`).
flipperClient.start('My cool nodejs app', { websocketFactory: url => new WebSocket(url, {origin: 'localhost:'}) });

An example plugin should be somewhat similar to what we have for React. It is currently WIP (do not confuse with RIP!).