@stratusgrid/eslint-config-typescript
v0.5.0
Published
StratusGrid's standard ESLint config for TypeScript projects
Downloads
2
Readme
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.json
snippet:
{
"editor.codeActionsOnSave": {
"source.fixAll": true
}
}