diff --git a/README.md b/README.md index 568569d..75adc9f 100644 --- a/README.md +++ b/README.md @@ -8,29 +8,34 @@ ESLint config used by [Dusk](https://dusk.network/) JavaScript apps. npm i -D @dusk-network/eslint-config ``` -The package requires the following peer dependencies: +Your package requires the following dev-dependencies: -- [`eslint`](https://github.com/eslint/eslint) `>=8.57.0` -- [`eslint-config-prettier`](https://github.com/prettier/eslint-config-prettier) `>=9.1.0` -- [`eslint-plugin-import`](https://github.com/import-js/eslint-plugin-import) `>=2.29.1` -- [`eslint-plugin-import-newlines`](https://github.com/SeinopSys/eslint-plugin-import-newlines) `>=1.3.4` +- [`eslint`](https://github.com/eslint/eslint) +- [`eslint-config-prettier`](https://github.com/prettier/eslint-config-prettier) +- [`eslint-plugin-import`](https://github.com/import-js/eslint-plugin-import) +- [`eslint-plugin-import-newlines`](https://github.com/SeinopSys/eslint-plugin-import-newlines) -If you are using Svelte rules the package needs the following optional dependency: +If you are using Svelte rules your package needs the following dev-dependency: -- [`eslint-plugin-svelte`](https://github.com/sveltejs/eslint-plugin-svelte) `>=2.35.1` +- [`eslint-plugin-svelte`](https://github.com/sveltejs/eslint-plugin-svelte) + +If you are using Vitest rules your package needs the following dev-dependency: + +- [`eslint-plugin-vitest`](https://github.com/veritem/eslint-plugin-vitest) ## Usage Add the rulesets you want in the `extends` section of your ESLint configuration file. -e.g. to use both JS and Svelte rules: +e.g. to use both JS, Svelte and Vitest rules: ```javascript // ... extends: [ "@dusk-network/eslint-config/js", - "@dusk-network/eslint-config/svelte" + "@dusk-network/eslint-config/svelte", + "@dusk-network/eslint-config/vitest" ] // ... diff --git a/js/index.js b/js/index.js index cc21f1f..51661dc 100644 --- a/js/index.js +++ b/js/index.js @@ -15,5 +15,4 @@ module.exports = { sourceType: "module", }, plugins: ["import-newlines"], - rules: {}, }; diff --git a/package.json b/package.json index 9128532..20e0c48 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "url": "https://github.com/dusk-network/eslint-config.git" }, "scripts": { - "check": "npm run check-rules && npm run check-format && npm run lint", + "check": "npm run check-rules && npm run format && npm run lint", "format": "prettier . --check", "format:fix": "prettier . --write", "check-js": "eslint-find-rules -nd js/index.js && eslint-config-prettier js/index.js", @@ -42,23 +42,25 @@ }, "version": "3.2.0", "devDependencies": { - "@dusk-network/prettier-config": "1.0.0", + "@dusk-network/prettier-config": "1.1.0", "eslint": "8.57.0", "eslint-config-prettier": "9.1.0", "eslint-find-rules": "4.1.0", "eslint-plugin-import": "2.29.1", - "eslint-plugin-import-newlines": "1.3.4", + "eslint-plugin-import-newlines": "1.4.0", "eslint-plugin-svelte": "2.35.1", + "eslint-plugin-vitest": "0.3.26", "prettier": "3.2.5", "svelte": "4.2.12" }, "optionalDependencies": { - "eslint-plugin-svelte": ">=2.35.1" + "eslint-plugin-svelte": ">=2.35.1", + "eslint-plugin-vitest": ">=0.3.26" }, "peerDependencies": { "eslint": ">=8.57.0", "eslint-config-prettier": ">=9.1.0", "eslint-plugin-import": ">=2.29.1", - "eslint-plugin-import-newlines": ">=1.3.4" + "eslint-plugin-import-newlines": ">=1.4.0" } } diff --git a/svelte/index.js b/svelte/index.js index fa7016a..3fa4310 100644 --- a/svelte/index.js +++ b/svelte/index.js @@ -15,7 +15,6 @@ module.exports = { sourceType: "module", }, plugins: ["svelte"], - rules: {}, settings: { "import/parsers": { espree: [".js"], diff --git a/vitest/base.js b/vitest/base.js new file mode 100644 index 0000000..f8c3771 --- /dev/null +++ b/vitest/base.js @@ -0,0 +1,3 @@ +module.exports = { + rules: {}, +}; diff --git a/vitest/index.js b/vitest/index.js new file mode 100644 index 0000000..103c15e --- /dev/null +++ b/vitest/index.js @@ -0,0 +1,18 @@ +const rules = ["./base"].map(require.resolve); + +module.exports = { + extends: ["plugin:vitest/recommended", ...rules], + overrides: [ + { + files: ["*.spec.js", "*.test.js"], + rules: { + "max-statements": 0, + }, + }, + ], + parserOptions: { + ecmaVersion: "latest", + sourceType: "module", + }, + plugins: ["vitest"], +};