Skip to content

Releases: facebook/flow

v0.12.0

11 Jun 21:17
Compare
Choose a tag to compare

Likely to cause new Flow errors:

  • Fixed a bug where declarations from libraries which are exported from one module are not checked properly in the module into which that module is imported (e.g. if A.foo() returns a Promise, and module B requires A and calls A.foo(), the return type of A.foo() was not being checked properly)
  • Fixed enforcement of Object and Function type annotation arity, so that Object<K, V> errors
  • Restricted valid computed properties, such that only strings and numbers are allowed (notably, disallows null and undefined)

New features:

  • Added support for for-of and support for Iterable interface(s)
  • Added support for async/await
  • Added structural subtyping for interfaces -- anything can be an instance of an interface as long as it looks right
  • Added support for type annotations of the form typeof x, where x is the name of an in-scope variable
  • Added a new config option suppress_comment, a regexp which matches against comments and causes any Flow error on the next line to be suppressed. For example, suppress_comment=.*\$FlowFixMe.* will cause /* $FlowFixMe */\nvar x : number = "oops"; to not raise an error.
  • Added a new config option module.name_mapper, a regexp -> replacement template tuple to be applied to any matching module names before the Flow system resolves the name and looks it up
  • Added a --color=always|never|auto CLI option, useful when piping to less -R
  • Added a --one-line CLI option which replaces \n with \\n in multiline error messages, useful when piping to grep

Misc:

  • Many improvements to library files, especially node and ES6 APIs
  • Improved warnings on unsupported class members [PR #461]
  • Added support for export default class
  • Fixed if (x instanceof Array)
  • Fixed the type of x && y when x is an array, object or function
  • Fixed the flow get-def command, especially around imported types
  • Fixed a bug with == and improved comparison-related error messages
  • Fixed file watching for individual files included via .flowconfig [includes]
  • Fixed the build ID, so that the server restarts when accessed from a mismatched client version
  • Added a new config option log.file which overrides the default log file path

v0.11.0

12 May 22:07
Compare
Choose a tag to compare
  • We are now syncing Flow's commit history to GitHub. No more huge updating diffs. We'll also filter the changelog to the most important things.
  • Big React refactoring to support ES6 React classes
  • Do you use any to workaround things that you want to fix later? Well, now you can use $FixMe instead of any and easily grep for these workarounds later.
  • We now report parsing errors in non-@flow files that you are require()'ing/import'ing
  • Better error messages and better error message positions
  • Better error traces, with flow check --traces N, where N is the trace depth
  • Basic support for Object.freeze()
  • Assorted fixes and updates to the flow libs
  • We're trying to be better about commenting the code

v0.10.0

24 Apr 22:38
Compare
Choose a tag to compare
  • Support import/export type
  • [PR #412] More fs implementation
  • Support for static overloads
  • Fix order of args matched with overloads
  • Allow methods to have properties
  • [PR #405] Make interface-defined modules work with CommonJS/ES6Module interop
  • Refine mixed
  • Fix typeof null === "object" refinement
  • [PR #397] Facilitate debug builds
  • [PR #401] Improve error message clarity in a few places
  • Remove 'everything is a bool' implicit cast
  • Fix issues with optional properties during InstanceT ~> ObjT
  • Fix abnormals in catch blocks

v0.9.2

17 Apr 20:05
Compare
Choose a tag to compare
  • Fix lowercasing issue where "flow Path/To/Root" became "flow path/to/root"
  • Fix "My Path/To Flow/flow path/to/root" not autostarting server due to spaces

v0.9.1

16 Apr 22:42
Compare
Choose a tag to compare
  • Unbreak the command line for "flow path/to/root" (thanks @samwgoldman for the report!)

v0.9.0

16 Apr 21:01
Compare
Choose a tag to compare
  • Add Video-, Audio and TextTrackList (+ dependencies)
  • Refine switch cases
  • Better Not_found error
  • [PR #333] Partial fs module implementation
  • Update parser to match esprima-fb
  • [PR #370] Dom canvas context
  • [PR #393] Symbol should be called statically. Fix #391
  • Fix havoc_env to copy the for_type value
  • add bash completion
  • rewrite all the commands to use CommandSpec
  • json_of_t
  • [PR #384] Env printer
  • [PR #383] Add some build/test artifacts to .gitignore
  • [PR #377] Add missing HTMLImageElement properties
  • [PR #367] Re-add merged out oneOfType proptype implementation
  • Allow users to pin their .flowconfig to a specific version
  • colorize test failure diffs
  • Object spread fix
  • [PR #322] Add type signature for node "url", "querystring" and "path" modules
  • command parsing library
  • look for package.json in include paths
  • clear module errors properly
  • add verbose mode

v0.8.0

03 Apr 20:41
Compare
Choose a tag to compare
  • [PR #356] Add React.version to lib/react.js
  • [PR #331] node http.get() implementation
  • Fixes for indexers in object types and objects used as dictionaries
  • Flow server speedup
  • Support both commas and semicolons in object type patterns
  • Fix object assign for unresolved objects
  • Add prerr_endlinef
  • Fix support for the mixin pattern of specifying super
  • Incremental typechecking fix
  • Fix up promises interface definition + more tests
  • Perf win by loading master_cx once per job
  • Support for-in of null and undefined
  • Support typeof x === 'boolean'
  • Refine true and false literals
  • Fix refinement unit test
  • Type declarations for Geolocation interface
  • [PR #321] Support for React.cloneElement in 0.13
  • Refine simple assignments (things like while (x = x.parent) { x.doStuff(); })

v0.7.0

20 Mar 15:53
Compare
Choose a tag to compare
  • Initial support for ES6 import/export (with CommonJS interop)
  • Updates to CSS/CSSOM interface definitions
  • propTypes in React components now dictate the concrete type signature for this.props
  • Show errors in type-at-pos output
  • Flow now watches include paths specified in .flowconfig for file changes
  • Interpret x != undefined and x != null as the same refinement
  • Use Object.prototype.hasOwnProperty() calls as a refinement
  • Updates to Element and HTMLElement interface definitions

v0.6.0

13 Mar 22:34
Compare
Choose a tag to compare
  • Also watch for changes in include paths
  • Fix the Function type to be any function
  • Add Symbol global name to libs
  • Support trailing commas in parser
  • Make methods immutable
  • Remove tuple array length limit
  • [PR #315] Implement more PropTypes
  • Update componentWillReceive spec
  • Unsuppress library errors

v0.5.0

07 Mar 00:51
Compare
Choose a tag to compare
  • Add HTMLAnchorElement
  • [PR #295] Add one of proptype
  • Update the parser to work with the new esprima-fb & ast-types
  • [PR #299] Declare prompt function (fixes #204)
  • [PR #303] Add String.prototype.endsWith()
  • quick fix for react/es6 notation
  • extend scope of type params to following bounds
  • reasonless shortcut
  • Add React.findDOMNode to lib/react.js
  • move command documentation into each command
  • fix path in --help usage example
  • fix predicate filtering of null and undefined
  • [PR #292] Types for React synthetic events
  • basic support for bounded polymorphism
  • infer falsiness
  • node haste module support
  • add Abnormal.string