49 lines
1.3 KiB
TypeScript
49 lines
1.3 KiB
TypeScript
import js from "@eslint/js";
|
|
import globals from "globals";
|
|
import tseslint from "typescript-eslint";
|
|
import reactHooks from "eslint-plugin-react-hooks";
|
|
import * as tsParser from "@typescript-eslint/parser";
|
|
import { dirname } from "node:path";
|
|
import { fileURLToPath } from "node:url";
|
|
import {
|
|
noReactNamespaceImport,
|
|
noWindowLocationReload,
|
|
} from "./utils/eslint-rules/index.js";
|
|
|
|
const tsconfigRootDir = dirname(fileURLToPath(import.meta.url));
|
|
|
|
export default [
|
|
{
|
|
ignores: ["**/dist/**", "**/node_modules/**"],
|
|
},
|
|
js.configs.recommended,
|
|
...tseslint.configs.recommended,
|
|
{
|
|
files: ["**/*.{ts,tsx}"],
|
|
languageOptions: {
|
|
parser: tsParser,
|
|
parserOptions: {
|
|
tsconfigRootDir,
|
|
},
|
|
globals: {
|
|
...globals.browser,
|
|
...globals.node,
|
|
},
|
|
},
|
|
plugins: {
|
|
"react-hooks": reactHooks,
|
|
tensamin: {
|
|
rules: {
|
|
"no-react-namespace-import": noReactNamespaceImport,
|
|
"no-window-location-reload": noWindowLocationReload,
|
|
},
|
|
},
|
|
},
|
|
rules: {
|
|
...reactHooks.configs.recommended.rules,
|
|
"react-hooks/set-state-in-effect": "off",
|
|
"tensamin/no-react-namespace-import": "error",
|
|
"tensamin/no-window-location-reload": "error",
|
|
},
|
|
},
|
|
];
|