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.
Rules are configured for use with:
- Prettier for code formatting
- Typescript
- Functional programing style
Install the package and it's peer dependencies:
yarn add --dev eslint-config-divid eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin eslint-plugin-functional eslint-plugin-import confusing-browser-globals
Add a file called .eslintrc.js
to your project's root with the following content:
module.exports = {
extends: "divid",
parserOptions: {
project: "./tsconfig.json",
},
};
Add the following to the scripts
section of your project's package.json:
"lint": "eslint './src/**/*.ts{,x}' --ext .js,.ts,.tsx -f visualstudio"
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"]
}
If you want to override a rule, just put it in .eslintrc.js
like this:
module.exports = {
extends: "divid",
parserOptions: {
project: "./tsconfig.json",
},
rules: {
"@typescript-eslint/array-type": ["error", { default: "array" }],
},
};
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.
yarn version --patch
yarn version --minor
yarn version --major