GitShow/facebook/flow
facebook

flow

Adds static typing to JavaScript to improve developer productivity and code quality.

by facebook
Star on GitHubForkWebsite

Rust

22.3k stars1.9k forks1.0k contributorsActive · 33m agoSince 2014v0.321.0MIT

Meet the team

See all 1027 on GitHub →
SamChou19815
SamChou198153.5k contributions
mroch
mroch3.0k contributions
panagosg7
panagosg71.7k contributions
samwgoldman
samwgoldman1.5k contributions
gkz
gkz1.4k contributions
gabelevi
gabelevi1.2k contributions
nmote
nmote904 contributions
jbrown215
jbrown215760 contributions

Languages

View on GitHub →
Rust71.8%
JavaScript26.1%
Shell1.3%
TypeScript0.6%
CSS0.3%
MDX0%

Commit activity

Last 12 weeks · 843 commits

Full graph →

Community health

6 of 6 standards met

Community profile →
87
✓README✓License✓Contributing✓Code of Conduct✓Issue Template✓PR Template

Recent fixes

View closed PRs →
mlp1802
Alternative to weak mode?ClosedIssue

Weak mode allowed you gradually convert a file. Now you can gradually convert the project, one file at a time, but you can't work on a file here and a file there, not without fixing them completely. If there is no alternative I believe it defeats the entire purpose of flow..and people would just use TS instead, if the hassle is almost he same.

mlp1802 · 48m ago
mwiencek
LSP: unicode escape sequences cause fatal exception: "Invalid_argument Char.chr"ClosedIssue

I was trying to get LSP working with Sublime Text 4, but Flow kept crashing due to the presence of non-ASCII characters in my source code. I was able to reproduce this with a small one-file project containing only : ``` :: -> flow textDocument/didOpen: {'textDocument': {'version': 0, 'languageId': 'javascript', 'text': '// @flow\n\n"”";\n', 'uri': 'file:///home/michael/code/sublime-flow-lsp-chr-issue/index.js'}} flow: Client fatal exception: (Invalid_argument Char.chr) flow: Starting Flow server flow: Raised at file "stdlib.ml", line 30, characters 20-45 flow: Called from file "src/hack_forked/utils/hh_json/hh_json.ml", line 183, characters 10-23 :: looks like flow doesn't like unicode-escaped characters like \ufffdabc. If I set ensure_ascii=False in the json encoder then it doesn't crash [...] but now it looks like it doesn't understand utf-16 column offsets. Oh well, I don't think many people will use utf-16 surrogate pairs in their code He submitted a workaround at https://github.com/sublimelsp/LSP/pull/1701 which I'm very thankful for, but it sounds like something that can be better handled in Flow too!

mwiencek · 20h ago
ibukanov
$Frozen<Type> object typeClosedIssue

Proposal utility type creates a read-only view of T. As such it does not model properly the effect of as a reference to T can be assigned to allowing to change the view via modifying the reference of the original type. To address that it will be nice to have utility type. A mutable T or cannot be assigned to while can be assigned to . The only way to create instances of is to use . This will allow to catch a missing call to . Use case Consider the following code: It presently type-checks and does not detect a missing call to while the intended version should be: Moreover, the bug is not detected by JS runtime at the point of foo.field assignment leading to rather hard to debug issues. This is especially actual in the code that uses immer-style libraries with the notion of draft objects that should be frozen when stored in persistent data structures. It is possible to workaround the issue using a wrapper type like: But this requires to create an extra objects at runtime witch brings an overhead over the original solution. Another possibility is to create a synthetic type for the mutable object that cannot be assigned to Foo like in: While this does not impose any runtime overhead, it still requires an ugly hack with a never assigned field and the any type and the error message is not ideal: In addition this hack does not work with arrays. With the code becomes:

ibukanov · 21h ago
Structured data for AI agents

Repository: facebook/flow. Description: Adds static typing to JavaScript to improve developer productivity and code quality. Stars: 22265, Forks: 1893. Primary language: Rust. Languages: Rust (71.8%), JavaScript (26.1%), Shell (1.3%), TypeScript (0.6%), CSS (0.3%). License: MIT. Homepage: https://flow.org/ Latest release: v0.321.0 (1w ago). Open PRs: 7, open issues: 586. Last activity: 33m ago. Community health: 87%. Top contributors: SamChou19815, mroch, panagosg7, samwgoldman, gkz, gabelevi, nmote, jbrown215, avikchaudhuri, mvitousek and others.

·@ofershap

Replace github.com with gitshow.dev