flow-typed

A central repository for Flow library definitions

Github stars Tracking Chart

Travis npm
Join the chat at https://discordapp.com/invite/8ezwRUK

flow-typed is 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:

$ yarn global add flow-typed

$ cd /path/to/my/project
$ yarn install
$ flow-typed install rxjs@5.0.x
'rxjs_v5.0.x.js' installed at /path/to/my/project/flow-typed/npm/rxjs_v5.0.x.js

Huh?

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.

The flow-typed repo 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!

Getting Started

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.

FAQs

Before opening an issue, take a look at the FAQs.
Chances are your question has already been answered! If not, don't hesitate to
open an issue.

How Do I Contribute Library Definitions?

Just send a pull request! The wiki on
Contributing Library Definitions
details the format of new contributions. Contributions should follow the best practices outline on
CONTRIBUTING.md.

Contributing to the CLI

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-typed CLI

The flow-typed npm 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.

If package-specification was specified, only that one libdef will be installed.
If the --ignoreDeps flag was specified, the libdefs for the specified deps will be ignored. i.e: --ignoreDeps dev bundled peer.

flow-typed install foo@1.2.3
flow-typed validate-defs

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 // $ExpectError, the test has failed.

Note that this command assumes that the /definitions/ directory is correctly
structured. It should be run after running flow-typed validate-defs.

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]

Creates any-typed libdef that you can fill in.

If the --typescript flag was specified, 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.

Active Maintenance Team

Andrew Smith, Georges-Antoine Assi, Pascal Duez, Ville Saukkonen
:---:, :---:, :---:, :---:
@AndrewSouthpaw, @GAntoine, @pascalduez, @villesau

Overview

Name With Ownerflow-typed/flow-typed
Primary LanguageJavaScript
Program languageShell (Language Count: 3)
Platform
License:MIT License
Release Count33
Last Release Namev4.0.0 (Posted on 2024-05-11 09:36:38)
First Release Namev2.1.0 (Posted on 2017-04-20 11:52:08)
Created At2015-09-18 03:51:49
Pushed At2024-05-12 23:53:23
Last Commit At2024-03-18 09:45:29
Stargazers Count3.8k
Watchers Count59
Fork Count1.3k
Commits Count3.4k
Has Issues Enabled
Issues Count1083
Issue Open Count223
Pull Requests Count2979
Pull Requests Open Count13
Pull Requests Close Count487
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private
To the top