Skip to content

Commit

Permalink
feat(toolchain/eslint-config): add more eslint-plugin-import rules (#19)
Browse files Browse the repository at this point in the history
  • Loading branch information
mpellegrini authored Mar 13, 2024
1 parent 94129da commit b6a0018
Show file tree
Hide file tree
Showing 5 changed files with 72 additions and 0 deletions.
1 change: 1 addition & 0 deletions apps/sveltekit-example-app/vite.config.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { sveltekit } from '@sveltejs/kit/vite'
// eslint-disable-next-line import/no-extraneous-dependencies -- (as designed, vite is hoisted and available globally)
import { defineConfig, mergeConfig } from 'vitest/config'

import vitestSharedConfig from '@toolchain/vitest-config'
Expand Down
1 change: 1 addition & 0 deletions packages/example-pkg/vitest.config.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// eslint-disable-next-line import/no-extraneous-dependencies -- (as designed, vite is hoisted and available globally)
import { defineConfig, mergeConfig } from 'vitest/config'

import sharedConfig from '@toolchain/vitest-config'
Expand Down
61 changes: 61 additions & 0 deletions toolchain/eslint-config/configs/js/import.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,67 @@ export default defineFlatConfig({
*/
'import/first': 'error',

/**
* Require a newline after the last import/require.
*
* 🔧 Fixable - https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/newline-after-import.md
*/
'import/newline-after-import': 'error',

/**
* Disallow import of modules using absolute paths.
*
* 🚫 Not fixable - https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-absolute-path.md
*/
'import/no-absolute-path': 'error',

/**
* Disallow cyclical dependencies between modules.
*
* 🚫 Not fixable - https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-cycle.md
*/
'import/no-cycle': 'error',

/**
* Disallow the use of extraneous packages.
*
* 🚫 Not fixable - https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-extraneous-dependencies.md
*/
'import/no-extraneous-dependencies': ['error', { includeTypes: true }],

/**
* Disallow mutable exports.
*
* 🚫 Not fixable - https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-mutable-exports.md
*/
'import/no-mutable-exports': 'error',

/**
* Disallow importing packages through relative paths.
*
* 🚫 Not fixable - https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-relative-packages.md
*/
'import/no-relative-packages': 'error',

/**
* Disallow a module from importing itself.
*
* 🚫 Not fixable - https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-self-import.md
*/
'import/no-self-import': 'error',

/**
* Ensures that there are no useless path segments.
*
* 🚫 Not fixable - https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-useless-path-segments.md
*/
'import/no-useless-path-segments': ['error'],

/**
* Enforce a module import order convention.
*
* 🔧 Fixable - https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/order.md
*/
'import/order': [
'error',
{
Expand Down
8 changes: 8 additions & 0 deletions toolchain/eslint-config/configs/svelte.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,14 @@ export default defineFlatConfig([
...plugin.configs.recommended.rules,

'svelte/block-lang': ['error', { script: 'ts', style: ['postcss', 'css'] }],

/**
* Overrides rule defined in ./js/imports.js
*
* Svelte v4 requires mutable exports to work correctly for component props
* Revisit when upgrading to Svelte v5 and Runes
*/
'import/no-mutable-exports': 'off',
},
},
{
Expand Down
1 change: 1 addition & 0 deletions toolchain/eslint-config/eslint.config.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
import config from './profile/node.js'

export default config

0 comments on commit b6a0018

Please sign in to comment.