@yoo-digital/eslint-config-base
v3.0.0-canary.0
Published
ESLint configuration file containing rules for TypeScript projects
Downloads
1,041
Readme
YOO ESLint Configuration for TypeScript Projects
Contains the settings and rules used for TypeScript projects within YOO. It is publicly available via the npm registry.
Purpose
The exported index.js
file contains all the ESLint rules that are compatible with our coding guidelines.
See the guidelines for more information.
This set of rules is framework agnostic. It only contains rules for pure TypeScript. This allows it to be extended for Angular or React projects. Extensions for these frameworks can be found in their respective packages:
Usage
In order to use the ESLint configuration file in your project, you will have to install its dependencies (including peer-dependencies). The following command should work for both npm and yarn. It will detect the proper client.
npx install-peerdeps --dev @yoo-digital/eslint-config-base
Be aware: The typescript package is one of the peer-dependencies. The versions might collide in your project. Always try to use the latest versions of typescript in your project.
After installing the packages, you can create a .eslintrc.js
file in the root of your project
and add the following lines:
module.exports = {
extends: '@yoo-digital/eslint-config-base',
};
You can apply your own set of rules on top of that, but do not turn off any of the rules, except it is an obstacle and making your life harder. Check the chapter below, for a complete set of rules that can be applied.
Development
Before creating a pull request or publishing changes, make sure you tested your changes.
You can use yarn link
to link your work in progress into an actual project and test your changes.
Make sure you are in the directory of the package (./packages/eslint-config-base) before linking.
See the official documentation of yarn for more information.
If you want to extend or change the set of rules, you can find all rules in the following list. We follow the Airbnb styleguide as a reference and applied our own set of rules regarding TypeScript: