eslint-config-airbnb-extended 0.2.1 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1 +1,55 @@
1
- WIP
1
+ # `eslint-config-airbnb-extended`
2
+
3
+ [![NPM Version](https://img.shields.io/npm/v/eslint-config-airbnb-extended)](https://www.npmjs.com/package/eslint-config-airbnb-extended)
4
+ [![NPM Downloads](https://img.shields.io/npm/dw/eslint-config-airbnb-extended)](https://www.npmjs.com/package/eslint-config-airbnb-extended)
5
+ [![NPM Last Update](https://img.shields.io/npm/last-update/eslint-config-airbnb-extended)](https://www.npmjs.com/package/eslint-config-airbnb-extended)
6
+
7
+ > [!NOTE]
8
+ > This package is designed exclusively for **flat configuration**. Legacy `.eslintrc*` files are not supported. For that, please use older packages. For more details, refer to the [Note](https://github.com/NishargShah/eslint-config-airbnb-extended?tab=readme-ov-file#note).
9
+
10
+ ## Installation
11
+
12
+ ### Automate the setup with `create-airbnb-x-config`
13
+
14
+ ```bash
15
+ # Inside your project directory
16
+ npx create-airbnb-x-config
17
+ ```
18
+
19
+ To learn more about the configuration options available for `create-airbnb-x-config`, check out the [README.md](https://github.com/NishargShah/eslint-config-airbnb-extended/tree/master/packages/create-airbnb-x-config#create-airbnb-x-config).
20
+
21
+ ### Steps
22
+
23
+ You can choose whether to **install** or **not install** based on your needs.
24
+
25
+ - If you choose **installation**, the package will automatically detect your project's package manager and install all the required dependencies.
26
+ - If you choose **no installation**, you’ll get the necessary commands to install the dependencies manually.
27
+
28
+ After completing the steps, you’ll get a **GitHub URL** for the configuration template. Go to the URL, copy the content, and paste it into your `eslint.config.mjs` file. The template provided will depend on your earlier choices.
29
+
30
+ ### Manual Installation (Not Recommended)
31
+
32
+ While **manual installation** is possible, we strongly recommend using `create-airbnb-x-config` for automatic updates and ease of use.
33
+
34
+ The configuration may change over time, and `create-airbnb-x-config` will always stay up-to-date with the latest versions. If you're confident in handling manual installations, refer to the [Packages Used](https://github.com/NishargShah/eslint-config-airbnb-extended/tree/master/packages/eslint-config-airbnb-extended#packages-used) section for more information on the individual packages.
35
+
36
+ ## Packages Used
37
+
38
+ This configuration relies on the following essential packages:
39
+
40
+ - **`eslint-import-x`**: A powerful tool for managing and validating imports.
41
+ - **`eslint-plugin-react`**: Enforces React-specific linting rules and best practices.
42
+ - **`eslint-plugin-react-hooks`**: Ensures proper use of React hooks.
43
+ - **`eslint-plugin-jsx-a11y`**: Improves accessibility in JSX code.
44
+ - **`typescript-eslint`**: Provides linting support for TypeScript codebases.
45
+ - **`eslint-import-resolver-typescript`**: Ensures TypeScript compatibility for import statements.
46
+
47
+ ## FAQs
48
+
49
+ ### How to Configure for a Monorepo?
50
+
51
+ If you're working in a monorepo setup, it's recommended to run the installation command in the specific sub-folder where you want the configuration. Alternatively, you can choose to skip the package installation, and we'll provide a customized set of commands based on your selection, allowing you to install it according to your preferred method.
52
+
53
+ ### Why did we switch from `import` to `import-x`?
54
+
55
+ The switch from the `import` ESLint plugin to `import-x` is due to several improvements. `import-x` provides **better TypeScript support**, ensuring more accurate linting for TypeScript projects. It is **actively maintained**, with regular updates and bug fixes, unlike the original plugin. It also has **fewer issues reported on GitHub**, indicating better stability. Additionally, `import-x` offers a **more performant and lightweight version**, reducing linting overhead and improving build performance. These factors make `import-x` a more reliable and efficient choice.