diff --git a/frontend/branding-installer.js b/frontend/branding-installer.js index d8a6aca7b5..640d0fa355 100644 --- a/frontend/branding-installer.js +++ b/frontend/branding-installer.js @@ -7,7 +7,6 @@ import https from "https"; import path from "path"; import { fileURLToPath } from "url"; import zlib from "zlib"; - import * as tar from "tar"; const __filename = fileURLToPath(import.meta.url); diff --git a/frontend/eslint.config.js b/frontend/eslint.config.js index 5faa1d3bce..66206b3f7a 100644 --- a/frontend/eslint.config.js +++ b/frontend/eslint.config.js @@ -6,6 +6,17 @@ import pluginSvelte from "eslint-plugin-svelte"; import globals from "globals"; import ts from "typescript-eslint"; +const importOrder = { + alphabetize: { order: "asc", caseInsensitive: true }, + "newlines-between": "never", + warnOnUnassignedImports: true, + pathGroups: [ + { pattern: "/**", group: "internal" }, + { pattern: "/../**", group: "internal" }, + ], + pathGroupsExcludedImportTypes: [], +}; + export default defineConfig([ js.configs.recommended, ts.configs.recommended, @@ -52,7 +63,15 @@ export default defineConfig([ "no-bitwise": "off", "no-shadow": "off", "no-use-before-define": "off", - "no-restricted-imports": ["error", { patterns: [".*", "!@graphite/*"] }], + "no-restricted-imports": [ + "error", + { + patterns: [ + { group: ["./**", "../**"], message: "\nImports must be absolute (e.g. '/src/') not relative (e.g. './')." }, + { group: ["src/**", "assets/**", "wasm/**"], message: "\nLocal imports must start with '/' (e.g. '/src/' not 'src/')." }, + ], + }, + ], // TypeScript plugin config (for TS-specific linting) "@typescript-eslint/indent": "off", @@ -95,17 +114,13 @@ export default defineConfig([ "import/prefer-default-export": "off", "import/no-relative-packages": "error", "import/no-named-as-default-member": "off", - "import/order": [ - "error", - { - alphabetize: { order: "asc", caseInsensitive: true }, - pathGroups: [{ pattern: "**/*.svelte", group: "unknown", position: "after" }], - "newlines-between": "always-and-inside-groups", - warnOnUnassignedImports: true, - }, - ], + "import/order": ["error", importOrder], }, }, + { + files: ["**/icons.ts"], + rules: { "import/order": ["error", { ...importOrder, "newlines-between": "ignore" }] }, + }, { files: ["**/*.svelte"], languageOptions: { diff --git a/frontend/src/App.svelte b/frontend/src/App.svelte index 4ad22865d1..dd94bd4037 100644 --- a/frontend/src/App.svelte +++ b/frontend/src/App.svelte @@ -1,14 +1,12 @@