diff --git a/README.md b/README.md index d793091..ead8c33 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,104 @@
+## Table of Contents + +- [Getting Started](#getting-started) +- [Additional Configurations](#additional-configurations) +- [License](#license) + +## Getting Started + +### ECMAScript + +#### Install + +```bash +pnpm add -D eslint eslint-plugin-import-x eslint-plugin-perfectionist eslint-config-prettier @gcoguiec/eslint-config +``` + +#### Register the configuration with [eslint](https://eslint.org/) + +```js +// eslint.config.js +import { ecmascript } from '@gcoguiec/eslint-config'; + +export default [...(await ecmascript())]; +``` + +### TypeScript + +#### Install + +```bash +pnpm add -D eslint eslint-plugin-import-x eslint-plugin-perfectionist eslint-config-prettier @typescript-eslint/eslint-plugin @typescript-eslint/parser @gcoguiec/eslint-config +``` + +#### Register the configuration with [eslint](https://eslint.org/) + +```js +// eslint.config.js +import { typescript } from '@gcoguiec/eslint-config'; + +export default [...(await typescript())]; +``` + +### Vue + +#### Install + +```bash +pnpm add -D eslint eslint-plugin-import-x eslint-plugin-perfectionist eslint-config-prettier eslint-plugin-vue @gcoguiec/eslint-config +``` + +#### Install (TypeScript only) + +```bash +pnpm add -D @typescript-eslint/eslint-plugin @typescript-eslint/parser +``` + +#### Register the configuration with [eslint](https://eslint.org/) + +```js +// eslint.config.js +import { vue } from '@gcoguiec/eslint-config'; + +// ECMAScript +export default [...(await vue())]; + +// TypeScript +export default [...(await vue({ typescript: true }))]; +``` + +## Additional Configurations + +### Vitest + +#### Install + +```bash +pnpm add -D eslint-plugin-vitest +``` + +#### Register the configuration with [eslint](https://eslint.org/) + +```js +// eslint.config.js +import { ecmascript, typescript, vitest } from '@gcoguiec/eslint-config'; + +// ECMAScript +export default [ + ...(await ecmascript()), + ...(await vitest()) +]; + +// TypeScript +export default [ + ...(await typescript()), + ...(await vitest({ typescript: true })) +]; +``` + ## License This project is licensed under [BSD 2-Clause](https://spdx.org/licenses/BSD-2-Clause.html). diff --git a/package.json b/package.json index cddc8b7..6320d47 100644 --- a/package.json +++ b/package.json @@ -47,9 +47,13 @@ "eslint-plugin-import-x": "^0.5.0", "eslint-plugin-perfectionist": "^2.10.0", "eslint-plugin-vitest": "^0.5.4", - "eslint-plugin-vue": "^9.25.0" + "eslint-plugin-vue": "^9.25.0", + "eslint-config-prettier": "^9.1.0" }, "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + }, "eslint-plugin-import-x": { "optional": true }, diff --git a/scripts/build.js b/scripts/build.js index f9b6533..b7487c7 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -25,6 +25,7 @@ context({ 'eslint-plugin-perfectionist', 'eslint-plugin-vue', 'eslint-plugin-vitest', + 'eslint-config-prettier', '@typescript-eslint/eslint-plugin', '@typescript-eslint/parser' ], diff --git a/src/configs/vue.config.ts b/src/configs/vue.config.ts index b809c26..0e8b7cd 100644 --- a/src/configs/vue.config.ts +++ b/src/configs/vue.config.ts @@ -94,8 +94,8 @@ export async function vue( ...(factoryOptions.typescript ? { '@typescript-eslint/no-unused-vars': 'off' } : {}), - ...(vueEslint.configs?.['base'] as Linter.FlatConfig).rules, - ...(vueEslint.configs?.['essential'] as Linter.FlatConfig).rules, + ...(vueEslint.configs?.['flat/base'] as Linter.FlatConfig).rules, + ...(vueEslint.configs?.['flat/essential'] as Linter.FlatConfig).rules, 'vue/multi-word-component-names': 'off', 'vue/component-name-in-template-casing': ['error', 'kebab-case'], 'vue/component-options-name-casing': ['error', 'kebab-case'],