This commit is contained in:
2024-10-03 16:22:20 +09:00
parent e512da9a48
commit d865938430
62 changed files with 931 additions and 905 deletions

View File

@@ -1,12 +1,93 @@
import pluginVue from 'eslint-plugin-vue';
import pluginTypeScript from 'typescript-eslint';
import pluginPrettier from 'eslint-plugin-prettier/recommended';
import parserVue from 'vue-eslint-parser';
import * as parserJavaScript from 'espree';
import vuePlugin from 'eslint-plugin-vue';
import typeScriptEslintPlugin from '@typescript-eslint/eslint-plugin';
import typeScriptEslintParser from '@typescript-eslint/parser';
import prettierConfig from 'eslint-config-prettier';
import prettierPlugin from 'eslint-plugin-prettier'
import vueParser from 'vue-eslint-parser';
import * as javaScriptParser from 'espree';
const basicRules = {
"prettier/prettier": "warn",
"no-unused-vars": "warn",
"no-unused-expressions": "error",
"no-lonely-if": "error",
"no-const-assign": "error",
"no-magic-numbers": ["error",
{
"ignoreArrayIndexes": true,
"ignoreClassFieldInitialValues": true,
"enforceConst": true,
"ignore": [0]
}
],
"dot-notation": "error",
"default-case-last": "error",
"default-param-last": "error",
"default-case": "warn",
"eqeqeq": "error",
"func-style": [
"error",
"declaration",
{
"allowArrowFunctions": true,
"overrides": {
"namedExports": "ignore"
}
}
],
"max-params": [
"error",
5
],
"max-depth": [
"error",
3
],
"no-console": "warn"
};
const typeScriptRules = {
...prettierConfig.rules,
"@typescript-eslint/no-array-constructor": "error",
"@typescript-eslint/no-unsafe-assignment": "error",
"@typescript-eslint/no-unsafe-call": "error",
"@typescript-eslint/no-unsafe-function-type": "error",
"@typescript-eslint/no-unsafe-declaration-merging": "error",
"@typescript-eslint/no-unsafe-enum-comparison": "error",
"@typescript-eslint/no-unsafe-member-access": "error",
"@typescript-eslint/no-unsafe-return": "error",
"@typescript-eslint/no-unsafe-unary-minus": "error",
"@typescript-eslint/consistent-type-exports": "error",
"@typescript-eslint/no-unnecessary-condition": "error",
"@typescript-eslint/no-unnecessary-boolean-literal-compare": "error",
"@typescript-eslint/promise-function-async": [
"error",
{
"allowAny": true,
}
],
"@typescript-eslint/no-require-imports": "error"
};
const vueRuels = {
"vue/html-indent": [
"error",
4,
{
"baseIndent": 1,
}
],
"vue/max-props": [
"error",
{
maxProps: 5
}
],
"vue/multi-word-component-names": "off"
};
export default [
...pluginVue.configs['flat/essential'],
pluginPrettier,
...vuePlugin.configs['flat/essential'],
{
files: ["**/*.vue"],
ignores: [
@@ -16,73 +97,40 @@ export default [
"public/*"
],
plugins: {
'@typescript-eslint': pluginTypeScript.plugin
'vue': vuePlugin,
'prettier': prettierPlugin
},
languageOptions: {
parser: parserVue,
parser: vueParser,
parserOptions: {
parser: {
js: parserJavaScript,
ts: pluginTypeScript.parser
js: javaScriptParser,
ts: typeScriptEslintParser
}
}
},
rules: {
"no-unused-vars": "error",
"no-unused-expressions": "error",
"no-lonely-if": "error",
"no-const-assign": "error",
"dot-notation": "error",
"no-undef": "error",
"default-case-last": "error",
"default-param-last": "error",
"default-case": "warn",
"eqeqeq": "error",
"func-style": [
"error",
"declaration",
{
"allowArrowFunctions": true,
"overrides": {
"namedExports": "ignore"
}
}
],
"max-params": [
"error",
3
],
"max-depth": [
"error",
3
],
"no-console": "warn",
"vue/html-indent": [
"error",
4,
{
"baseIndent": 1,
}
],
"vue/max-props": [
"error",
{
maxProps: 5
}
],
"vue/multi-word-component-names": "off",
// "@typescript-eslint/no-array-constructor": "error",
// "@typescript-eslint/no-unsafe-assignment": "error",
// "@typescript-eslint/no-unsafe-call": "error",
// "@typescript-eslint/no-unsafe-function-type": "error",
// "@typescript-eslint/no-unsafe-declaration-merging": "error",
// "@typescript-eslint/no-unsafe-enum-comparison": "error",
// "@typescript-eslint/no-unsafe-member-access": "error",
// "@typescript-eslint/no-unsafe-return": "error",
// "@typescript-eslint/no-unsafe-unary-minus": "error",
...basicRules,
...vueRuels
}
},
{
files: ["composables/*.ts", "utils/*.ts", "server/**/*.ts"],
plugins: {
'@typescript-eslint': typeScriptEslintPlugin,
'prettier': prettierPlugin
},
languageOptions: {
parser: typeScriptEslintParser,
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
project: true
}
},
rules: {
...basicRules,
...typeScriptRules
}
}
]