refactor: migrate to common eslint+prettier configs (#4168)

* refactor: migrate to common eslint+prettier configs

* fix: prettier frontend

* feat: config changes

* fix: lint issues

* fix: lint

* fix: type imports

* fix: cyclical import issue

* fix: lockfile

* fix: missing dep

* fix: switch to tabs

* fix: continue switch to tabs

* fix: rustfmt parity

* fix: moderation lint issue

* fix: lint issues

* fix: ui intl

* fix: lint issues

* Revert "fix: rustfmt parity"

This reverts commit cb99d2376c321d813d4b7fc7e2a213bb30a54711.

* feat: revert last rs
This commit is contained in:
Cal H.
2025-08-14 21:48:38 +01:00
committed by GitHub
parent 82697278dc
commit 2aabcf36ee
702 changed files with 101360 additions and 102020 deletions

View File

@@ -0,0 +1,20 @@
import eslint from '@eslint/js'
import prettierEslint from 'eslint-plugin-prettier/recommended'
import tseslint from 'typescript-eslint'
export default tseslint.config(
eslint.configs.recommended,
tseslint.configs.recommendedTypeChecked,
prettierEslint,
...common,
{
languageOptions: {
parserOptions: {
warnOnUnsupportedTypeScriptVersion: false,
},
},
},
{
ignores: ['node_modules/', 'dist/', 'build/'],
},
)

View File

@@ -0,0 +1,20 @@
import simpleImportSort from 'eslint-plugin-simple-import-sort'
export default [
{
plugins: {
'simple-import-sort': simpleImportSort,
},
rules: {
'simple-import-sort/imports': 'error',
'simple-import-sort/exports': 'error',
},
},
{
rules: {
'@typescript-eslint/no-type-alias': 'off',
'@typescript-eslint/ban-ts-comment': 'off',
'@typescript-eslint/prefer-literal-enum-member': 'off',
},
},
]

View File

@@ -0,0 +1,31 @@
import { fixupPluginRules } from '@eslint/compat'
import { createConfigForNuxt } from '@nuxt/eslint-config/flat'
import turboPlugin from 'eslint-plugin-turbo'
import common from './common.mjs'
export const configurationNuxtToAppend = [
...common,
{
name: 'turbo',
plugins: {
turbo: fixupPluginRules(turboPlugin),
},
rules: {
'turbo/no-undeclared-env-vars': 'error',
},
},
{
name: 'modrinth',
rules: {
'vue/html-self-closing': 'off',
'vue/multi-word-component-names': 'off',
},
languageOptions: {
parserOptions: {
warnOnUnsupportedTypeScriptVersion: false,
},
},
},
]
export default createConfigForNuxt().append(configurationNuxtToAppend)

View File

@@ -0,0 +1,35 @@
{
"name": "@modrinth/tooling-config",
"version": "0.0.0",
"private": true,
"description": "Unified tooling configuration for Modrinth monorepo",
"main": "./index.js",
"exports": {
"./eslint/*": "./eslint/*",
"./typescript/*": "./typescript/*",
"./prettier.config.js": "./prettier.config.js",
"./prettier.nuxt.config.js": "./prettier.nuxt.config.js"
},
"files": [
"eslint/",
"typescript/",
"prettier/",
"index.js"
],
"peerDependencies": {
"eslint": "^9.31.0",
"prettier": "^3.6.2",
"typescript": ">=5.0.0"
},
"devDependencies": {
"@eslint/js": "^9.32.0",
"@vue/tsconfig": "^0.7.0",
"eslint": "^9.32.0",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-prettier": "^5.5.3",
"eslint-plugin-simple-import-sort": "^12.1.1",
"eslint-plugin-vue": "^10.4.0",
"globals": "^16.3.0",
"typescript-eslint": "^8.38.0"
}
}

View File

@@ -0,0 +1,10 @@
/**
* @see https://prettier.io/docs/configuration
* @type {import("prettier").Config}
*/
const config = {
semi: false,
singleQuote: true,
};
module.exports = config;

View File

@@ -0,0 +1,11 @@
/**
* @see https://prettier.io/docs/configuration
* @type {import("prettier").Config}
*/
const config = {
semi: false,
singleQuote: true,
plugins: ["prettier-plugin-tailwindcss"]
};
module.exports = config;

View File

@@ -0,0 +1,17 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"compilerOptions": {
"target": "ES2020",
"module": "ESNext",
"moduleResolution": "bundler",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"lib": ["esnext", "dom"],
"allowSyntheticDefaultImports": true
}
}

View File

@@ -0,0 +1,9 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"extends": "@vue/tsconfig/tsconfig.dom.json",
"compilerOptions": {
"lib": ["ESNext", "DOM"],
"moduleResolution": "bundler",
"noImplicitAny": false
}
}