eslint-config-divid
v10.0.0
Published
ESLint Sharable Config using typescript and prettier with functional programming style
Readme
eslint-config-divid
This package contains rules to enforce the programming style we use at Divid but should be useful to anyone using typescript and prettier with functional programming style.
Features
Rules are configured for use with:
- Prettier for code formatting
- Typescript
- Functional programing style
Usage
Install the package and it's peer dependencies:
pnpm add --save-dev eslint-config-divid eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin eslint-plugin-functional eslint-plugin-importThis package ships as flat config (ESLint 9+) and is published as an ES module. Add a file called
eslint.config.js to your project's root (name it eslint.config.mjs if your own project isn't
already "type": "module") with the following content:
import divid from "eslint-config-divid";
export default [
...divid,
{
languageOptions: {
parserOptions: {
project: "./tsconfig.json",
},
},
},
];Add the following to the scripts section of your project's package.json:
"lint": "eslint . -f visualstudio"vscode config
In order for the vscode eslint plugin to work for typescript this is needed in the .vscode/settings.json file:
{
"eslint.validate": [
"javascript",
"javascriptreact",
{ "language": "typescript", "autoFix": true },
{ "language": "typescriptreact", "autoFix": true }
]
}You can set the vscode eslint plugin as recommended by adding a file .vscode/extensions.json with this content:
{
"recommendations": ["dbaeumer.vscode-eslint"]
}Overriding rules
If you want to override a rule, add another entry to the flat config array after ...divid —
later entries win:
import divid from "eslint-config-divid";
export default [
...divid,
{
languageOptions: {
parserOptions: {
project: "./tsconfig.json",
},
},
rules: {
"@typescript-eslint/array-type": ["error", { default: "array" }],
},
},
];Prettier and typescript
Any rules that conflicts or are uncessary becuase of prettier and typescript has been turned off according to prettier source and typescript source). The affected rules are commented to indicate they are turened of becuase of prettier or typescript.
How to publish
pnpm version patch
pnpm version minor
pnpm version major