Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. ESLint
  3. Flow

Flow

NOASSERTIONJavaScriptv8.0.3

ESLint plugin providing linting rules for Flow type annotations in JavaScript code.

GitHubGitHub
1.1k stars152 forks0 contributors

What is Flow?

eslint-plugin-flowtype is an ESLint plugin that provides linting rules specifically for Flow type annotations in JavaScript code. It helps enforce consistent type syntax, catch common Flow errors, and maintain code quality by integrating type checking into the ESLint workflow. The plugin solves the problem of inconsistent or incorrect Flow type usage that can lead to runtime errors or reduced type safety.

Target Audience

JavaScript developers using Flow for static type checking who want to enforce consistent type annotations and catch type-related errors during development. It's particularly useful for teams adopting Flow in existing codebases.

Value Proposition

Developers choose eslint-plugin-flowtype because it seamlessly integrates Flow type checking into their existing ESLint setup, provides automatic fixes for many common issues, and offers a comprehensive set of rules maintained by the Flow community. Its recommended configuration provides sensible defaults for enforcing Flow best practices.

Overview

Flow type linting rules for ESLint.

Use Cases

Best For

  • Enforcing consistent Flow type syntax across a codebase
  • Catching common Flow type errors during development
  • Automatically fixing simple type annotation issues
  • Teams adopting Flow in existing JavaScript projects
  • Maintaining code quality in large Flow-typed codebases
  • Integrating type checking into CI/CD pipelines via ESLint

Not Ideal For

  • Projects using TypeScript instead of Flow for static typing
  • Teams that prefer minimal linting and rely solely on Flow's built-in type checking
  • Codebases without Flow annotations or with gradual adoption where strict linting is premature

Pros & Cons

Pros

Extensive Rule Coverage

With over 40 rules, it enforces consistency in array styles, boolean types, spacing, and more, as detailed in the README's comprehensive rule list.

Automated Fixes

Many rules, such as array-style-complex-type and boolean-style, support ESLint's --fix option to automatically correct violations, reducing manual effort.

ESLint Ecosystem Integration

It plugs directly into ESLint, allowing teams to leverage existing tooling and configurations without switching linters, as highlighted in the setup instructions.

Flexible Configuration

Settings like onlyFilesWithFlowAnnotation let you limit linting to files with Flow annotations, preventing noise in mixed codebases, as explained in the settings section.

Cons

Flow-Exclusive Dependency

It's only useful for projects using Flow, making it irrelevant for TypeScript or untyped JavaScript, which severely limits its applicability.

Configuration Complexity

Requires setting up ESLint with @babel/eslint-parser and configuring multiple plugins and rules, which can be daunting and error-prone for newcomers.

Potential for Over-Strictness

With numerous rules, it might enforce style preferences that don't align with all teams' conventions, necessitating careful tuning and possible rule disabling.

Frequently Asked Questions

Quick Stats

Stars1,069
Forks152
Contributors0
Open Issues35
Last commit2 years ago
CreatedSince 2016

Tags

#flow#code-quality#flow-type#type-checking#eslint-plugin#javascript#flowtype#eslint#linting#static-analysis

Included in

ESLint4.7k
Auto-fetched 20 hours ago

Related Projects

BabelBabel

🐠 Babel is a compiler for writing next generation JavaScript.

Stars43,951
Forks5,887
Last commit22 hours ago
Flow ErrorsFlow Errors

Run Flow as an ESLint plugin

Stars402
Forks23
Last commit4 years ago
NN

Additional ESLint rules for Node.js

Stars343
Forks59
Last commit13 days ago
MDXMDX

ESLint Parser/Plugin for MDX

Stars301
Forks35
Last commit2 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub