@fenge/eslint-config
Version:
A super strict eslint config for linting js/ts/package.json.
748 lines • 42 kB
TypeScript
export declare function javascript(): readonly [{
readonly name: "fenge/javascript";
readonly files: readonly ["**/*.{js,cjs,mjs,jsx}"];
readonly languageOptions: {
readonly ecmaVersion: "latest";
readonly sourceType: "module";
readonly parserOptions: {
readonly ecmaVersion: "latest";
readonly sourceType: "module";
readonly ecmaFeatures: {
readonly jsx: true;
};
};
readonly globals: {
readonly [k: string]: boolean;
};
};
readonly plugins: {
readonly "check-file": unknown;
readonly fp: unknown;
readonly n: import("eslint").ESLint.Plugin & {
configs: import("eslint-plugin-n").Configs;
};
readonly import: unknown;
readonly promise: unknown;
readonly react: {
deprecatedRules: Partial<{
'boolean-prop-naming': import("eslint").Rule.RuleModule;
'button-has-type': import("eslint").Rule.RuleModule;
'checked-requires-onchange-or-readonly': import("eslint").Rule.RuleModule;
'default-props-match-prop-types': import("eslint").Rule.RuleModule;
'destructuring-assignment': import("eslint").Rule.RuleModule;
'display-name': import("eslint").Rule.RuleModule;
'forbid-component-props': import("eslint").Rule.RuleModule;
'forbid-dom-props': import("eslint").Rule.RuleModule;
'forbid-elements': import("eslint").Rule.RuleModule;
'forbid-foreign-prop-types': import("eslint").Rule.RuleModule;
'forbid-prop-types': import("eslint").Rule.RuleModule;
'forward-ref-uses-ref': import("eslint").Rule.RuleModule;
'function-component-definition': import("eslint").Rule.RuleModule;
'hook-use-state': import("eslint").Rule.RuleModule;
'iframe-missing-sandbox': import("eslint").Rule.RuleModule;
'jsx-boolean-value': import("eslint").Rule.RuleModule;
'jsx-child-element-spacing': import("eslint").Rule.RuleModule;
'jsx-closing-bracket-location': import("eslint").Rule.RuleModule;
'jsx-closing-tag-location': import("eslint").Rule.RuleModule;
'jsx-curly-spacing': import("eslint").Rule.RuleModule;
'jsx-curly-newline': import("eslint").Rule.RuleModule;
'jsx-equals-spacing': import("eslint").Rule.RuleModule;
'jsx-filename-extension': import("eslint").Rule.RuleModule;
'jsx-first-prop-new-line': import("eslint").Rule.RuleModule;
'jsx-handler-names': import("eslint").Rule.RuleModule;
'jsx-indent': import("eslint").Rule.RuleModule;
'jsx-indent-props': import("eslint").Rule.RuleModule;
'jsx-key': import("eslint").Rule.RuleModule;
'jsx-max-depth': import("eslint").Rule.RuleModule;
'jsx-max-props-per-line': import("eslint").Rule.RuleModule;
'jsx-newline': import("eslint").Rule.RuleModule;
'jsx-no-bind': import("eslint").Rule.RuleModule;
'jsx-no-comment-textnodes': import("eslint").Rule.RuleModule;
'jsx-no-constructed-context-values': import("eslint").Rule.RuleModule;
'jsx-no-duplicate-props': import("eslint").Rule.RuleModule;
'jsx-no-leaked-render': import("eslint").Rule.RuleModule;
'jsx-no-literals': import("eslint").Rule.RuleModule;
'jsx-no-script-url': import("eslint").Rule.RuleModule;
'jsx-no-target-blank': import("eslint").Rule.RuleModule;
'jsx-no-useless-fragment': import("eslint").Rule.RuleModule;
'jsx-one-expression-per-line': import("eslint").Rule.RuleModule;
'jsx-no-undef': import("eslint").Rule.RuleModule;
'jsx-curly-brace-presence': import("eslint").Rule.RuleModule;
'jsx-pascal-case': import("eslint").Rule.RuleModule;
'jsx-fragments': import("eslint").Rule.RuleModule;
'jsx-props-no-multi-spaces': import("eslint").Rule.RuleModule;
'jsx-props-no-spreading': import("eslint").Rule.RuleModule;
'jsx-props-no-spread-multi': import("eslint").Rule.RuleModule;
'jsx-sort-default-props': import("eslint").Rule.RuleModule;
'jsx-sort-props': import("eslint").Rule.RuleModule;
'jsx-space-before-closing': import("eslint").Rule.RuleModule;
'jsx-tag-spacing': import("eslint").Rule.RuleModule;
'jsx-uses-react': import("eslint").Rule.RuleModule;
'jsx-uses-vars': import("eslint").Rule.RuleModule;
'jsx-wrap-multilines': import("eslint").Rule.RuleModule;
'no-invalid-html-attribute': import("eslint").Rule.RuleModule;
'no-access-state-in-setstate': import("eslint").Rule.RuleModule;
'no-adjacent-inline-elements': import("eslint").Rule.RuleModule;
'no-array-index-key': import("eslint").Rule.RuleModule;
'no-arrow-function-lifecycle': import("eslint").Rule.RuleModule;
'no-children-prop': import("eslint").Rule.RuleModule;
'no-danger': import("eslint").Rule.RuleModule;
'no-danger-with-children': import("eslint").Rule.RuleModule;
'no-deprecated': import("eslint").Rule.RuleModule;
'no-did-mount-set-state': import("eslint").Rule.RuleModule;
'no-did-update-set-state': import("eslint").Rule.RuleModule;
'no-direct-mutation-state': import("eslint").Rule.RuleModule;
'no-find-dom-node': import("eslint").Rule.RuleModule;
'no-is-mounted': import("eslint").Rule.RuleModule;
'no-multi-comp': import("eslint").Rule.RuleModule;
'no-namespace': import("eslint").Rule.RuleModule;
'no-set-state': import("eslint").Rule.RuleModule;
'no-string-refs': import("eslint").Rule.RuleModule;
'no-redundant-should-component-update': import("eslint").Rule.RuleModule;
'no-render-return-value': import("eslint").Rule.RuleModule;
'no-this-in-sfc': import("eslint").Rule.RuleModule;
'no-typos': import("eslint").Rule.RuleModule;
'no-unescaped-entities': import("eslint").Rule.RuleModule;
'no-unknown-property': import("eslint").Rule.RuleModule;
'no-unsafe': import("eslint").Rule.RuleModule;
'no-unstable-nested-components': import("eslint").Rule.RuleModule;
'no-unused-class-component-methods': import("eslint").Rule.RuleModule;
'no-unused-prop-types': import("eslint").Rule.RuleModule;
'no-unused-state': import("eslint").Rule.RuleModule;
'no-object-type-as-default-prop': import("eslint").Rule.RuleModule;
'no-will-update-set-state': import("eslint").Rule.RuleModule;
'prefer-es6-class': import("eslint").Rule.RuleModule;
'prefer-exact-props': import("eslint").Rule.RuleModule;
'prefer-read-only-props': import("eslint").Rule.RuleModule;
'prefer-stateless-function': import("eslint").Rule.RuleModule;
'prop-types': import("eslint").Rule.RuleModule;
'react-in-jsx-scope': import("eslint").Rule.RuleModule;
'require-default-props': import("eslint").Rule.RuleModule;
'require-optimization': import("eslint").Rule.RuleModule;
'require-render-return': import("eslint").Rule.RuleModule;
'self-closing-comp': import("eslint").Rule.RuleModule;
'sort-comp': import("eslint").Rule.RuleModule;
'sort-default-props': import("eslint").Rule.RuleModule;
'sort-prop-types': import("eslint").Rule.RuleModule;
'state-in-constructor': import("eslint").Rule.RuleModule;
'static-property-placement': import("eslint").Rule.RuleModule;
'style-prop-object': import("eslint").Rule.RuleModule;
'void-dom-elements-no-children': import("eslint").Rule.RuleModule;
}>;
rules: {
'boolean-prop-naming': import("eslint").Rule.RuleModule;
'button-has-type': import("eslint").Rule.RuleModule;
'checked-requires-onchange-or-readonly': import("eslint").Rule.RuleModule;
'default-props-match-prop-types': import("eslint").Rule.RuleModule;
'destructuring-assignment': import("eslint").Rule.RuleModule;
'display-name': import("eslint").Rule.RuleModule;
'forbid-component-props': import("eslint").Rule.RuleModule;
'forbid-dom-props': import("eslint").Rule.RuleModule;
'forbid-elements': import("eslint").Rule.RuleModule;
'forbid-foreign-prop-types': import("eslint").Rule.RuleModule;
'forbid-prop-types': import("eslint").Rule.RuleModule;
'forward-ref-uses-ref': import("eslint").Rule.RuleModule;
'function-component-definition': import("eslint").Rule.RuleModule;
'hook-use-state': import("eslint").Rule.RuleModule;
'iframe-missing-sandbox': import("eslint").Rule.RuleModule;
'jsx-boolean-value': import("eslint").Rule.RuleModule;
'jsx-child-element-spacing': import("eslint").Rule.RuleModule;
'jsx-closing-bracket-location': import("eslint").Rule.RuleModule;
'jsx-closing-tag-location': import("eslint").Rule.RuleModule;
'jsx-curly-spacing': import("eslint").Rule.RuleModule;
'jsx-curly-newline': import("eslint").Rule.RuleModule;
'jsx-equals-spacing': import("eslint").Rule.RuleModule;
'jsx-filename-extension': import("eslint").Rule.RuleModule;
'jsx-first-prop-new-line': import("eslint").Rule.RuleModule;
'jsx-handler-names': import("eslint").Rule.RuleModule;
'jsx-indent': import("eslint").Rule.RuleModule;
'jsx-indent-props': import("eslint").Rule.RuleModule;
'jsx-key': import("eslint").Rule.RuleModule;
'jsx-max-depth': import("eslint").Rule.RuleModule;
'jsx-max-props-per-line': import("eslint").Rule.RuleModule;
'jsx-newline': import("eslint").Rule.RuleModule;
'jsx-no-bind': import("eslint").Rule.RuleModule;
'jsx-no-comment-textnodes': import("eslint").Rule.RuleModule;
'jsx-no-constructed-context-values': import("eslint").Rule.RuleModule;
'jsx-no-duplicate-props': import("eslint").Rule.RuleModule;
'jsx-no-leaked-render': import("eslint").Rule.RuleModule;
'jsx-no-literals': import("eslint").Rule.RuleModule;
'jsx-no-script-url': import("eslint").Rule.RuleModule;
'jsx-no-target-blank': import("eslint").Rule.RuleModule;
'jsx-no-useless-fragment': import("eslint").Rule.RuleModule;
'jsx-one-expression-per-line': import("eslint").Rule.RuleModule;
'jsx-no-undef': import("eslint").Rule.RuleModule;
'jsx-curly-brace-presence': import("eslint").Rule.RuleModule;
'jsx-pascal-case': import("eslint").Rule.RuleModule;
'jsx-fragments': import("eslint").Rule.RuleModule;
'jsx-props-no-multi-spaces': import("eslint").Rule.RuleModule;
'jsx-props-no-spreading': import("eslint").Rule.RuleModule;
'jsx-props-no-spread-multi': import("eslint").Rule.RuleModule;
'jsx-sort-default-props': import("eslint").Rule.RuleModule;
'jsx-sort-props': import("eslint").Rule.RuleModule;
'jsx-space-before-closing': import("eslint").Rule.RuleModule;
'jsx-tag-spacing': import("eslint").Rule.RuleModule;
'jsx-uses-react': import("eslint").Rule.RuleModule;
'jsx-uses-vars': import("eslint").Rule.RuleModule;
'jsx-wrap-multilines': import("eslint").Rule.RuleModule;
'no-invalid-html-attribute': import("eslint").Rule.RuleModule;
'no-access-state-in-setstate': import("eslint").Rule.RuleModule;
'no-adjacent-inline-elements': import("eslint").Rule.RuleModule;
'no-array-index-key': import("eslint").Rule.RuleModule;
'no-arrow-function-lifecycle': import("eslint").Rule.RuleModule;
'no-children-prop': import("eslint").Rule.RuleModule;
'no-danger': import("eslint").Rule.RuleModule;
'no-danger-with-children': import("eslint").Rule.RuleModule;
'no-deprecated': import("eslint").Rule.RuleModule;
'no-did-mount-set-state': import("eslint").Rule.RuleModule;
'no-did-update-set-state': import("eslint").Rule.RuleModule;
'no-direct-mutation-state': import("eslint").Rule.RuleModule;
'no-find-dom-node': import("eslint").Rule.RuleModule;
'no-is-mounted': import("eslint").Rule.RuleModule;
'no-multi-comp': import("eslint").Rule.RuleModule;
'no-namespace': import("eslint").Rule.RuleModule;
'no-set-state': import("eslint").Rule.RuleModule;
'no-string-refs': import("eslint").Rule.RuleModule;
'no-redundant-should-component-update': import("eslint").Rule.RuleModule;
'no-render-return-value': import("eslint").Rule.RuleModule;
'no-this-in-sfc': import("eslint").Rule.RuleModule;
'no-typos': import("eslint").Rule.RuleModule;
'no-unescaped-entities': import("eslint").Rule.RuleModule;
'no-unknown-property': import("eslint").Rule.RuleModule;
'no-unsafe': import("eslint").Rule.RuleModule;
'no-unstable-nested-components': import("eslint").Rule.RuleModule;
'no-unused-class-component-methods': import("eslint").Rule.RuleModule;
'no-unused-prop-types': import("eslint").Rule.RuleModule;
'no-unused-state': import("eslint").Rule.RuleModule;
'no-object-type-as-default-prop': import("eslint").Rule.RuleModule;
'no-will-update-set-state': import("eslint").Rule.RuleModule;
'prefer-es6-class': import("eslint").Rule.RuleModule;
'prefer-exact-props': import("eslint").Rule.RuleModule;
'prefer-read-only-props': import("eslint").Rule.RuleModule;
'prefer-stateless-function': import("eslint").Rule.RuleModule;
'prop-types': import("eslint").Rule.RuleModule;
'react-in-jsx-scope': import("eslint").Rule.RuleModule;
'require-default-props': import("eslint").Rule.RuleModule;
'require-optimization': import("eslint").Rule.RuleModule;
'require-render-return': import("eslint").Rule.RuleModule;
'self-closing-comp': import("eslint").Rule.RuleModule;
'sort-comp': import("eslint").Rule.RuleModule;
'sort-default-props': import("eslint").Rule.RuleModule;
'sort-prop-types': import("eslint").Rule.RuleModule;
'state-in-constructor': import("eslint").Rule.RuleModule;
'static-property-placement': import("eslint").Rule.RuleModule;
'style-prop-object': import("eslint").Rule.RuleModule;
'void-dom-elements-no-children': import("eslint").Rule.RuleModule;
};
configs: {
recommended: {
plugins: ["react"];
parserOptions: {
ecmaFeatures: {
jsx: boolean;
};
};
rules: {
"react/display-name": 2;
"react/jsx-key": 2;
"react/jsx-no-comment-textnodes": 2;
"react/jsx-no-duplicate-props": 2;
"react/jsx-no-target-blank": 2;
"react/jsx-no-undef": 2;
"react/jsx-uses-react": 2;
"react/jsx-uses-vars": 2;
"react/no-children-prop": 2;
"react/no-danger-with-children": 2;
"react/no-deprecated": 2;
"react/no-direct-mutation-state": 2;
"react/no-find-dom-node": 2;
"react/no-is-mounted": 2;
"react/no-render-return-value": 2;
"react/no-string-refs": 2;
"react/no-unescaped-entities": 2;
"react/no-unknown-property": 2;
"react/no-unsafe": 0;
"react/prop-types": 2;
"react/react-in-jsx-scope": 2;
"react/require-render-return": 2;
};
};
all: {
plugins: ["react"];
parserOptions: {
ecmaFeatures: {
jsx: boolean;
};
};
rules: Record<"boolean-prop-naming" | "button-has-type" | "checked-requires-onchange-or-readonly" | "default-props-match-prop-types" | "destructuring-assignment" | "display-name" | "forbid-component-props" | "forbid-dom-props" | "forbid-elements" | "forbid-foreign-prop-types" | "forbid-prop-types" | "prop-types" | "forward-ref-uses-ref" | "function-component-definition" | "hook-use-state" | "iframe-missing-sandbox" | "jsx-boolean-value" | "jsx-child-element-spacing" | "jsx-closing-bracket-location" | "jsx-closing-tag-location" | "jsx-curly-spacing" | "jsx-curly-newline" | "jsx-equals-spacing" | "jsx-filename-extension" | "jsx-first-prop-new-line" | "jsx-handler-names" | "jsx-indent" | "jsx-indent-props" | "jsx-key" | "jsx-max-depth" | "jsx-max-props-per-line" | "jsx-newline" | "jsx-no-bind" | "jsx-no-comment-textnodes" | "jsx-no-constructed-context-values" | "jsx-no-duplicate-props" | "jsx-no-leaked-render" | "jsx-no-literals" | "jsx-no-script-url" | "jsx-no-target-blank" | "jsx-no-useless-fragment" | "jsx-one-expression-per-line" | "jsx-no-undef" | "jsx-curly-brace-presence" | "jsx-pascal-case" | "jsx-fragments" | "jsx-props-no-multi-spaces" | "jsx-props-no-spreading" | "jsx-props-no-spread-multi" | "sort-default-props" | "jsx-sort-default-props" | "jsx-sort-props" | "jsx-tag-spacing" | "jsx-space-before-closing" | "jsx-uses-react" | "jsx-uses-vars" | "jsx-wrap-multilines" | "no-invalid-html-attribute" | "no-access-state-in-setstate" | "no-adjacent-inline-elements" | "no-array-index-key" | "no-arrow-function-lifecycle" | "no-children-prop" | "no-danger" | "no-danger-with-children" | "no-deprecated" | "no-direct-mutation-state" | "no-find-dom-node" | "no-is-mounted" | "no-multi-comp" | "no-namespace" | "no-set-state" | "no-string-refs" | "no-redundant-should-component-update" | "no-render-return-value" | "no-this-in-sfc" | "no-typos" | "no-unescaped-entities" | "no-unknown-property" | "no-unsafe" | "no-unstable-nested-components" | "no-unused-class-component-methods" | "no-unused-prop-types" | "no-unused-state" | "no-object-type-as-default-prop" | "prefer-es6-class" | "prefer-exact-props" | "prefer-read-only-props" | "prefer-stateless-function" | "react-in-jsx-scope" | "require-default-props" | "require-optimization" | "require-render-return" | "self-closing-comp" | "sort-comp" | "sort-prop-types" | "state-in-constructor" | "static-property-placement" | "style-prop-object" | "void-dom-elements-no-children" | "no-did-mount-set-state" | "no-did-update-set-state" | "no-will-update-set-state", 2 | "error">;
};
'jsx-runtime': {
plugins: ["react"];
parserOptions: {
ecmaFeatures: {
jsx: boolean;
};
jsxPragma: any;
};
rules: {
"react/react-in-jsx-scope": 0;
"react/jsx-uses-react": 0;
};
};
flat: Record<string, import("eslint-plugin-react").ReactFlatConfig>;
} & {
flat: Record<string, import("eslint-plugin-react").ReactFlatConfig>;
};
};
readonly "react-hooks": typeof import("eslint-plugin-react-hooks");
readonly sonarjs: typeof import("eslint-plugin-sonarjs");
readonly unicorn: import("eslint").ESLint.Plugin & {
configs: {
recommended: import("eslint").Linter.FlatConfig;
all: import("eslint").Linter.FlatConfig;
"flat/all": import("eslint").Linter.FlatConfig;
"flat/recommended": import("eslint").Linter.FlatConfig;
};
};
readonly "es-x": unknown;
readonly esm: typeof import("eslint-plugin-esm");
readonly "simple-import-sort": import("eslint").ESLint.Plugin;
readonly "@fenge": typeof import("@fenge/eslint-plugin");
readonly "@typescript-eslint": {
readonly rules: import("@typescript-eslint/eslint-plugin/use-at-your-own-risk/rules").TypeScriptESLintRules;
};
};
readonly rules: {
readonly "arrow-body-style": readonly ["error", "as-needed"];
readonly "simple-import-sort/exports": "error";
readonly "unicorn/prefer-node-protocol": "error";
readonly "unicorn/escape-case": "error";
readonly "default-param-last": "error";
readonly "for-direction": "error";
readonly "func-name-matching": "error";
readonly "func-names": "error";
readonly "func-style": readonly ["error", "declaration", {
readonly allowArrowFunctions: true;
}];
readonly "getter-return": "error";
readonly "init-declarations": "error";
readonly "logical-assignment-operators": readonly ["error", "always", {
readonly enforceForIfStatements: true;
}];
readonly "max-depth": readonly ["error", {
readonly max: 5;
}];
readonly "max-params": readonly ["error", {
readonly max: 4;
}];
readonly "no-bitwise": "error";
readonly "no-console": "error";
readonly "no-constant-binary-expression": "error";
readonly "no-dupe-else-if": "error";
readonly "no-duplicate-imports": "error";
readonly "no-empty-static-block": "error";
readonly "no-empty-function": "error";
readonly "no-implicit-coercion": readonly ["error", {
readonly disallowTemplateShorthand: true;
readonly allow: readonly ["!!"];
}];
readonly "no-inner-declarations": "error";
readonly "no-invalid-this": "error";
readonly "no-lonely-if": "error";
readonly "no-multi-assign": "error";
readonly "no-new-native-nonconstructor": "error";
readonly "no-nonoctal-decimal-escape": "error";
readonly "no-object-constructor": "error";
readonly "no-param-reassign": "error";
readonly "no-plusplus": "error";
readonly "no-setter-return": "error";
readonly "no-shadow": readonly ["error", {
readonly ignoreOnInitialization: true;
}];
readonly "no-unsafe-optional-chaining": readonly ["error", {
readonly disallowArithmeticOperators: true;
}];
readonly "no-unused-labels": "error";
readonly "no-unused-private-class-members": "error";
readonly "require-await": "error";
readonly "require-yield": "error";
readonly "prefer-arrow-callback": "error";
readonly "prefer-exponentiation-operator": "error";
readonly "prefer-object-has-own": "error";
readonly "prefer-spread": "error";
readonly "prefer-template": "error";
readonly "check-file/filename-blocklist": readonly ["error", {
readonly "**/*.mjs": "*.js";
readonly "**/*.cjs": "*.js";
readonly "**/*.mts": "*.ts";
readonly "**/*.cts": "*.ts";
readonly "**/*.spec.*": "*.test.*";
}];
readonly "es-x/no-accessor-properties": "error";
readonly "es-x/no-async-iteration": "error";
readonly "es-x/no-generators": "error";
readonly "es-x/no-hashbang": "error";
readonly "es-x/no-legacy-object-prototype-accessor-methods": "error";
readonly "es-x/no-top-level-await": "error";
readonly "esm/existing-file-imports": "error";
readonly "esm/no-declaration-file-imports": "error";
readonly "esm/no-directory-imports": "error";
readonly "esm/no-dynamic-imports": "error";
readonly "esm/no-empty-exports": "error";
readonly "esm/no-git-ignored-imports": "error";
readonly "esm/no-phantom-dep-imports": "error";
readonly "esm/no-relative-parent-imports": "error";
readonly "esm/no-rename-exports": "error";
readonly "esm/no-rename-imports": "error";
readonly "esm/no-side-effect-imports": "error";
readonly "esm/no-useless-path-segments": "error";
readonly "esm/required-exports": "error";
readonly "esm/top-side-effect-imports": "error";
readonly "fp/no-arguments": "error";
readonly "fp/no-delete": "error";
readonly "import/export": "error";
readonly "import/first": "error";
readonly "import/no-absolute-path": "error";
readonly "import/no-commonjs": readonly ["error", {
readonly allowRequire: false;
readonly allowConditionalRequire: false;
readonly allowPrimitiveModules: false;
}];
readonly "import/no-default-export": "error";
readonly "import/no-duplicates": "error";
readonly "import/no-dynamic-require": "error";
readonly "import/no-empty-named-blocks": "error";
readonly "import/no-mutable-exports": "error";
readonly "import/no-named-default": "error";
readonly "import/no-relative-packages": "error";
readonly "import/no-self-import": "error";
readonly "import/no-webpack-loader-syntax": "error";
readonly "n/handle-callback-err": readonly ["error", "^(err|error)$"];
readonly "n/no-callback-literal": "error";
readonly "n/no-deprecated-api": "error";
readonly "n/no-exports-assign": "error";
readonly "n/no-new-require": "error";
readonly "n/no-path-concat": "error";
readonly "n/no-process-exit": "error";
readonly "n/no-unpublished-bin": "error";
readonly "n/prefer-global/buffer": readonly ["error", "never"];
readonly "n/prefer-global/console": "error";
readonly "n/prefer-global/process": readonly ["error", "never"];
readonly "n/prefer-global/text-decoder": "error";
readonly "n/prefer-global/text-encoder": "error";
readonly "n/prefer-global/url": "error";
readonly "n/prefer-global/url-search-params": "error";
readonly "n/process-exit-as-throw": "error";
readonly "promise/no-return-wrap": "error";
readonly "promise/param-names": "error";
readonly "promise/prefer-catch": "error";
readonly "react/jsx-filename-extension": readonly ["error", {
readonly allow: "as-needed";
readonly extensions: readonly [".jsx", ".tsx"];
}];
readonly "react/jsx-key": "error";
readonly "react/jsx-no-duplicate-props": "error";
readonly "react/jsx-no-undef": "error";
readonly "react/jsx-no-useless-fragment": "error";
readonly "react/jsx-props-no-spread-multi": "error";
readonly "react/jsx-uses-vars": "error";
readonly "react-hooks/exhaustive-deps": "error";
readonly "react-hooks/rules-of-hooks": "error";
readonly "sonarjs/no-collapsible-if": "error";
readonly "sonarjs/no-all-duplicated-branches": "error";
readonly "sonarjs/no-identical-conditions": "error";
readonly "sonarjs/no-identical-expressions": "error";
readonly "sonarjs/no-ignored-return": "error";
readonly "sonarjs/no-inverted-boolean-check": "error";
readonly "sonarjs/no-nested-switch": "error";
readonly "sonarjs/no-useless-catch": "error";
readonly "sonarjs/prefer-immediate-return": "error";
readonly "unicorn/consistent-assert": "error";
readonly "unicorn/consistent-date-clone": "error";
readonly "unicorn/consistent-destructuring": "error";
readonly "unicorn/consistent-empty-array-spread": "error";
readonly "unicorn/error-message": "error";
readonly "unicorn/explicit-length-check": "error";
readonly "unicorn/filename-case": readonly ["error", {
readonly cases: {
readonly kebabCase: true;
readonly pascalCase: true;
};
}];
readonly "unicorn/import-style": readonly ["error", {
readonly styles: {
readonly react: {
readonly named: true;
};
readonly child_process: {
readonly default: true;
};
readonly fs: {
readonly default: true;
};
readonly "fs/promises": {
readonly default: true;
};
readonly process: {
readonly default: true;
};
readonly "util/types": {
readonly named: true;
};
readonly "node:child_process": {
readonly default: true;
};
readonly "node:fs": {
readonly default: true;
};
readonly "node:fs/promises": {
readonly default: true;
};
readonly "node:process": {
readonly default: true;
};
readonly "node:util/types": {
readonly named: true;
};
};
}];
readonly "unicorn/new-for-builtins": "error";
readonly "unicorn/no-abusive-eslint-disable": "error";
readonly "unicorn/no-accessor-recursion": "error";
readonly "unicorn/no-array-callback-reference": "error";
readonly "unicorn/no-array-method-this-argument": "error";
readonly "unicorn/no-await-in-promise-methods": "error";
readonly "unicorn/no-for-loop": "error";
readonly "unicorn/no-instanceof-builtins": "error";
readonly "unicorn/no-lonely-if": "error";
readonly "unicorn/no-named-default": "error";
readonly "unicorn/no-negation-in-equality-check": "error";
readonly "unicorn/no-new-array": "error";
readonly "unicorn/no-new-buffer": "error";
readonly "unicorn/no-process-exit": "error";
readonly "unicorn/no-single-promise-in-promise-methods": "error";
readonly "unicorn/no-static-only-class": "error";
readonly "unicorn/no-thenable": "error";
readonly "unicorn/no-this-assignment": "error";
readonly "unicorn/no-typeof-undefined": "error";
readonly "unicorn/no-unreadable-array-destructuring": "error";
readonly "unicorn/no-unreadable-iife": "error";
readonly "unicorn/no-useless-fallback-in-spread": "error";
readonly "unicorn/no-useless-spread": "error";
readonly "unicorn/no-useless-switch-case": "error";
readonly "unicorn/no-zero-fractions": "error";
readonly "unicorn/prefer-array-flat-map": "error";
readonly "unicorn/prefer-date-now": "error";
readonly "unicorn/prefer-export-from": "error";
readonly "unicorn/prefer-global-this": "error";
readonly "unicorn/prefer-includes": "error";
readonly "unicorn/prefer-logical-operator-over-ternary": "error";
readonly "unicorn/prefer-math-min-max": "error";
readonly "unicorn/prefer-module": "error";
readonly "unicorn/prefer-negative-index": "error";
readonly "unicorn/prefer-number-properties": "error";
readonly "unicorn/prefer-object-from-entries": "error";
readonly "unicorn/prefer-optional-catch-binding": "error";
readonly "unicorn/prefer-regexp-test": "error";
readonly "unicorn/prefer-string-replace-all": "error";
readonly "unicorn/prefer-string-slice": "error";
readonly "unicorn/prefer-ternary": "error";
readonly "unicorn/require-array-join-separator": "error";
readonly "unicorn/require-number-to-fixed-digits-argument": "error";
readonly "unicorn/text-encoding-identifier-case": "error";
readonly "unicorn/throw-new-error": "error";
readonly "@fenge/call-arguments-length": "error";
readonly "@fenge/no-instanceof-builtin": "error";
readonly "@fenge/no-nested-class": "error";
readonly "@fenge/no-nested-function": "error";
readonly "@fenge/no-restricted-loops": "error";
readonly "@fenge/no-top-level-arrow-function": "error";
readonly "@fenge/no-unnecessary-template-string": "error";
readonly "@typescript-eslint/ban-ts-comment": readonly ["error", {
readonly "ts-expect-error": true;
readonly "ts-ignore": true;
readonly "ts-nocheck": true;
}];
readonly "@typescript-eslint/no-this-alias": "error";
readonly "@typescript-eslint/no-useless-empty-export": "error";
readonly "@typescript-eslint/prefer-for-of": "error";
readonly 'no-var': "error";
readonly 'object-shorthand': readonly ["error", "properties"];
readonly 'accessor-pairs': readonly ["error", {
readonly setWithoutGet: true;
readonly enforceForClassMembers: true;
}];
readonly 'array-callback-return': readonly ["error", {
readonly allowImplicit: false;
readonly checkForEach: false;
}];
readonly camelcase: readonly ["error", {
readonly allow: readonly ["^UNSAFE_"];
readonly properties: "never";
readonly ignoreGlobals: true;
}];
readonly 'constructor-super': "error";
readonly 'default-case-last': "error";
readonly eqeqeq: readonly ["error", "always", {
readonly null: "ignore";
}];
readonly 'new-cap': readonly ["error", {
readonly newIsCap: true;
readonly capIsNew: false;
readonly properties: true;
}];
readonly 'no-array-constructor': "error";
readonly 'no-async-promise-executor': "error";
readonly 'no-caller': "error";
readonly 'no-case-declarations': "error";
readonly 'no-class-assign': "error";
readonly 'no-compare-neg-zero': "error";
readonly 'no-cond-assign': "error";
readonly 'no-const-assign': "error";
readonly 'no-constant-condition': readonly ["error", {
readonly checkLoops: false;
}];
readonly 'no-control-regex': "error";
readonly 'no-debugger': "error";
readonly 'no-delete-var': "error";
readonly 'no-dupe-args': "error";
readonly 'no-dupe-class-members': "error";
readonly 'no-dupe-keys': "error";
readonly 'no-duplicate-case': "error";
readonly 'no-useless-backreference': "error";
readonly 'no-empty': readonly ["error", {
readonly allowEmptyCatch: true;
}];
readonly 'no-empty-character-class': "error";
readonly 'no-empty-pattern': "error";
readonly 'no-eval': "error";
readonly 'no-ex-assign': "error";
readonly 'no-extend-native': "error";
readonly 'no-extra-bind': "error";
readonly 'no-extra-boolean-cast': "error";
readonly 'no-fallthrough': "error";
readonly 'no-func-assign': "error";
readonly 'no-global-assign': "error";
readonly 'no-implied-eval': "error";
readonly 'no-import-assign': "error";
readonly 'no-invalid-regexp': "error";
readonly 'no-irregular-whitespace': "error";
readonly 'no-iterator': "error";
readonly 'no-labels': readonly ["error", {
readonly allowLoop: false;
readonly allowSwitch: false;
}];
readonly 'no-lone-blocks': "error";
readonly 'no-loss-of-precision': "error";
readonly 'no-misleading-character-class': "error";
readonly 'no-prototype-builtins': "error";
readonly 'no-useless-catch': "error";
readonly 'no-multi-str': "error";
readonly 'no-new': "error";
readonly 'no-new-func': "error";
readonly 'no-new-wrappers': "error";
readonly 'no-obj-calls': "error";
readonly 'no-octal': "error";
readonly 'no-octal-escape': "error";
readonly 'no-proto': "error";
readonly 'no-redeclare': readonly ["error", {
readonly builtinGlobals: false;
}];
readonly 'no-regex-spaces': "error";
readonly 'no-return-assign': readonly ["error", "except-parens"];
readonly 'no-self-assign': readonly ["error", {
readonly props: true;
}];
readonly 'no-self-compare': "error";
readonly 'no-sequences': "error";
readonly 'no-shadow-restricted-names': "error";
readonly 'no-sparse-arrays': "error";
readonly 'no-this-before-super': "error";
readonly 'no-throw-literal': "error";
readonly 'no-undef': "error";
readonly 'no-unmodified-loop-condition': "error";
readonly 'no-unneeded-ternary': readonly ["error", {
readonly defaultAssignment: false;
}];
readonly 'no-unreachable': "error";
readonly 'no-unreachable-loop': "error";
readonly 'no-unsafe-finally': "error";
readonly 'no-unsafe-negation': "error";
readonly 'no-unused-expressions': readonly ["error", {
readonly enforceForJSX: true;
readonly allowShortCircuit: true;
readonly allowTernary: true;
readonly allowTaggedTemplates: true;
}];
readonly 'no-unused-vars': readonly ["error", {
readonly args: "none";
readonly caughtErrors: "none";
readonly ignoreRestSiblings: true;
readonly vars: "all";
}];
readonly 'no-use-before-define': readonly ["error", {
readonly functions: false;
readonly classes: false;
readonly variables: false;
}];
readonly 'no-useless-call': "error";
readonly 'no-useless-computed-key': "error";
readonly 'no-useless-constructor': "error";
readonly 'no-useless-escape': "error";
readonly 'no-useless-rename': "error";
readonly 'no-useless-return': "error";
readonly 'no-void': "error";
readonly 'no-with': "error";
readonly 'one-var': readonly ["error", {
readonly initialized: "never";
}];
readonly 'prefer-const': readonly ["error", {
readonly destructuring: "all";
}];
readonly 'prefer-promise-reject-errors': "error";
readonly 'prefer-regex-literals': readonly ["error", {
readonly disallowRedundantWrapping: true;
}];
readonly 'symbol-description': "error";
readonly 'unicode-bom': readonly ["error", "never"];
readonly 'use-isnan': readonly ["error", {
readonly enforceForSwitchCase: true;
readonly enforceForIndexOf: true;
}];
readonly 'valid-typeof': readonly ["error", {
readonly requireStringLiterals: true;
}];
readonly yoda: readonly ["error", "never"];
};
}, {
readonly name: "fenge/javascript/cli";
readonly files: readonly ["**/*.cli.{js,cjs,mjs,jsx}"];
readonly rules: {
readonly "es-x/no-hashbang": "off";
readonly "es-x/no-top-level-await": "off";
readonly "esm/required-exports": "off";
readonly "n/no-process-exit": "off";
readonly "no-console": "off";
};
}, {
readonly name: "fenge/javascript/config";
readonly files: readonly ["**/*.config.{js,cjs,mjs,jsx}"];
readonly rules: {
readonly "es-x/no-top-level-await": "off";
readonly "esm/no-phantom-dep-imports": readonly ["error", {
readonly allowDevDependencies: true;
}];
readonly "import/no-default-export": "off";
};
}, {
readonly name: "fenge/javascript/test";
readonly files: readonly ["**/__tests__/**/*.{js,cjs,mjs,jsx}", "**/*.{test,spec}.{js,cjs,mjs,jsx}"];
readonly rules: {
readonly "es-x/no-top-level-await": "off";
readonly "esm/no-phantom-dep-imports": readonly ["error", {
readonly allowDevDependencies: true;
}];
readonly "esm/required-exports": "off";
};
}];
//# sourceMappingURL=javascript.d.ts.map