A central repository for Flow library definitions
flow-typedis a repository of third-party library interface definitions for use with Flow.
You can grab definitions directly from this GitHub repo, or you can use the CLI (currently in beta) to install a libdef for a given library: ```bash $ yarn global add flow-typed
$ cd /path/to/my/project $ yarn install $ flow-typed install [email protected] 'rxjsv5.0.x.js' installed at /path/to/my/project/flow-typed/npm/rxjsv5.0.x.js ```
When you start a project with Flow, you likely want to use some third-party libraries that were not written with Flow. By default, Flow will just ignore these libraries leaving them untyped. As a result, Flow can't give errors if you accidentally mis-use the library (nor will it be able to auto-complete the library).
To address this, Flow supports library definitions which allow you to describe the interface of a module or library separate from the implementation of that module/library.
flow-typedrepo is a collection of high-quality library definitions, tests to ensure that definitions remain high quality, and tooling to make it as easy as possible to import them into your project.
All you have to do when you add one or more new dependencies to your project is run
flow-typed install. This will search the libdef repo and download all the libdefs that are relevant for your project and install them for you. After that, simply check them in and be on your way!
Check out Importing And Using Type Definitions in the wiki. It will walk you through using typedefs installed through flow-typed, as well as writing and including your own.
Bugfixes and improvements to the core CLI are welcome. If you'd like to contribute a new feature, consider opening an issue first to discuss it.
flow-typednpm package provides a CLI that includes several commands for working with this repository. The full list of commands is available at CLI Commands & Flags.
flow-typed install [package-specification] [--ignoreDeps deps]
Installs libdefs from looking at your package.json.
package-specificationwas specified, only that one libdef will be installed. If the
--ignoreDepsflag was specified, the libdefs for the specified deps will be ignored. i.e:
--ignoreDeps dev bundled peer.
flow-typed install [email protected]
Verifies that all files under the
/definitions/directory are structured and named properly. It does not run tests, it only asserts that file and directory names match the expected conventions.
This command is run during CI.
flow-typed run-tests [optional-pattern]
For each libdef, find each test and run it with all compatible versions of Flow. If any errors arise that are not
// $FlowExpectedError, the test has failed.
Note that this command assumes that the
/definitions/directory is correctly structured. It should be run after running
flow-typed update-cache [--debug]
By default flow-typed retrieves all available libdefs from its related upstream repository. To make this process more efficient, those libdefs are cached once on your local filesystem. Usually, the cache will automatically be updated after a short grace period during a libdef installation, but sometimes it is useful to do this update manually. Use this command if you want to download the most recent definitions into the cache for yourself.
flow-typed create-stub package-specification [--typescript]
any-typed libdef that you can fill in.
--typescriptflag was set to
true, TypeScript definition would be converted to flow-typed libdef format if possible. Please report any issues that you have encountered to flowgen repository.
flowgen supports most of the TypeScript syntax, however, in some cases manual changes may be needed before use. You can check out supported syntax constructs in flowgen's “The state of converter” section.
After you have edited these files, consider contributing them back to flow-typed.