@stratusgrid/eslint-config-typescript v0.5.0
StratusGrid ESLint Config - TypeScript
StratusGrid's standard ESLint config for TypeScript projects.
This configuration is primarily based on the Airbnb base style guide and it's community supported TypeScript extension eslint-config-airbnb-typescript.
All custom rules are commented to provide rationales.
Getting Started
Install the package as a dev dependency:
npm i -D eslint @stratusgrid/eslint-config-typescript
Then set up your eslintrc:
// <project-root>/.eslintrc.js
module.exports = {
extends: [
'@stratusgrid/eslint-config-typescript',
// or for AWS CDK projects:
// '@stratusgrid/eslint-config-typescript/cdk'
],
parserOptions: {
project: 'tsconfig.json',
},
// ...any other config you wish to set
};Fine-Tuning Files to Lint
Typically in TypeScript projects, you will want to lint files that are not targeted for compilation by your tsconfig.json.
To ensure these files are linted, it is common practice to create an extended tsconfig.json just for use by ESLint.
Example
Include the following file in your project:
// <project-root>/.tsconfig.eslint.json
{
"extends": "./tsconfig.json", // assumes your tsconfig is in the same directory
"files": [
".eslintrc.js",
"jest.config.js"
// ...relative paths to other files you want linted
],
"include": [
"scripts/**/*",
"test/**/*"
// ...other patterns for which you want linting
],
"exclude": [
"node_modules",
"coverage",
"cdk.out"
// ...other patterns for which you do *not* want linting
]
}Then target it in your .eslintrc.js by setting parserOptions: { project: '.tsconfig.eslint.json' }.
This file will be ignored completely by the TypeScript compiler and will not affect your builds.
Helpful package.json scripts
{
"scripts": {
"lint": "eslint ./",
"lint:fix": "eslint --fix ./"
}
}Tooling
vscode
- ESLint plugin
- Fix-on-save
settings.jsonsnippet:
{
"editor.codeActionsOnSave": {
"source.fixAll": true
}
}