Files
flipper/js/js-flipper
dependabot[bot] 98936183d8 Bump @typescript-eslint/parser from 4.31.1 to 4.33.0 in /js/js-flipper (#3273)
Summary:
Bumps [typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 4.31.1 to 4.33.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/typescript-eslint/typescript-eslint/releases"><code>@​typescript-eslint/parser</code>'s releases</a>.</em></p>
<blockquote>
<h2>v4.33.0</h2>
<h1><a href="https://github.com/typescript-eslint/typescript-eslint/compare/v4.32.0...v4.33.0">4.33.0</a> (2021-10-04)</h1>
<h3>Bug Fixes</h3>
<ul>
<li><strong>eslint-plugin:</strong> [lines-between-class-members] fix <code>exceptAfterOverload</code> for abstract methods (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/3943">#3943</a>) (<a href="240fc65c30">240fc65</a>)</li>
<li><strong>eslint-plugin:</strong> [no-confusing-void-expression] support optional chaining (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/3937">#3937</a>) (<a href="c40dd13df7">c40dd13</a>)</li>
<li><strong>eslint-plugin:</strong> [no-restricted-imports] fix crash when no options given (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/3947">#3947</a>) (<a href="edaa3c10eb">edaa3c1</a>)</li>
<li><strong>eslint-plugin:</strong> [non-nullable-type-assertion-style] false-positive with non-nullish <code>as</code> assertions and types (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/3940">#3940</a>) (<a href="40760f98da">40760f9</a>)</li>
<li><strong>eslint-plugin:</strong> [padding-line-between-statements] TSModuleBlock should change scope (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/3944">#3944</a>) (<a href="f8f534e42b">f8f534e</a>)</li>
<li><strong>eslint-plugin:</strong> [prefer-regexp-exec] check <code>RegExp</code> without flags (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/3946">#3946</a>) (<a href="0868725713">0868725</a>)</li>
<li><strong>experimental-utils:</strong> add <code>getPhysicalFilename()</code> to <code>RuleContext</code> (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/3934">#3934</a>) (<a href="ee5dfd4989">ee5dfd4</a>)</li>
<li><strong>experimental-utils:</strong> require fix in suggestions (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/3949">#3949</a>) (<a href="f022fb14c7">f022fb1</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li><strong>experimental-utils:</strong> extract <code>isNodeOfTypeWithConditions</code> out of <code>ast-utils</code>' <code>predicates</code> (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/3837">#3837</a>) (<a href="214f898178">214f898</a>)</li>
</ul>
<h2>v4.32.0</h2>
<h1><a href="https://github.com/typescript-eslint/typescript-eslint/compare/v4.31.2...v4.32.0">4.32.0</a> (2021-09-27)</h1>
<h3>Bug Fixes</h3>
<ul>
<li><strong>eslint-plugin:</strong> [consistent-type-definitions] correct fix for <code>export default</code> (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/3899">#3899</a>) (<a href="ebb33ed8bc">ebb33ed</a>)</li>
<li><strong>eslint-plugin:</strong> [no-require-imports] report only global <code>require</code> (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/3871">#3871</a>) (<a href="8aa87a136e">8aa87a1</a>)</li>
<li><strong>eslint-plugin:</strong> [no-shadow] ignore type-only imports properly (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/3868">#3868</a>) (<a href="dda9cee68a">dda9cee</a>)</li>
<li><strong>eslint-plugin:</strong> [no-var-requires] report problems within <code>NewExpression</code> (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/3884">#3884</a>) (<a href="ed5e45983f">ed5e459</a>)</li>
<li><strong>eslint-plugin:</strong> [padding-line-between-statements] problems within namespaces not being reported (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/3869">#3869</a>) (<a href="186135698b">1861356</a>)</li>
<li><strong>eslint-plugin:</strong> [prefer-regexp-exec] respect flags when using <code>RegExp</code> (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/3855">#3855</a>) (<a href="ffdb5ff990">ffdb5ff</a>)</li>
<li><strong>eslint-plugin:</strong> [prefer-return-this-type] handle generics properly in fixer (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/3852">#3852</a>) (<a href="9e98b8f43c">9e98b8f</a>)</li>
<li><strong>eslint-plugin:</strong> false-positive/negative with array index in no-unnecessary-condition (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/3805">#3805</a>) (<a href="bdb8f0be14">bdb8f0b</a>)</li>
<li><strong>experimental-utils:</strong> add missing signature for <code>isParenthesized</code> (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/3887">#3887</a>) (<a href="806eaac6af">806eaac</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li><strong>eslint-plugin:</strong> [no-type-alias]: add allowGenerics option (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/3865">#3865</a>) (<a href="4195919973">4195919</a>)</li>
<li><strong>eslint-plugin:</strong> add <code>no-non-null-asserted-nullish-coalescing</code> rule (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/3349">#3349</a>) (<a href="4e999614e9">4e99961</a>)</li>
<li><strong>eslint-plugin:</strong> add new extended rule <code>no-restricted-imports</code> (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/3775">#3775</a>) (<a href="ec5d50696b">ec5d506</a>)</li>
<li><strong>eslint-plugin-internal:</strong> [prefer-ast-types-enum] add <code>DefinitionType</code> enum (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/3916">#3916</a>) (<a href="13b7de508e">13b7de5</a>)</li>
<li>Support <code>'latest'</code> as <code>ecmaVersion</code> (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/3873">#3873</a>) (<a href="25a42c0bbe">25a42c0</a>)</li>
</ul>
<h2>v4.31.2</h2>
<h2><a href="https://github.com/typescript-eslint/typescript-eslint/compare/v4.31.1...v4.31.2">4.31.2</a> (2021-09-20)</h2>
<p><strong>Note:</strong> Version bump only for package <code>@​typescript-eslint/typescript-eslint</code></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md"><code>@​typescript-eslint/parser</code>'s changelog</a>.</em></p>
<blockquote>
<h1><a href="https://github.com/typescript-eslint/typescript-eslint/compare/v4.32.0...v4.33.0">4.33.0</a> (2021-10-04)</h1>
<p><strong>Note:</strong> Version bump only for package <code>@​typescript-eslint/parser</code></p>
<h1><a href="https://github.com/typescript-eslint/typescript-eslint/compare/v4.31.2...v4.32.0">4.32.0</a> (2021-09-27)</h1>
<h3>Features</h3>
<ul>
<li>Support <code>'latest'</code> as <code>ecmaVersion</code> (<a href="https://github-redirect.dependabot.com/typescript-eslint/typescript-eslint/issues/3873">#3873</a>) (<a href="25a42c0bbe">25a42c0</a>)</li>
</ul>
<h2><a href="https://github.com/typescript-eslint/typescript-eslint/compare/v4.31.1...v4.31.2">4.31.2</a> (2021-09-20)</h2>
<p><strong>Note:</strong> Version bump only for package <code>@​typescript-eslint/parser</code></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="7bf8c9cb02"><code>7bf8c9c</code></a> chore: publish v4.33.0</li>
<li><a href="02c6ff3c5a"><code>02c6ff3</code></a> chore: publish v4.32.0</li>
<li><a href="25a42c0bbe"><code>25a42c0</code></a> feat: Support <code>'latest'</code> as <code>ecmaVersion</code> (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser/issues/3873">#3873</a>)</li>
<li><a href="eee47d0f90"><code>eee47d0</code></a> chore: publish v4.31.2</li>
<li>See full diff in <a href="https://github.com/typescript-eslint/typescript-eslint/commits/v4.33.0/packages/parser">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@typescript-eslint/parser&package-manager=npm_and_yarn&previous-version=4.31.1&new-version=4.33.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/3273

Reviewed By: antonk52

Differential Revision: D33565482

Pulled By: passy

fbshipit-source-id: 59ecb33584709f6bc53dd70a1f4f2844351ebde2
2022-01-13 06:46:20 -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
2021-10-21 04:28:21 -07:00
2022-01-13 05:29:04 -08: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 dsplayed in Flipper
    • options which conforms to the infterface
      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;
      }
      

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 implmentation 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!).