mirror of
https://github.com/zen-browser/www.git
synced 2025-07-07 08:55:32 +02:00
63 lines
1.6 KiB
TypeScript
63 lines
1.6 KiB
TypeScript
import type { Linter } from "eslint";
|
|
// @ts-expect-error - no types available
|
|
import importPlugin from "eslint-plugin-import";
|
|
import { sharedFiles } from "./shared";
|
|
|
|
export const importConfigArray: Linter.Config[] = [
|
|
{
|
|
name: "eslint/import",
|
|
files: sharedFiles,
|
|
plugins: {
|
|
import: importPlugin,
|
|
},
|
|
rules: {
|
|
...importPlugin.configs.recommended.rules,
|
|
...importPlugin.configs.typescript.rules,
|
|
|
|
"import/order": [
|
|
"error",
|
|
{
|
|
groups: [
|
|
"builtin",
|
|
"external",
|
|
"internal",
|
|
["parent", "sibling"],
|
|
"index",
|
|
"object",
|
|
"type",
|
|
],
|
|
"newlines-between": "always",
|
|
alphabetize: {
|
|
order: "asc",
|
|
caseInsensitive: true,
|
|
},
|
|
pathGroups: [
|
|
{
|
|
pattern: "@/**",
|
|
group: "internal",
|
|
position: "before",
|
|
},
|
|
],
|
|
pathGroupsExcludedImportTypes: ["builtin"],
|
|
},
|
|
],
|
|
"import/no-unresolved": "off", // TypeScript handles this
|
|
"import/no-duplicates": ["error", { "prefer-inline": true }],
|
|
"import/consistent-type-specifier-style": ["error", "prefer-inline"],
|
|
"import/first": "error",
|
|
"import/newline-after-import": "error",
|
|
"import/no-default-export": "off", // Allow default exports
|
|
},
|
|
settings: {
|
|
"import/resolver": {
|
|
typescript: {
|
|
alwaysTryTypes: true,
|
|
},
|
|
node: true,
|
|
},
|
|
"import/parsers": {
|
|
"@typescript-eslint/parser": [".ts", ".tsx"],
|
|
},
|
|
},
|
|
},
|
|
];
|