1
1
mirror of https://github.com/theoludwig/eslint-config-conventions.git synced 2024-11-09 22:08:37 +01:00
ESLint shareable config to enforce strict conventions and good code quality. https://www.npmjs.com/package/eslint-config-conventions
Go to file
Théo LUDWIG d59b088bff
feat: add unicorn/no-new-array
BREAKING CHANGE: New rule introduced
2023-07-18 21:53:56 +02:00
.github build(deps): update latest 2023-07-02 15:54:50 +02:00
.husky chore: initial commit 2022-02-19 16:05:21 +01:00
.vscode chore: initial commit 2022-02-19 16:05:21 +01:00
test refactor: usage of node:test instead of tap 2023-07-02 15:46:14 +02:00
.commitlintrc.json chore: initial commit 2022-02-19 16:05:21 +01:00
.editorconfig chore: initial commit 2022-02-19 16:05:21 +01:00
.eslintignore chore: initial commit 2022-02-19 16:05:21 +01:00
.eslintrc.json feat: add unicorn/no-new-array 2023-07-18 21:53:56 +02:00
.gitattributes chore: initial commit 2022-02-19 16:05:21 +01:00
.gitignore chore: replace tape with tap 2022-03-19 14:28:00 +01:00
.lintstagedrc.json build(deps): update latest 2022-08-31 13:17:00 +02:00
.markdownlint-cli2.jsonc build(deps): update latest 2023-05-13 15:22:49 +02:00
.npmrc feat: add npm package provenance 2023-05-13 15:41:12 +02:00
.prettierrc.json chore: initial commit 2022-02-19 16:05:21 +01:00
.releaserc.json chore: initial commit 2022-02-19 16:05:21 +01:00
CODE_OF_CONDUCT.md fix: update author - Théo LUDWIG 2023-07-02 15:57:44 +02:00
CONTRIBUTING.md fix: update author - Théo LUDWIG 2023-07-02 15:57:44 +02:00
eslintrc.json feat: support both JavaScript and TypeScript linting 2022-02-20 12:36:37 +01:00
index.js chore: initial commit 2022-02-19 16:05:21 +01:00
LICENSE fix: update author - Théo LUDWIG 2023-07-02 15:57:44 +02:00
package-lock.json build(deps): update latest 2023-07-18 20:17:06 +02:00
package.json docs: improve recommended usage/setup 2023-07-18 20:25:19 +02:00
README.md docs: improve recommended usage/setup 2023-07-18 20:25:19 +02:00
tsconfig.json build(deps): update latest 2023-07-02 15:54:50 +02:00

eslint-config-conventions

ESLint shareable config to enforce strict conventions and good code quality.

Licence MIT Contributor Covenant

Conventional Commits semantic-release npm version

📜 About

eslint-config-conventions is a ESLint configuration to enforce strict conventions and good code quality, it is highly inspired from eslint-config-standard-with-typescript but it is stricter and with no formatting rules, only code-quality rules. 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 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.

⚙️ Getting Started

Prerequisites

Installation

npm install --save-dev \
  eslint@^8.44.0 \
  eslint-plugin-import@^2.27.5 \
  eslint-plugin-promise@^6.1.1 \
  eslint-plugin-unicorn@^48.0.0 \
  eslint-config-conventions@latest

This list of dependencies are:

If you want to use TypeScript, you also need to install:

npm install --save-dev \
  typescript@^5.1.6 \
  @typescript-eslint/eslint-plugin@^6.1.0 \
  @typescript-eslint/parser@^6.1.0

Dependencies are:

You will need to install some dependencies in addition to those required:

npm install --save-dev prettier eslint-config-prettier eslint-plugin-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

.eslintrc.json

{
  "extends": ["conventions", "prettier"],
  "plugins": ["prettier"],
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "project": "./tsconfig.json"
  },
  "rules": {
    "prettier/prettier": "error"
  }
}

Note: Please read some important instructions regarding the project option here.

"parserOptions.project" is only required if you use TypeScript.

package.json

{
  "scripts": {
    "lint:eslint": "eslint . --max-warnings 0 --report-unused-disable-directives --ignore-path .gitignore",
    "lint:prettier": "prettier . --check"
  }
}

Usage

npm run lint:eslint
# or to apply automatic fixes to code
npm run lint:eslint -- --fix

# Validate code formatting in all supported languages by Prettier
npm 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 file.

📄 License

MIT