Files
web/apps/partner-sas/eslint.config.mjs
Anton Gunnarsson e5149846e5 Merged in chore/upgrade-to-next16 (pull request #3305)
chore(SW-3665): Upgrade to Next 16

* Upgrade partner-sas

* Upgrade scandic-web to next 16

* Update peerDep versions

* Fix revalidateTag

* Remove comment

* Merge branch 'master' into chore/upgrade-to-next16

* Update netlify adapter

* Build with webpack instead of turbopack

* Revert from proxy to middleware

* Merge branch 'master' into chore/upgrade-to-next16

* Revert proxy type

* Fix react types versions

* 16.0.9

* Bump to 16.0.10


Approved-by: Linus Flood
2025-12-12 09:17:15 +00:00

123 lines
3.3 KiB
JavaScript

import { defineConfig, globalIgnores } from "eslint/config"
import nextVitals from "eslint-config-next/core-web-vitals"
import nextTs from "eslint-config-next/typescript"
import formatjs from "eslint-plugin-formatjs"
import simpleImportSort from "eslint-plugin-simple-import-sort"
export default defineConfig([
...nextVitals,
...nextTs,
globalIgnores([
".next/**",
"node_modules/**",
"dist/**",
"build/**",
"public/**",
"playwright-report/**",
"test-results/**",
"coverage/**",
"*.config.js",
"*.config.ts",
"*.config.mjs",
"next-env.d.ts",
]),
{
files: ["**/*.{js,jsx,ts,tsx,mts}"],
plugins: {
"simple-import-sort": simpleImportSort,
formatjs,
},
rules: {
"no-console": "warn",
"no-unused-vars": "off",
"react/function-component-definition": "error",
"react/jsx-curly-brace-presence": [
"error",
{
props: "never",
children: "never",
propElementValues: "always",
},
],
"import/no-relative-packages": "error",
"simple-import-sort/imports": [
"warn",
{
groups: [
["^\\u0000"],
["^node:"],
["^@?\\w"],
["^@scandic-hotels/(?!.*\\u0000$).*$"],
[
"^@/constants/?(?!.*\\u0000$).*$",
"^@/env/?(?!.*\\u0000$).*$",
"^@/lib/?(?!.*\\u0000$).*$",
"^@/server/?(?!.*\\u0000$).*$",
"^@/stores/?(?!.*\\u0000$).*$",
],
["^@/(?!(types|.*\\u0000$)).*$"],
[
"^\\.\\.(?!/?$)",
"^\\.\\./?$",
"^\\./(?=.*/)(?!/?$)",
"^\\.(?!/?$)",
"^\\./?$",
],
["^(?!\\u0000).+\\.s?css$"],
["^node:.*\\u0000$", "^@?\\w.*\\u0000$"],
[
"^@scandichotels/.*\\u0000$",
"^@/types/.*",
"^@/.*\\u0000$",
"^[^.].*\\u0000$",
"^\\..*\\u0000$",
],
],
},
],
"simple-import-sort/exports": "error",
"import/first": "error",
"import/newline-after-import": "error",
"import/no-duplicates": [
"error",
{
"prefer-inline": true,
},
],
"@typescript-eslint/consistent-type-imports": "error",
"@typescript-eslint/no-empty-object-type": "off",
"@typescript-eslint/no-require-imports": "off",
"@typescript-eslint/no-unused-vars": [
"error",
{
args: "all",
argsIgnorePattern: "^_",
caughtErrors: "all",
caughtErrorsIgnorePattern: "^_",
destructuredArrayIgnorePattern: "^_",
varsIgnorePattern: "^_",
ignoreRestSiblings: true,
},
],
"formatjs/enforce-default-message": ["error", "literal"],
"formatjs/enforce-placeholders": ["error"],
"formatjs/enforce-plural-rules": ["error"],
"formatjs/no-literal-string-in-jsx": ["error"],
"formatjs/no-multiple-whitespaces": ["error"],
"formatjs/no-multiple-plurals": ["error"],
"formatjs/no-invalid-icu": ["error"],
"formatjs/enforce-id": ["error"],
"formatjs/no-complex-selectors": ["error"],
"formatjs/no-useless-message": ["error"],
"formatjs/prefer-pound-in-plural": ["error"],
},
},
])