mirror of
https://github.com/monkeytypegame/monkeytype.git
synced 2024-11-10 08:55:37 +08:00
112 lines
3 KiB
JSON
112 lines
3 KiB
JSON
{
|
|
"env": {
|
|
"browser": true,
|
|
"es2021": true,
|
|
"node": true
|
|
},
|
|
"globals": {
|
|
"$": "readonly",
|
|
"jQuery": "readonly",
|
|
"html2canvas": "readonly",
|
|
"ClipboardItem": "readonly",
|
|
"grecaptcha": "readonly"
|
|
},
|
|
"ignorePatterns": [
|
|
"backend/__tests__/**/*",
|
|
"backend/jest.config.ts",
|
|
"**/*.css",
|
|
"**/*.scss",
|
|
"frontend/static/js/*",
|
|
"frontend/__tests__/**/*",
|
|
"frontend/jest.config.ts"
|
|
],
|
|
"extends": [
|
|
"eslint:recommended",
|
|
"plugin:json/recommended",
|
|
"plugin:import/recommended",
|
|
"plugin:import/typescript",
|
|
"prettier"
|
|
],
|
|
"plugins": ["json", "require-path-exists", "@typescript-eslint"],
|
|
"rules": {
|
|
"json/*": ["error"],
|
|
"indent": ["off"],
|
|
"no-empty": ["error", { "allowEmptyCatch": true }],
|
|
"no-var": 2,
|
|
"no-duplicate-imports": ["error"],
|
|
// "import/default": "off",
|
|
"import/no-unresolved": [
|
|
"error",
|
|
{
|
|
"ignore": ["^./constants/firebase-config$"]
|
|
}
|
|
],
|
|
"import/no-duplicates": "off",
|
|
"no-mixed-operators": [
|
|
"error",
|
|
{
|
|
"groups": [["+", "??"]]
|
|
}
|
|
]
|
|
},
|
|
"settings": {
|
|
"import/resolver": {
|
|
"typescript": {
|
|
"alwaysTryTypes": true,
|
|
"project": ["frontend/tsconfig.json", "backend/tsconfig.json"]
|
|
},
|
|
"node": true
|
|
}
|
|
},
|
|
"overrides": [
|
|
{
|
|
// enable the rule specifically for TypeScript files
|
|
"files": ["*.ts", "*.tsx"],
|
|
"extends": [
|
|
"plugin:@typescript-eslint/eslint-recommended",
|
|
"plugin:@typescript-eslint/recommended",
|
|
"plugin:@typescript-eslint/strict"
|
|
// "plugin:@typescript-eslint/recommended-requiring-type-checking"
|
|
],
|
|
"rules": {
|
|
"@typescript-eslint/explicit-function-return-type": ["error"],
|
|
"@typescript-eslint/ban-ts-comment": "off",
|
|
"@typescript-eslint/no-empty-function": "warn",
|
|
"@typescript-eslint/no-unused-vars": [
|
|
"warn",
|
|
{ "argsIgnorePattern": "^(_|e|event)", "varsIgnorePattern": "^_" }
|
|
],
|
|
"@typescript-eslint/no-var-requires": "error",
|
|
"@typescript-eslint/no-this-alias": "off",
|
|
"@typescript-eslint/no-misused-promises": [
|
|
"error",
|
|
{
|
|
"checksVoidReturn": false
|
|
}
|
|
],
|
|
"@typescript-eslint/promise-function-async": "warn",
|
|
"@typescript-eslint/no-floating-promises": "error",
|
|
"@typescript-eslint/strict-boolean-expressions": [
|
|
"error",
|
|
{ "allowNullableBoolean": true, "allowNullableNumber": true }
|
|
],
|
|
//
|
|
"@typescript-eslint/non-nullable-type-assertion-style": "off",
|
|
"@typescript-eslint/no-unnecessary-condition": "off",
|
|
"@typescript-eslint/consistent-type-definitions": ["warn", "type"],
|
|
"@typescript-eslint/no-invalid-void-type": "off"
|
|
},
|
|
"parserOptions": {
|
|
"ecmaVersion": 12,
|
|
"sourceType": "module",
|
|
"project": "**/tsconfig.json"
|
|
}
|
|
},
|
|
{
|
|
"files": ["backend/**/*.ts"],
|
|
"rules": {
|
|
"eqeqeq": "error"
|
|
}
|
|
}
|
|
]
|
|
}
|