eslint-config-kensho
![npm](https://img.shields.io/npm/v/eslint-config-kensho.svg)
This ESLint config extends Airbnb's config (based on their style guide) to work with TypeScript.
Since the upstream config is well-maintained and justified, we try to stick as close to it as possible. All divergences are annotated, and tend towards increased ES2019 support, Prettier adoption, and TypeScript compatibility, rather than stylistic preferences.
Usage
To add linting to a project, first install ESLint, TypeScript, and this config as development dependencies:
$ npm i -D eslint typescript eslint-config-kensho
Add an ESLint config which extends the config, e.g.:
extends: kensho
Add a script in package.json to run the linter, e.g.:
{
"scripts": {
"test": "eslint ."
}
}
Caveat
The ESLint plugin dependencies specified in package.json should actually be peer dependencies (see this issue), and installed alongside ESLint and this config. In practice, this is quite tedious, so we have instead specified them as dependencies and rely on npm's dependency flattening to install them alongside the linter.
Note that this approach is technically incorrect, and if any plugin cannot be flattened this way (e.g. due to a conflicting version somewhere else in your dependency tree), this config will break. Since our projects use only this config, we feel that practicality outweighs absolute correctness in this case.
License
Licensed under the Apache 2.0 License. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2020-present Kensho Technologies, LLC. The present date is determined by the timestamp of the most recent commit in the repository.