eslint-config-twilio-ts
Version:
Twilio's ESLint TypeScript config
110 lines (80 loc) • 2.45 kB
Markdown
# eslint-config-twilio-ts
[](https://www.npmjs.com/package/eslint-config-twilio-ts)
[](https://www.npmjs.com/package/eslint-config-twilio-ts)
[](../../LICENSE)
Twilio's approach to TypeScript styling.
## Plugins and Extensions
This config includes the following plugins and extensions:
- [`eslint-config-twilio`](https://github.com/twilio-labs/twilio-style/tree/master/packages/eslint-config-twilio)
- [`@typescript-eslint`](https://github.com/typescript-eslint/typescript-eslint)
## Installation
```bash
$ npm install eslint eslint-config-twilio-ts --save-dev
```
## Usage
Add the ESLint config to either your `package.json` or your `.eslintrc`:
### package.json
```json
{
"name": "my-project",
"eslintConfig": {
"extends": [
"twilio-ts"
]
}
}
```
### .eslintrc
```json
{
"extends": [
"twilio-ts"
]
}
```
Then add the following two scripts for running and fixing your codebase:
```json
{
"scripts": {
"lint": "eslint --ext ts src/",
"lint:fix": "npm run lint -- --fix"
}
}
```
## Enabling React
To enable React linting in TypeScript, also install `eslint-config-twilio-react` and add `twilio-react` as an extension to your ESLint Config file. Then update the `lint` script to:
```json
{
"scripts": {
"lint": "eslint --ext ts --ext tsx src/"
}
}
```
### .eslintrc
NOTE: `twilio-ts` should come after `twilio-react` because `twilio-ts` overrides conflicting rules:
```json
{
"extends": [
"twilio-react",
"twilio-ts"
]
}
```
### Prettier
This package makes use of Prettier for setting specific code formatting rules in your project.
If you want to allow your IDE to auto-format your code as you save it, then create a `.prettierrc.js`
and import the base configuration from the `eslint-config-twilio`.
```js
const baseConfig = require('./node_modules/eslint-config-twilio/rules/prettier');
module.exports = {
...baseConfig,
};
```
You might also want to edit/extend those rules according to your project style-guide.
To do that, you will need to make ESLint aware of the changes.
From your `.eslintrc` file, add the following override rules:
```json
"prettier/prettier": ["warn", {}, {
"usePrettierrc": true
}],
```