This commit is contained in:
ziuti committed 2026-10-20 10:18:53 +02:00
commit 1c259f38f0
47 files changed
+10054

No files matched your search

+3
View File
@@ -0,0 +1,3 @@
# `@workspace/eslint-config`
Shared eslint configuration for the workspace.
+43
View File
@@ -0,0 +1,43 @@
import { createRequire } from "node:module"
import babelParser from "@babel/eslint-parser"
import js from "@eslint/js"
import eslintConfigPrettier from "eslint-config-prettier"
import onlyWarn from "eslint-plugin-only-warn"
import turboPlugin from "eslint-plugin-turbo"
const require = createRequire(import.meta.url)
/**
* A shared ESLint configuration for the repository.
*
* @type {import("eslint").Linter.Config[]}
*/
export const config = [
js.configs.recommended,
eslintConfigPrettier,
{
languageOptions: {
parser: babelParser,
parserOptions: {
requireConfigFile: false,
babelOptions: {
presets: [require.resolve("@babel/preset-typescript")],
},
},
},
plugins: {
turbo: turboPlugin,
},
rules: {
"turbo/no-undeclared-env-vars": "warn",
},
},
{
plugins: {
onlyWarn,
},
},
{
ignores: ["dist/**"],
},
]
+40
View File
@@ -0,0 +1,40 @@
import { globalIgnores } from "eslint/config"
import pluginNext from "@next/eslint-plugin-next"
import pluginReactHooks from "eslint-plugin-react-hooks"
import globals from "globals"
import { config as baseConfig } from "./base.js"
/**
* A custom ESLint configuration for libraries that use Next.js.
*
* @type {import("eslint").Linter.Config[]}
*/
export const nextJsConfig = [
...baseConfig,
globalIgnores([
// Default ignores of eslint-config-next:
".next/**",
"out/**",
"build/**",
"next-env.d.ts",
]),
{
languageOptions: {
globals: {
...globals.browser,
...globals.serviceworker,
},
},
},
{
plugins: {
"@next/next": pluginNext,
},
rules: {
...pluginNext.configs.recommended.rules,
...pluginNext.configs["core-web-vitals"].rules,
},
},
pluginReactHooks.configs.flat.recommended,
]
+24
View File
@@ -0,0 +1,24 @@
{
"name": "@workspace/eslint-config",
"version": "0.0.0",
"type": "module",
"private": true,
"exports": {
"./base": "./base.js",
"./next-js": "./next.js",
"./react-internal": "./react-internal.js"
},
"devDependencies": {
"@babel/core": "^8.0.7",
"@babel/eslint-parser": "^8.0.7",
"@babel/preset-typescript": "^8.0.7",
"@eslint/js": "^10",
"@next/eslint-plugin-next": "^16.4.0",
"eslint": "^10",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-only-warn": "^1.2.1",
"eslint-plugin-react-hooks": "^7.1.1",
"eslint-plugin-turbo": "^2.11.7",
"globals": "^17.13.0"
}
}
+22
View File
@@ -0,0 +1,22 @@
import pluginReactHooks from "eslint-plugin-react-hooks"
import globals from "globals"
import { config as baseConfig } from "./base.js"
/**
* A custom ESLint configuration for libraries that use React.
*
* @type {import("eslint").Linter.Config[]}
*/
export const config = [
...baseConfig,
{
languageOptions: {
globals: {
...globals.serviceworker,
...globals.browser,
},
},
},
pluginReactHooks.configs.flat.recommended,
]