.eslintrc.json
{
"$schema": "https://json.schemastore.org/eslintrc",
"env": {
"browser": true,
"es6": true,
"node": true
},
"extends": [
"plugin:unicorn/all",
"hardcore",
"hardcore/ts"
],
"overrides": [
{
"files": [
"*.js"
],
"rules": {
"@typescript-eslint/explicit-function-return-type": "off",
"@typescript-eslint/prefer-readonly-parameter-types": "off"
}
}
],
"parserOptions": {
"project": "tsconfig.json"
},
"rules": {
"@stylistic/array-element-newline": "off",
"@stylistic/arrow-parens": "off",
"@stylistic/brace-style": "off",
"@stylistic/comma-dangle": [
"error",
"always-multiline"
],
"@stylistic/dot-location": "off",
"@stylistic/function-call-argument-newline": "off",
"@stylistic/indent": [
"error",
2
],
"@stylistic/lines-around-comment": "off",
"@stylistic/lines-between-class-members": "off",
"@stylistic/max-len": "off",
"@stylistic/member-delimiter-style": [
"error",
{
"multiline": {
"delimiter": "none"
}
}
],
"@stylistic/multiline-comment-style": "off",
"@stylistic/multiline-ternary": "off",
"@stylistic/no-extra-parens": "off",
"@stylistic/object-curly-spacing": [
"error",
"always"
],
"@stylistic/object-property-newline": "off",
"@stylistic/padded-blocks": "off",
"@stylistic/padding-line-between-statements": "off",
"@stylistic/quote-props": [
"error",
"consistent-as-needed"
],
"@stylistic/quotes": [
"error",
"single"
],
"@stylistic/semi": [
"error",
"never"
],
"@typescript-eslint/comma-dangle": [
"error",
"always-multiline"
],
"@typescript-eslint/consistent-indexed-object-style": "off",
"@typescript-eslint/consistent-type-definitions": "off",
"@typescript-eslint/consistent-type-imports": [
"error",
{
"fixStyle": "inline-type-imports",
"prefer": "type-imports"
}
],
"@typescript-eslint/explicit-function-return-type": "off",
"@typescript-eslint/lines-around-comment": "off",
"@typescript-eslint/member-delimiter-style": [
"error",
{
"multiline": {
"delimiter": "none"
}
}
],
"@typescript-eslint/no-type-alias": "off",
"@typescript-eslint/no-unused-vars": [
"error",
{
"argsIgnorePattern": "^_",
"varsIgnorePattern": "^(_|global)"
}
],
"@typescript-eslint/prefer-destructuring": "off",
"@typescript-eslint/prefer-readonly-parameter-types": [
"error",
{
"allow": [
"Document",
"DomContent",
"Element",
"Event",
"HTMLElement",
"Node",
"Window"
],
"ignoreInferredTypes": false
}
],
"@typescript-eslint/semi": [
"error",
"never"
],
"capitalized-comments": "off",
"comma-dangle": [
"error",
"always-multiline"
],
"compat/compat": "off",
"curly": [
"error",
"multi"
],
"eslint-comments/no-use": "off",
"etc/no-deprecated": "off",
"etc/no-internal": "off",
"etc/no-misused-generics": "off",
"etc/prefer-interface": "off",
"ext/lines-between-object-properties": "off",
"func-names": [
"error",
"always"
],
"id-length": [
"error",
{
"exceptions": [
"t"
],
"min": 2
}
],
"import/extensions": "off",
"import/newline-after-import": "off",
"import/order": "off",
"import/prefer-default-export": "off",
"indent": "off",
"line-comment-position": "off",
"lines-around-comment": "off",
"lines-between-class-members": "off",
"logical-assignment-operators": "off",
"max-len": "off",
"max-statements-per-line": "off",
"no-console": "error",
"no-inline-comments": "off",
"no-restricted-syntax": [
"error",
{
"message": "Avoid using Class, just use good old unit-testable functions :)",
"selector": "ClassDeclaration"
},
{
"message": "Don't specify return type on function",
"selector": "FunctionDeclaration[returnType]"
},
{
"message": "Don't specify return type on function",
"selector": "FunctionExpression[returnType]"
}
],
"object-curly-spacing": [
"error",
"always"
],
"padding-line-between-statements": "off",
"prefer-destructuring": "off",
"prettier/prettier": "off",
"putout/putout": "off",
"quote-props": [
"error",
"consistent-as-needed"
],
"quotes": "off",
"regexp/require-unicode-sets-regexp": "off",
"require-atomic-updates": [
"error",
{
"allowProperties": true
}
],
"semi": [
"error",
"never"
],
"simple-import-sort/imports": "off",
"space-before-function-parent": "off",
"total-functions/no-partial-division": "off",
"total-functions/no-unsafe-readonly-mutable-assignment": "off",
"typescript-compat/compat": "off",
"unicorn/no-array-for-each": "off",
"unicorn/no-process-exit": "off",
"unicorn/prefer-module": "off",
"unicorn/prefer-node-protocol": "off",
"unicorn/prefer-spread": "off",
"unicorn/prefer-string-replace-all": "off",
"unicorn/prefer-switch": "off",
"unicorn/prevent-abbreviations": [
"error",
{
"allowList": {
"args": true,
"pkg": true,
"str": true
}
}
]
}
}