eslint-plugin-fp-ts has 9,248 recorded weekly downloads on npm, ranking #982 of 2,322 tracked listings.
About eslint-plugin-fp-ts
eslint-plugin-fp-ts
A collection of ESLint rules for fp-ts
Installation
Assuming ESlint is installed locally in your project:
# npm
npm install --save-dev eslint-plugin-fp-ts
# yarn
yarn add --dev eslint-plugin-fp-ts
Then enable the plugin in your eslint.config.mjs file
import {defineConfig} from 'eslint/config'
import fptsPlugin from 'eslint-plugin-fp-ts'
export default defineConfig(
{
plugins: {
'fp-ts': fptsPlugin,
}
}
)
and enable the rules you want, for example
export default defineConfig(
{
plugins: {
'fp-ts': fptsPlugin,
},
rules: {
"fp-ts/no-lib-imports": "error"
}
}
)
If you want to enable rules that require type information (see the table below), then you will also need to add some extra info:
export default defineConfig(
{
plugins: {
'fp-ts': fptsPlugin,
},
languageOptions: {
parserOptions: {
projectService: true,
tsconfigRootDir: import.meta.dirname
}
},
rules: {
"fp-ts/no-discarded-pure-expression": "error",
}
}
)
If your project is a multi-package monorepo, you can follow the instructions here.
⚠️ Note that you will need to make the ESLint config file a .js file, due to the need of setting
tsconfigRootDirto__dirname. This is necessary to make both editor integrations and the CLI work with the correct path. More info here: https://github.com/typescript-eslint/typescript-eslint/issues/251
List of supported rules
| Rule | Description | Fixable | Requires type-checking |
|---|---|---|---|
| fp-ts/no-lib-imports | Disallow imports from fp-ts/lib/ | 🔧 | |
| fp-ts/no-pipeable | Disallow imports from the pipeable module | 🔧 | |
| fp-ts/no-module-imports | Disallow imports from fp-ts modules | 🔧 | |
| fp-ts/no-redundant-flow | Remove redundant uses of flow | 🔧 | |
| fp-ts/prefer-traverse | Replace map + sequence with traverse | 💡 | |
| fp-ts/prefer-chain | Replace map + flatten with chain | 💡 | |
| fp-ts/prefer-bimap | Replace map + mapLeft with bimap | 💡 | |
| fp-ts/no-discarded-pure-expression | Disallow expressions returning pure data types (like Task or IO) in statement position | 💡 | 🦄 |
Fixable legend:
🔧 = auto-fixable via --fix (or via the appropriate editor configuration)
💡 = provides in-editor suggestions that need to be applied manually
Configurations
Recommended
The plugin defines a recommended configuration with some reasonable defaults.
To use it, add it to the extends clause of your eslint.config.mjs file:
export default defineConfig(
{
plugins: {
'fp-ts': fptsPlugin,
},
extends: ["plugin:fp-ts/recommended"]
}
)
The rules included in this configuration are:
Recommended requiring type-checking
We also provide a recommended-requiring-type-checking which includes
recommended rules which require type information.
This configuration needs to be included in addition to the recommended one:
export default defineConfig(
{
plugins: {
'fp-ts': fptsPlugin,
},
extends: [
"fp-ts/recommended",
"fp-ts/recommended-requiring-type-checking"
]
}
)
👉 You can read more about linting with type information, including performance considerations here
All
The plugin also defines an all configuration which includes every available
rule.
To use it, add it to the extends clause of your eslint.config.mjs file:
export default defineConfig(
{
plugins: {
'fp-ts': fptsPlugin,
},
extends: ["fp-ts/all",]
}
)
Description from the npm listing.
- eslint
- eslintplugin
- eslint-plugin
- fp-ts
README badge
Show your rank in a README or on your website. The badge updates automatically.
Charts
Images: 30d · 1y · all time · 1600×900 dark
Adoption over time
7/30/90-day growth
Ranking history
Listing placement
Listing placement
Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.
Each band is one page of 20. Weekly downloads on a linear scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.
Recent observations
Full history (1)Similar npm ESLint plugins plugins
All 20 eslint-plugin-fp-ts alternativesData source
Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.
Listing: https://www.npmjs.com/package/eslint-plugin-fp-ts. First seen Oct 20, 2026; last successful collection Oct 20, 2026. See the methodology.