woocommerce/packages/js/eslint-plugin
Christopher Allford b7931409f2
Migrate From Nx to Turborepo (#33079)
This replaces all `nx` commands with `turbo` commands and removes Nx from the repository. All of the `project.json` files have been removed and any commands that broke with Turborepo have been adjusted.
2022-06-09 14:40:07 -07:00
..
changelog Packages: Add Changelogger scripts (#32813) 2022-05-05 15:26:36 +12:00
configs Update eslint-plugin recommended rules 2022-03-29 16:08:07 +08:00
docs/rules Moved WCA Packages 2022-03-18 14:25:26 -07:00
rules Moved WCA Packages 2022-03-18 14:25:26 -07:00
.eslintrc.js Add .eslintrc config to each packages 2022-03-29 16:08:07 +08:00
.npmrc Moved WCA Packages 2022-03-18 14:25:26 -07:00
CHANGELOG.md Update eslint-plugin recommended rules 2022-03-29 16:08:07 +08:00
README.md Moved WCA Packages 2022-03-18 14:25:26 -07:00
composer.json Set Composer Platform Requirements (#33245) 2022-05-27 14:57:33 -07:00
composer.lock Set Composer Platform Requirements (#33245) 2022-05-27 14:57:33 -07:00
index.js Moved WCA Packages 2022-03-18 14:25:26 -07:00
package.json Migrate From Nx to Turborepo (#33079) 2022-06-09 14:40:07 -07:00

README.md

ESLint Plugin

This is an ESLint plugin including configurations and custom rules for WooCommerce development.

Note: This primarily extends the @wordpress/eslint-plugin/recommended ruleset and does not change any of the rules exposed on that plugin. As a base, all WooCommerce projects are expected to follow WordPress JavaScript Code Styles.

However, this ruleset does implement the following (which do not conflict with WordPress standards):

  • Using typescript eslint parser to allow for eslint Import (see issue)
  • prettier formatting (using wp-prettier)
  • Dependency grouping (External and Internal) for dependencies in JavaScript files
  • No yoda conditionals
  • Radix argument required for parseInt.

Installation

Install the module

pnpm install @woocommerce/eslint-plugin --save-dev

Usage

To opt-in to the default configuration, extend your own project's .eslintrc.js file:

module.exports = {
  "extends": [ "plugin:@woocommerce/eslint-plugin/recommended" ]
}

Refer to the ESLint documentation on Shareable Configs for more information.

The recommended preset will include rules governing an ES2015+ environment, and includes rules from the @wordpress/eslint-plugin/recommended project.

If you want to use prettier in your code editor, you'll need ot create a .prettierrc.js file at the root of your project with the following:

module.exports = require("@wordpress/prettier-config");

Rules

Rule Description Recommended
dependency-group Enforce dependencies docblocks formatting