diff --git a/eslint.config.ts b/eslint.config.ts index bd52ee0e17..6f8eb77869 100644 --- a/eslint.config.ts +++ b/eslint.config.ts @@ -5,6 +5,7 @@ import jsonConfig from '@dataport/eslint-config-geodev/json' import markdownConfig from '@dataport/eslint-config-geodev/markdown' import tsConfig from '@dataport/eslint-config-geodev/typescript' import vueConfig from '@dataport/eslint-config-geodev/vue' +import importPlugin from 'eslint-plugin-import' import perfectionist from 'eslint-plugin-perfectionist' import prettierConfig from 'eslint-plugin-prettier/recommended' import vue from 'eslint-plugin-vue' @@ -15,6 +16,7 @@ import { defineConfig } from 'eslint/config' */ const polarConfig = defineConfig({ plugins: { + import: importPlugin, perfectionist, vue, }, @@ -42,7 +44,28 @@ const polarConfig = defineConfig({ }, ], 'import-x/order': 'off', - 'perfectionist/sort-imports': 'error', + 'import/consistent-type-specifier-style': ['error', 'prefer-top-level'], + 'perfectionist/sort-imports': [ + 'error', + { + groups: [ + 'type-import', + { newlinesBetween: 0 }, + 'type-internal', + { newlinesBetween: 0 }, + 'type-parent', + { newlinesBetween: 0 }, + 'type-sibling', + { newlinesBetween: 0 }, + 'type-index', + ['value-builtin', 'value-external'], + 'value-internal', + ['value-parent', 'value-sibling', 'value-index'], + 'ts-equals-import', + 'unknown', + ], + }, + ], 'perfectionist/sort-named-imports': 'error', 'vue/html-self-closing': [ 'error', @@ -82,6 +105,14 @@ const polarTsConfig = defineConfig({ groups: ['required-member', 'unknown'], }, ], + '@typescript-eslint/consistent-type-imports': [ + 'error', + { + disallowTypeAnnotations: true, + fixStyle: 'separate-type-imports', + prefer: 'type-imports', + }, + ], }, }) diff --git a/examples/github-io/components/HeroPolarMap.vue b/examples/github-io/components/HeroPolarMap.vue index 931b95a37a..7ee52c1526 100644 --- a/examples/github-io/components/HeroPolarMap.vue +++ b/examples/github-io/components/HeroPolarMap.vue @@ -8,13 +8,12 @@