Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/theoludwig/eslint-config-conventions
ESLint shareable config to enforce strict conventions and good code quality.
https://github.com/theoludwig/eslint-config-conventions
code conventions eslint eslintconfig linter quality strict
Last synced: 3 months ago
JSON representation
ESLint shareable config to enforce strict conventions and good code quality.
- Host: GitHub
- URL: https://github.com/theoludwig/eslint-config-conventions
- Owner: theoludwig
- License: mit
- Created: 2022-02-19T15:05:59.000Z (almost 3 years ago)
- Default Branch: develop
- Last Pushed: 2024-10-07T15:47:07.000Z (3 months ago)
- Last Synced: 2024-10-07T15:50:11.166Z (3 months ago)
- Topics: code, conventions, eslint, eslintconfig, linter, quality, strict
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/eslint-config-conventions
- Size: 808 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
eslint-config-conventions
ESLint shareable config to enforce strict conventions and good code quality.## 📜 About
**eslint-config-conventions** is a [ESLint](https://eslint.org) configuration to enforce strict conventions and good code quality. It supports both **JavaScript** and **TypeScript**.
This configuration is mostly **for catching bugs** and **code-quality** so it is recommended to use it with [Prettier](https://prettier.io/) for a consistent code style, it works with any `.prettierrc.json` configuration.
More information about **formatting rules** vs **code-quality rules** can be found on [Prettier vs. Linters](https://prettier.io/docs/en/comparison.html).
## ⚙️ Getting Started
### Prerequisites
[Node.js](https://nodejs.org/) >= 20.11.0
### Installation
```sh
npm install --save-dev \
eslint@^9.12.0 \
eslint-plugin-promise@^7.1.0 \
eslint-plugin-unicorn@^56.0.0 \
eslint-plugin-import-x@^4.3.1 \
globals@^15.10.0 \
typescript@~5.5.4 \
typescript-eslint@^8.8.0 \
eslint-config-conventions@latest
```Dependencies are:
- [ESLint](https://github.com/eslint/eslint)
- [ESLint Plugins](https://eslint.org/docs/user-guide/configuring/plugins)
- [eslint-plugin-promise](https://github.com/xjamundx/eslint-plugin-promise)
- [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn)
- [eslint-plugin-import-x](https://github.com/un-ts/eslint-plugin-import-x)
- [globals](https://github.com/sindresorhus/globals)
- [TypeScript](https://github.com/Microsoft/TypeScript)
- [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint): tooling which enables ESLint to support TypeScript.
- This package: `eslint-config-conventions`### Configuration
#### `eslint.config.js` (JavaScript and TypeScript)
```js
// @ts-checkimport typescriptESLint from "typescript-eslint"
import configConventions from "eslint-config-conventions"export default typescriptESLint.config(...configConventions)
```#### Configuration with [Prettier](https://prettier.io/) (recommended)
```sh
npm install --save-dev prettier# Create an empty config file to let editors and other tools know you are using Prettier
# You can personalize it with your own rules
echo "{}" > .prettierrc.json
```That's all! No need to update the `eslint.config.js` configuration.
We discourage usage of [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) and [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier), as `eslint-config-conventions` doesn't include any stylistic rules, and including these packages has several drawbacks (listed in [Integrating with Linters](https://prettier.io/docs/en/integrating-with-linters.html)) and brings no benefits for this configuration.
#### `package.json`
```json
{
"scripts": {
"lint:eslint": "eslint . --max-warnings 0",
"lint:prettier": "prettier . --check"
}
}
```### Usage
```sh
node --run lint:eslint
# or to apply automatic fixes to code
node --run lint:eslint -- --fix# Validate code formatting in all supported languages by Prettier
node --run lint:prettier
```## 💡 Contributing
Anyone can help to improve the project, submit a Feature Request, a bug report or even correct a simple spelling mistake.
The steps to contribute can be found in the [CONTRIBUTING.md](./CONTRIBUTING.md) file.
## 📄 License
[MIT](./LICENSE)