{"id":19768,"library":"eslint-plugin-ft-flow","title":"eslint-plugin-ft-flow","description":"ESLint plugin providing Flowtype linting rules, maintained by the flow-typed community as a fork of the original eslint-plugin-flowtype. Current version 3.0.11, with regular releases every few months. Unlike the original plugin, it is actively maintained, supports ESLint 9 flat config, and includes additional rules like `no-duplicate-type-union-intersection-members` and `sort-type-union-intersection-members`. Requires `eslint` ^8.56.0 or ^9.0.0 and optionally `hermes-eslint` >=0.15.0.","status":"active","version":"3.0.11","language":"javascript","source_language":"en","source_url":"https://github.com/flow-typed/eslint-plugin-ft-flow","tags":["javascript","eslint","eslintplugin","plugin","flow","flow-bin","flowtype","flow-typed"],"install":[{"cmd":"npm install eslint-plugin-ft-flow","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-plugin-ft-flow","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-plugin-ft-flow","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency: required for plugin to work","package":"eslint","optional":false},{"reason":"optional peer dependency for Hermes parser support","package":"hermes-eslint","optional":true}],"imports":[{"note":"ESM-only since v3; CommonJS require not supported.","wrong":"const plugin = require('eslint-plugin-ft-flow')","symbol":"plugin (default)","correct":"import plugin from 'eslint-plugin-ft-flow'"},{"note":"Use named import for configs (e.g., recommended).","wrong":"const configs = require('eslint-plugin-ft-flow').configs","symbol":"configs","correct":"import { configs } from 'eslint-plugin-ft-flow'"},{"note":"Access rule definitions via named import.","wrong":"const rules = require('eslint-plugin-ft-flow').rules","symbol":"rules","correct":"import { rules } from 'eslint-plugin-ft-flow'"}],"quickstart":{"code":"// eslint.config.js (flat config, ESLint 9)\nimport plugin from 'eslint-plugin-ft-flow';\n\nexport default [\n  {\n    files: ['**/*.js', '**/*.jsx'],\n    plugins: {\n      'ft-flow': plugin,\n    },\n    rules: {\n      'ft-flow/define-flow-type': 1,\n      'ft-flow/use-flow-type': 1,\n      'ft-flow/no-weak-types': 2,\n    },\n  },\n];\n","lang":"typescript","description":"Show how to set up eslint-plugin-ft-flow with ESLint flat config, enabling a few rules for Flowtype linting."},"warnings":[{"fix":"Use import statement instead of require().","message":"Version 3.0.10 deprecated CommonJS require; only ESM imports work.","severity":"breaking","affected_versions":">=3.0.10"},{"fix":"Use the recommended rule set and migrate deprecated rules.","message":"Some rules may be deprecated and replaced; check documentation.","severity":"deprecated","affected_versions":">=3.0.0"},{"fix":"Add 'no-unused-vars': 'off' or configure appropriately.","message":"Rule 'define-flow-type' may conflict with ESLint's 'no-unused-vars'.","severity":"gotcha","affected_versions":""},{"fix":"Install hermes-eslint@^0.15.0 if you need Hermes parsing.","message":"Peer dependency hermes-eslint is optional but if used must be >=0.15.0.","severity":"gotcha","affected_versions":">=3.0.0"},{"fix":"Use eslint.config.js flat config; for .eslintrc use version <3.0.0.","message":"Flat config (ESLint 9) is supported but not all legacy config formats.","severity":"gotcha","affected_versions":">=3.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Use only one config format; remove .eslintrc.* if using eslint.config.js.","cause":"Mixing legacy and flat configs.","error":"Error: Plugin 'ft-flow' was conflicted between '.eslintrc.js' and 'eslint.config.js'"},{"fix":"Update eslint to ^8.56.0 or ^9.0.0 and eslint-plugin-ft-flow to >=3.0.10.","cause":"Using an incompatible version of ESLint or outdated plugin version.","error":"TypeError: Cannot destructure property 'getSourceCode' of 'context' as it is undefined."},{"fix":"Run npm install eslint-plugin-ft-flow --save-dev","cause":"Module not installed or not resolved.","error":"Error: Cannot find module 'eslint-plugin-ft-flow'"},{"fix":"Set 'sourceType': 'module' in ESLint config or use .mjs extension.","cause":"ESLint is not configured for ES modules.","error":"Parsing error: The keyword 'import' is reserved"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}