eslint-config-standardize
Version:
My personal configuration based on StandardJS, ready for JavaScript and TypeScript
315 lines (314 loc) • 10.3 kB
JSON
{
"parserOptions": {
"ecmaVersion": 2021,
"ecmaFeatures": { "jsx": true },
"sourceType": "module"
},
"env": { "es2021": true, "node": true },
"plugins": ["import", "node", "prettierx", "promise", "unicorn"],
"globals": { "document": "readonly", "navigator": "readonly", "window": "readonly" },
"settings": {
"node": { "convertPath": { "src/bin/**/*.js": ["^src/bin/(.+)$", "bin/$1"] } }
},
"rules": {
"accessor-pairs": ["error", { "setWithoutGet": true, "enforceForClassMembers": true }],
"array-callback-return": ["error", { "allowImplicit": false, "checkForEach": false }],
"camelcase": [
"error",
{ "allow": ["^UNSAFE_"], "properties": "never", "ignoreGlobals": true }
],
"complexity": ["warn", 12],
"constructor-super": "error",
"curly": ["warn", "multi-line"],
"default-case": ["warn", { "commentPattern": "^no default$" }],
"default-case-last": "error",
"default-param-last": "error",
"dot-notation": ["error", { "allowKeywords": true }],
"eqeqeq": ["error", "always", { "null": "ignore" }],
"for-direction": "error",
"getter-return": "error",
"lines-between-class-members": ["error", "always", { "exceptAfterSingleLine": true }],
"max-depth": "warn",
"new-cap": ["error", { "newIsCap": true, "capIsNew": false, "properties": true }],
"no-alert": "error",
"no-array-constructor": "error",
"no-async-promise-executor": "error",
"no-await-in-loop": "error",
"no-caller": "error",
"no-case-declarations": "error",
"no-class-assign": "error",
"no-compare-neg-zero": "error",
"no-cond-assign": "error",
"no-const-assign": "error",
"no-constant-condition": ["error", { "checkLoops": false }],
"no-constructor-return": "error",
"no-control-regex": "error",
"no-debugger": "error",
"no-delete-var": "error",
"no-div-regex": "error",
"no-dupe-args": "error",
"no-dupe-class-members": "error",
"no-dupe-else-if": "error",
"no-dupe-keys": "error",
"no-duplicate-case": "error",
"no-duplicate-imports": "error",
"no-else-return": "error",
"no-empty": ["error", { "allowEmptyCatch": true }],
"no-empty-character-class": "error",
"no-empty-pattern": "error",
"no-eval": "error",
"no-ex-assign": "error",
"no-extend-native": "error",
"no-extra-bind": "error",
"no-extra-boolean-cast": "error",
"no-extra-label": "error",
"no-fallthrough": "error",
"no-func-assign": "error",
"no-global-assign": "error",
"no-implicit-globals": "error",
"no-implied-eval": "error",
"no-import-assign": "error",
"no-invalid-regexp": "error",
"no-irregular-whitespace": "error",
"no-iterator": "error",
"no-labels": ["error", { "allowLoop": false, "allowSwitch": false }],
"no-lone-blocks": "error",
"no-lonely-if": "error",
"no-loop-func": "error",
"no-loss-of-precision": "error",
"no-misleading-character-class": "error",
"no-multi-str": "error",
"no-new": "error",
"no-new-func": "error",
"no-new-object": "error",
"no-new-symbol": "error",
"no-new-wrappers": "error",
"no-obj-calls": "error",
"no-octal": "error",
"no-octal-escape": "error",
"no-proto": "error",
"no-prototype-builtins": "error",
"no-redeclare": ["error", { "builtinGlobals": false }],
"no-regex-spaces": "error",
"no-restricted-globals": [
"error",
"addEventListener",
"blur",
"close",
"closed",
"confirm",
"defaultStatus",
"defaultstatus",
"event",
"external",
"find",
"focus",
"frameElement",
"frames",
"history",
"innerHeight",
"innerWidth",
"length",
"location",
"locationbar",
"menubar",
"moveBy",
"moveTo",
"name",
"onblur",
"onerror",
"onfocus",
"onload",
"onresize",
"onunload",
"open",
"opener",
"opera",
"outerHeight",
"outerWidth",
"pageXOffset",
"pageYOffset",
"parent",
"print",
"removeEventListener",
"resizeBy",
"resizeTo",
"screen",
"screenLeft",
"screenTop",
"screenX",
"screenY",
"scroll",
"scrollbars",
"scrollBy",
"scrollTo",
"scrollX",
"scrollY",
"status",
"statusbar",
"stop",
"toolbar",
"top",
"title"
],
"no-return-assign": ["error", "except-parens"],
"no-return-await": "warn",
"no-script-url": "error",
"no-self-assign": ["error", { "props": true }],
"no-self-compare": "error",
"no-sequences": "error",
"no-setter-return": "error",
"no-shadow": "error",
"no-shadow-restricted-names": "error",
"no-sparse-arrays": "error",
"no-tabs": "error",
"no-template-curly-in-string": "error",
"no-this-before-super": "error",
"no-throw-literal": "error",
"no-undef": "error",
"no-undef-init": "error",
"no-unmodified-loop-condition": "error",
"no-unneeded-ternary": ["error", { "defaultAssignment": false }],
"no-unreachable": "error",
"no-unreachable-loop": "error",
"no-unsafe-finally": "error",
"no-unsafe-negation": "error",
"no-unused-expressions": [
"error",
{ "allowShortCircuit": true, "allowTernary": true, "allowTaggedTemplates": true }
],
"no-unused-labels": "error",
"no-unused-vars": [
"error",
{ "args": "none", "caughtErrors": "none", "ignoreRestSiblings": true, "vars": "all" }
],
"no-use-before-define": [
"error",
{ "functions": false, "classes": false, "variables": false }
],
"no-useless-backreference": "error",
"no-useless-call": "error",
"no-useless-catch": "error",
"no-useless-computed-key": "error",
"no-useless-concat": "error",
"no-useless-constructor": "error",
"no-useless-escape": "error",
"no-useless-rename": "error",
"no-useless-return": "error",
"no-var": "warn",
"no-void": "error",
"no-with": "error",
"one-var": ["error", { "initialized": "never" }],
"prefer-const": ["error", { "destructuring": "all" }],
"prefer-numeric-literals": "error",
"prefer-promise-reject-errors": "error",
"prefer-regex-literals": ["error", { "disallowRedundantWrapping": true }],
"radix": "error",
"require-atomic-updates": "error",
"require-await": "error",
"require-yield": "error",
"sort-imports": [
"warn",
{ "ignoreCase": true, "ignoreDeclarationSort": true, "ignoreMemberSort": false }
],
"spaced-comment": [
"error",
"always",
{
"block": {
"exceptions": ["*"],
"markers": [
"*package",
"!",
",",
":",
"::",
"flow-include",
"#__PURE__",
"#__INLINE__",
"#__NOINLINE__"
],
"balanced": true
},
"line": {
"exceptions": ["-", "="],
"markers": ["*package", "!", "/", ",", "=", "#region", "#endregion", "#"]
}
}
],
"symbol-description": "error",
"use-isnan": ["error", { "enforceForSwitchCase": true, "enforceForIndexOf": true }],
"valid-typeof": ["error", { "requireStringLiterals": true }],
"yoda": ["error", "never"],
"import/default": "error",
"import/export": "error",
"import/first": "error",
"import/namespace": "error",
"import/no-absolute-path": [
"error",
{ "esmodule": true, "commonjs": true, "amd": false }
],
"import/no-cycle": ["error", { "maxDepth": 3, "ignoreExternal": true }],
"import/no-deprecated": "warn",
"import/no-duplicates": "error",
"import/no-dynamic-require": "error",
"import/no-mutable-exports": "error",
"import/no-named-as-default": "error",
"import/no-named-as-default-member": "error",
"import/no-named-default": "error",
"import/no-self-import": "error",
"import/no-unresolved": ["error", { "commonjs": true }],
"import/no-useless-path-segments": "warn",
"import/no-webpack-loader-syntax": "error",
"import/order": ["warn", { "groups": ["builtin", "external"] }],
"node/handle-callback-err": ["error", "^(err|error)$"],
"node/no-callback-literal": "error",
"node/no-deprecated-api": "error",
"node/no-exports-assign": "error",
"node/no-mixed-requires": "error",
"node/no-new-require": "error",
"node/no-path-concat": "error",
"node/no-process-exit": "error",
"node/no-unpublished-bin": "error",
"node/no-unpublished-require": "error",
"node/no-unsupported-features/node-builtins": "error",
"node/process-exit-as-throw": "error",
"node/shebang": "error",
"prettierx/options": "warn",
"promise/catch-or-return": [
"error",
{ "allowThen": true, "terminationMethod": ["catch", "finally"] }
],
"promise/no-callback-in-promise": "error",
"promise/no-nesting": "warn",
"promise/no-new-statics": "error",
"promise/no-return-in-finally": "error",
"promise/no-return-wrap": ["error", { "allowReject": true }],
"promise/param-names": "error",
"promise/valid-params": "error",
"unicorn/better-regex": "warn",
"unicorn/custom-error-definition": "error",
"unicorn/error-message": "error",
"unicorn/new-for-builtins": "error",
"unicorn/no-array-push-push": "warn",
"unicorn/no-console-spaces": "warn",
"unicorn/no-instanceof-array": "error",
"unicorn/no-new-buffer": "error",
"unicorn/no-process-exit": "error",
"unicorn/no-unreadable-array-destructuring": "warn",
"unicorn/no-unused-properties": "warn",
"unicorn/prefer-add-event-listener": "warn",
"unicorn/prefer-array-index-of": "warn",
"unicorn/prefer-date-now": "warn",
"unicorn/prefer-dom-node-remove": "warn",
"unicorn/prefer-dom-node-text-content": "error",
"unicorn/prefer-includes": "error",
"unicorn/prefer-keyboard-event-key": "error",
"unicorn/prefer-modern-dom-apis": "warn",
"unicorn/prefer-negative-index": "error",
"unicorn/prefer-spread": "error",
"unicorn/prefer-string-starts-ends-with": "warn",
"unicorn/prefer-type-error": "error",
"unicorn/throw-new-error": "error"
}
}