@shayanthenerd/eslint-config
Version:
A modern, flexible ESLint configuration for enforcing best practices and maintaining a consistent coding style
270 lines (269 loc) • 12.5 kB
JavaScript
import { isEnabled } from "../utils/isEnabled.mjs";
import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
//#region src/rules/unicorn.ts
function getUnicornRules(options) {
const { unicorn, stylistic } = options.configs;
const { functionStyle } = isEnabled(unicorn) ? unicorn : defaultOptions.configs.unicorn;
return {
"unicorn/better-dom-traversing": "warn",
"unicorn/catch-error-name": "warn",
"unicorn/class-reference-in-static-methods": "warn",
"unicorn/consistent-assert": "warn",
"unicorn/consistent-compound-words": "warn",
"unicorn/consistent-date-clone": "warn",
"unicorn/consistent-destructuring": "warn",
"unicorn/consistent-empty-array-spread": "warn",
"unicorn/consistent-existence-index-check": "warn",
"unicorn/consistent-export-decorator-position": "warn",
"unicorn/consistent-function-scoping": ["warn", { checkArrowFunctions: false }],
"unicorn/consistent-function-style": ["warn", functionStyle],
"unicorn/consistent-json-file-read": "error",
"unicorn/consistent-optional-chaining": "warn",
"unicorn/consistent-template-literal-escape": "warn",
"unicorn/consistent-tuple-labels": "warn",
"unicorn/custom-error-definition": "error",
"unicorn/dom-node-dataset": "warn",
"unicorn/empty-brace-spaces": isEnabled(stylistic) ? "warn" : "off",
"unicorn/error-message": "error",
"unicorn/escape-case": "warn",
"unicorn/explicit-length-check": "warn",
"unicorn/explicit-timer-delay": "warn",
"unicorn/isolated-functions": "error",
"unicorn/iteration-fallback-style": "error",
"unicorn/new-for-builtins": "error",
"unicorn/no-abusive-eslint-disable": "error",
"unicorn/no-accessor-recursion": "error",
"unicorn/no-accidental-bitwise-operator": "warn",
"unicorn/no-array-callback-reference": "warn",
"unicorn/no-array-concat-in-loop": "warn",
"unicorn/no-array-fill-with-reference-type": "error",
"unicorn/no-array-from-fill": "warn",
"unicorn/no-array-method-this-argument": "warn",
"unicorn/no-array-sort-for-min-max": "warn",
"unicorn/no-async-promise-finally": "warn",
"unicorn/no-await-expression-member": "warn",
"unicorn/no-await-in-promise-methods": "error",
"unicorn/no-blob-to-file": "warn",
"unicorn/no-boolean-sort-comparator": "warn",
"unicorn/no-canvas-to-image": "warn",
"unicorn/no-chained-comparison": "error",
"unicorn/no-collection-bracket-access": "error",
"unicorn/no-confusing-array-with": "warn",
"unicorn/no-console-spaces": "warn",
"unicorn/no-constant-zero-expression": "warn",
"unicorn/no-declarations-before-early-exit": "warn",
"unicorn/no-document-cookie": "warn",
"unicorn/no-double-comparison": "warn",
"unicorn/no-duplicate-if-branches": "warn",
"unicorn/no-duplicate-logical-operands": "warn",
"unicorn/no-duplicate-loops": "warn",
"unicorn/no-duplicate-set-values": "error",
"unicorn/no-error-property-assignment": "error",
"unicorn/no-exports-in-scripts": "error",
"unicorn/no-for-loop": "warn",
"unicorn/no-immediate-mutation": "warn",
"unicorn/no-impossible-length-comparison": "error",
"unicorn/no-incorrect-query-selector": "error",
"unicorn/no-incorrect-template-string-interpolation": "error",
"unicorn/no-invalid-character-comparison": "error",
"unicorn/no-invalid-fetch-options": "error",
"unicorn/no-invalid-remove-event-listener": "error",
"unicorn/no-invalid-well-known-symbol-methods": "error",
"unicorn/no-late-current-target-access": "warn",
"unicorn/no-late-event-control": "error",
"unicorn/no-lonely-if": "warn",
"unicorn/no-loop-iterable-mutation": "warn",
"unicorn/no-magic-array-flat-depth": "warn",
"unicorn/no-mismatched-map-key": "warn",
"unicorn/no-misrefactored-assignment": "warn",
"unicorn/no-multiple-promise-resolver-calls": "error",
"unicorn/no-negated-array-predicate": "warn",
"unicorn/no-negated-comparison": ["warn", { checkLogicalExpressions: false }],
"unicorn/no-negation-in-equality-check": "warn",
"unicorn/no-nested-ternary": "warn",
"unicorn/no-new-buffer": "error",
"unicorn/no-nonstandard-builtin-properties": "error",
"unicorn/no-object-as-default-parameter": "warn",
"unicorn/no-object-methods-with-collections": "warn",
"unicorn/no-optional-chaining-on-undeclared-variable": "error",
"unicorn/no-redundant-comparison": "warn",
"unicorn/no-return-array-push": "warn",
"unicorn/no-selector-as-dom-name": "error",
"unicorn/no-single-promise-in-promise-methods": "warn",
"unicorn/no-static-only-class": "warn",
"unicorn/no-subtraction-comparison": "warn",
"unicorn/no-thenable": "error",
"unicorn/no-this-outside-of-class": "error",
"unicorn/no-typeof-undefined": "warn",
"unicorn/no-uncalled-method": "error",
"unicorn/no-undeclared-class-members": "error",
"unicorn/no-unnecessary-array-flat-depth": "warn",
"unicorn/no-unnecessary-array-splice-count": "warn",
"unicorn/no-unnecessary-boolean-comparison": "warn",
"unicorn/no-unnecessary-fetch-options": "warn",
"unicorn/no-unnecessary-global-this": "warn",
"unicorn/no-unnecessary-nested-ternary": "warn",
"unicorn/no-unnecessary-polyfills": "warn",
"unicorn/no-unnecessary-slice-end": "warn",
"unicorn/no-unnecessary-splice": "warn",
"unicorn/no-unreadable-array-destructuring": "warn",
"unicorn/no-unreadable-for-of-expression": "warn",
"unicorn/no-unreadable-iife": "warn",
"unicorn/no-unreadable-new-expression": "warn",
"unicorn/no-unsafe-buffer-conversion": "warn",
"unicorn/no-unsafe-promise-all-settled-values": "error",
"unicorn/no-unsafe-property-key": "error",
"unicorn/no-unused-array-method-return": "warn",
"unicorn/no-unused-properties": "warn",
"unicorn/no-useless-boolean-cast": "warn",
"unicorn/no-useless-collection-argument": "warn",
"unicorn/no-useless-compound-assignment": "warn",
"unicorn/no-useless-concat": "warn",
"unicorn/no-useless-continue": "warn",
"unicorn/no-useless-delete-check": "warn",
"unicorn/no-useless-error-capture-stack-trace": "warn",
"unicorn/no-useless-fallback-in-spread": "warn",
"unicorn/no-useless-iterator-to-array": "warn",
"unicorn/no-useless-length-check": "warn",
"unicorn/no-useless-logical-operand": "warn",
"unicorn/no-useless-override": "warn",
"unicorn/no-useless-promise-resolve-reject": "warn",
"unicorn/no-useless-re-export": "warn",
"unicorn/no-useless-recursion": "warn",
"unicorn/no-useless-spread": "warn",
"unicorn/no-useless-switch-case": "warn",
"unicorn/no-useless-template-literals": "warn",
"unicorn/no-useless-undefined": ["warn", { checkArrowFunctionBody: false }],
"unicorn/no-xor-as-exponentiation": "error",
"unicorn/no-zero-fractions": "warn",
"unicorn/number-literal-case": "warn",
"unicorn/numeric-separators-style": "warn",
"unicorn/prefer-abort-signal-any": "warn",
"unicorn/prefer-abort-signal-timeout": "warn",
"unicorn/prefer-add-event-listener": "warn",
"unicorn/prefer-add-event-listener-options": "warn",
"unicorn/prefer-aggregate-error": "warn",
"unicorn/prefer-array-flat": "warn",
"unicorn/prefer-array-flat-map": "warn",
"unicorn/prefer-array-from-async": "warn",
"unicorn/prefer-array-from-map": "warn",
"unicorn/prefer-array-index-of": "warn",
"unicorn/prefer-array-iterable-methods": "warn",
"unicorn/prefer-array-last-methods": "warn",
"unicorn/prefer-array-slice": "warn",
"unicorn/prefer-array-some": "warn",
"unicorn/prefer-at": "warn",
"unicorn/prefer-bigint-literals": "warn",
"unicorn/prefer-blob-reading-methods": "warn",
"unicorn/prefer-block-statement-over-iife": "warn",
"unicorn/prefer-boolean-return": "warn",
"unicorn/prefer-class-fields": "warn",
"unicorn/prefer-classlist-toggle": "warn",
"unicorn/prefer-code-point": "error",
"unicorn/prefer-continue": ["warn", { maximumStatements: 3 }],
"unicorn/prefer-date-now": "warn",
"unicorn/prefer-direct-iteration": "warn",
"unicorn/prefer-dispose": "warn",
"unicorn/prefer-dom-node-append": "warn",
"unicorn/prefer-dom-node-html-methods": "warn",
"unicorn/prefer-dom-node-remove": "warn",
"unicorn/prefer-dom-node-replace-children": "warn",
"unicorn/prefer-dom-node-text-content": "warn",
"unicorn/prefer-error-is-error": "error",
"unicorn/prefer-event-target": "warn",
"unicorn/prefer-export-from": ["warn", { checkUsedVariables: false }],
"unicorn/prefer-flat-math-min-max": "warn",
"unicorn/prefer-get-or-insert-computed": "warn",
"unicorn/prefer-global-number-constants": "warn",
"unicorn/prefer-group-by": "warn",
"unicorn/prefer-has-check": "warn",
"unicorn/prefer-hoisting-branch-code": "warn",
"unicorn/prefer-https": "warn",
"unicorn/prefer-identifier-import-export-specifiers": "warn",
"unicorn/prefer-import-meta-properties": "warn",
"unicorn/prefer-includes": "warn",
"unicorn/prefer-iterable-in-constructor": "warn",
"unicorn/prefer-iterator-concat": "warn",
"unicorn/prefer-iterator-helpers": "warn",
"unicorn/prefer-iterator-to-array": "warn",
"unicorn/prefer-iterator-to-array-at-end": "warn",
"unicorn/prefer-keyboard-event-key": "error",
"unicorn/prefer-location-assign": "warn",
"unicorn/prefer-logical-operator-over-ternary": "warn",
"unicorn/prefer-map-from-entries": "warn",
"unicorn/prefer-math-abs": "warn",
"unicorn/prefer-math-constants": "warn",
"unicorn/prefer-math-min-max": "warn",
"unicorn/prefer-math-trunc": "warn",
"unicorn/prefer-modern-dom-apis": "warn",
"unicorn/prefer-modern-math-apis": "warn",
"unicorn/prefer-module": "error",
"unicorn/prefer-native-coercion-functions": "warn",
"unicorn/prefer-negative-index": "warn",
"unicorn/prefer-node-protocol": "warn",
"unicorn/prefer-number-coercion": "warn",
"unicorn/prefer-number-is-safe-integer": "warn",
"unicorn/prefer-number-properties": "warn",
"unicorn/prefer-object-define-properties": "warn",
"unicorn/prefer-object-destructuring-defaults": "warn",
"unicorn/prefer-object-from-entries": "warn",
"unicorn/prefer-object-iterable-methods": "warn",
"unicorn/prefer-observer-apis": "warn",
"unicorn/prefer-optional-catch-binding": "warn",
"unicorn/prefer-path2d": "warn",
"unicorn/prefer-private-class-fields": "warn",
"unicorn/prefer-promise-try": "warn",
"unicorn/prefer-promise-with-resolvers": "warn",
"unicorn/prefer-queue-microtask": "warn",
"unicorn/prefer-reflect-apply": "warn",
"unicorn/prefer-regexp-escape": "warn",
"unicorn/prefer-regexp-test": "warn",
"unicorn/prefer-response-static-json": "warn",
"unicorn/prefer-scoped-selector": "warn",
"unicorn/prefer-set-methods": "warn",
"unicorn/prefer-set-size": "warn",
"unicorn/prefer-simple-condition-first": "warn",
"unicorn/prefer-simple-sort-comparator": "warn",
"unicorn/prefer-simplified-conditions": "warn",
"unicorn/prefer-single-array-predicate": "warn",
"unicorn/prefer-single-call": "warn",
"unicorn/prefer-single-object-destructuring": "warn",
"unicorn/prefer-single-replace": "warn",
"unicorn/prefer-smaller-scope": "warn",
"unicorn/prefer-spread": "warn",
"unicorn/prefer-string-match-all": "warn",
"unicorn/prefer-string-pad-start-end": "warn",
"unicorn/prefer-string-repeat": "warn",
"unicorn/prefer-string-replace-all": "warn",
"unicorn/prefer-string-slice": "warn",
"unicorn/prefer-string-starts-ends-with": "warn",
"unicorn/prefer-string-trim-start-end": "warn",
"unicorn/prefer-structured-clone": "warn",
"unicorn/prefer-temporal": "warn",
"unicorn/prefer-then-catch": "warn",
"unicorn/prefer-toggle-attribute": "warn",
"unicorn/prefer-top-level-await": "warn",
"unicorn/prefer-type-error": "warn",
"unicorn/prefer-uint8array-base64": "warn",
"unicorn/prefer-unary-minus": "warn",
"unicorn/prefer-url-can-parse": "warn",
"unicorn/prefer-url-href": "warn",
"unicorn/prefer-url-search-parameters": "warn",
"unicorn/prefer-while-loop-condition": "warn",
"unicorn/relative-url-style": "warn",
"unicorn/require-array-join-separator": "warn",
"unicorn/require-css-escape": "warn",
"unicorn/require-module-attributes": "error",
"unicorn/require-module-specifiers": "error",
"unicorn/require-number-to-fixed-digits-argument": "warn",
"unicorn/require-passive-events": "warn",
"unicorn/require-proxy-trap-boolean-return": "error",
"unicorn/switch-case-braces": "warn",
"unicorn/switch-case-break-position": "error",
"unicorn/template-indent": "warn",
"unicorn/text-encoding-identifier-case": "warn",
"unicorn/throw-new-error": "warn"
};
}
//#endregion
export { getUnicornRules };