Nextjs-boilerplate/.eslintrc.json
2024-11-26 15:42:16 +00:00

115 lines
2.1 KiB
JSON

{
"overrides": [
{
"files": [
"src/**/*-vm.ts"
],
"rules": {
"react-hooks/rules-of-hooks": "off"
}
},
{
"files": [
"src/app/**/*.stories.tsx"
],
"rules": {
"react/jsx-props-no-spreading": "off"
}
}
],
"settings": {
"react": {
"version": "detect"
},
"import/resolver": {
"alias": {
"map": [
[
"~",
"./src"
]
],
"extensions": [
".js",
".ts",
".tsx",
".d.ts",
".test.ts",
".json"
]
}
}
},
"plugins": [
"prettier"
],
"extends": [
"airbnb",
"next/core-web-vitals",
"next/typescript",
"prettier",
"plugin:storybook/recommended"
],
"rules": {
"no-use-before-define": "off",
"class-methods-use-this": "off",
"import/prefer-default-export": "off",
"import/no-cycle": "off",
"no-promise-executor-return": "off",
"@typescript-eslint/no-shadow": "off",
"react/require-default-props": "off",
"import/order": [
"error",
{
"pathGroups": [
{
"pattern": "@/**",
"group": "external"
}
]
}
],
"no-shadow": "off",
"prettier/prettier": [
"warn",
{
"printWidth": 80,
"tabWidth": 2,
"endOfLine": "auto",
"useTabs": false,
"semi": true,
"singleQuote": false,
"quoteProps": "as-needed",
"jsxSingleQuote": false,
"trailingComma": "all",
"bracketSpacing": true,
"arrowParens": "always"
}
],
"import/extensions": [
"error",
"ignorePackages",
{
"js": "never",
"jsx": "never",
"ts": "never",
"tsx": "never"
}
],
"react/jsx-filename-extension": [
1,
{
"extensions": [
".ts",
".tsx"
]
}
],
"import/no-extraneous-dependencies": [
"error",
{
"devDependencies": true
}
]
}
}