eslint-config-noir
Version:
Noir ESLint shareable config
125 lines (124 loc) • 4.57 kB
JavaScript
import plugin from "eslint-plugin-unicorn";
import { smartConfig } from "#utils";
const unicornRules = {
"better-regex": "error",
"catch-error-name": "error",
"consistent-assert": "error",
"consistent-date-clone": "error",
"consistent-destructuring": "error",
"consistent-empty-array-spread": "error",
"consistent-existence-index-check": "error",
"consistent-function-scoping": "error",
"custom-error-definition": "error",
"empty-brace-spaces": "error",
"error-message": "error",
"escape-case": "error",
"explicit-length-check": "error",
"filename-case": [
"error",
{
case: "kebabCase",
multipleFileExtensions: false,
},
],
"new-for-builtins": "error",
"no-abusive-eslint-disable": "error",
"no-accessor-recursion": "error",
"no-anonymous-default-export": "error",
"no-array-for-each": "error",
"no-array-method-this-argument": "error",
"no-await-expression-member": "error",
"no-await-in-promise-methods": "error",
"no-console-spaces": "error",
"no-document-cookie": "error",
"no-empty-file": "error",
"no-for-loop": "error",
"no-hex-escape": "error",
"no-instanceof-builtins": "error",
"no-invalid-fetch-options": "error",
"no-invalid-remove-event-listener": "error",
"no-lonely-if": "error",
"no-named-default": "error",
"no-negated-condition": "error",
"no-negation-in-equality-check": "error",
"no-new-array": "error",
"no-new-buffer": "error",
"no-process-exit": "error",
"no-single-promise-in-promise-methods": "error",
"no-static-only-class": "error",
"no-typeof-undefined": "error",
"no-unnecessary-array-flat-depth": "error",
"no-unnecessary-array-splice-count": "error",
"no-unnecessary-await": "error",
"no-unnecessary-slice-end": "error",
"no-unreadable-array-destructuring": "error",
"no-unreadable-iife": "error",
"no-useless-length-check": "error",
"no-useless-promise-resolve-reject": "error",
"no-useless-spread": "error",
"no-useless-switch-case": "error",
"no-useless-undefined": "error",
"no-zero-fractions": "error",
"number-literal-case": "error",
"numeric-separators-style": "error",
"prefer-add-event-listener": "error",
"prefer-array-find": "error",
"prefer-array-flat-map": "error",
"prefer-array-flat": "error",
"prefer-array-index-of": "error",
"prefer-array-some": "error",
"prefer-at": "error",
"prefer-blob-reading-methods": "error",
"prefer-code-point": "error",
"prefer-date-now": "error",
"prefer-default-parameters": "error",
"prefer-dom-node-append": "error",
"prefer-dom-node-remove": "error",
"prefer-export-from": ["error", { ignoreUsedVariables: true }],
"prefer-global-this": "error",
"prefer-import-meta-properties": "error",
"prefer-includes": "error",
"prefer-json-parse-buffer": "error",
"prefer-keyboard-event-key": "error",
"prefer-logical-operator-over-ternary": "error",
"prefer-math-min-max": "error",
"prefer-math-trunc": "error",
"prefer-modern-dom-apis": "error",
"prefer-modern-math-apis": "error",
"prefer-module": "error",
"prefer-native-coercion-functions": "error",
"prefer-negative-index": "error",
"prefer-node-protocol": "error",
"prefer-number-properties": "error",
"prefer-object-from-entries": "error",
"prefer-optional-catch-binding": "error",
"prefer-prototype-methods": "error",
"prefer-query-selector": "error",
"prefer-reflect-apply": "error",
"prefer-regexp-test": "error",
"prefer-set-has": "error",
"prefer-set-size": "error",
"prefer-spread": "error",
"prefer-string-raw": "error",
"prefer-string-replace-all": "error",
"prefer-string-slice": "error",
"prefer-string-starts-ends-with": "error",
"prefer-string-trim-start-end": "error",
"prefer-structured-clone": "error",
"prefer-switch": "error",
"prefer-ternary": "error",
"prefer-type-error": "error",
"prevent-abbreviations": "error",
"require-array-join-separator": "error",
"require-number-to-fixed-digits-argument": "error",
"require-post-message-target-origin": "error",
"text-encoding-identifier-case": "error",
"throw-new-error": "error",
};
const rules = Object.fromEntries(Object.entries(unicornRules).map(([key, value]) => [`unicorn/${key}`, value]));
export const unicorn = smartConfig({
plugins: {
unicorn: plugin,
},
rules,
});