@eslint-react/eslint-plugin
Version:
A unified plugin that combines all individual plugins from the eslint-react monorepo into one.
519 lines (498 loc) • 17.9 kB
JavaScript
import react from "eslint-plugin-react-x";
import reactHooksExtra from "eslint-plugin-react-hooks-extra";
import reactNamingConvention from "eslint-plugin-react-naming-convention";
import reactWebApi from "eslint-plugin-react-web-api";
import reactDom from "eslint-plugin-react-dom";
import { DEFAULT_ESLINT_REACT_SETTINGS } from "@eslint-react/shared";
//#region rolldown:runtime
var __defProp = Object.defineProperty;
var __export = (all) => {
let target = {};
for (var name$17 in all) __defProp(target, name$17, {
get: all[name$17],
enumerable: true
});
return target;
};
//#endregion
//#region package.json
var name = "@eslint-react/eslint-plugin";
var version = "2.3.1";
//#endregion
//#region src/configs/dom.ts
var dom_exports = /* @__PURE__ */ __export({
name: () => name$16,
plugins: () => plugins$10,
rules: () => rules$13
});
const name$16 = "@eslint-react/dom";
const rules$13 = {
"@eslint-react/dom/no-dangerously-set-innerhtml": "warn",
"@eslint-react/dom/no-dangerously-set-innerhtml-with-children": "error",
"@eslint-react/dom/no-find-dom-node": "error",
"@eslint-react/dom/no-flush-sync": "error",
"@eslint-react/dom/no-hydrate": "error",
"@eslint-react/dom/no-namespace": "error",
"@eslint-react/dom/no-render": "error",
"@eslint-react/dom/no-render-return-value": "error",
"@eslint-react/dom/no-script-url": "warn",
"@eslint-react/dom/no-unsafe-iframe-sandbox": "warn",
"@eslint-react/dom/no-use-form-state": "error",
"@eslint-react/dom/no-void-elements-with-children": "error"
};
const plugins$10 = { "@eslint-react/dom": reactDom };
//#endregion
//#region src/configs/x.ts
var x_exports = /* @__PURE__ */ __export({
name: () => name$15,
plugins: () => plugins$9,
rules: () => rules$16,
settings: () => settings$8
});
const name$15 = "@eslint-react/x";
const rules$16 = {
"@eslint-react/jsx-key-before-spread": "warn",
"@eslint-react/jsx-no-comment-textnodes": "warn",
"@eslint-react/jsx-no-duplicate-props": "warn",
"@eslint-react/jsx-uses-react": "warn",
"@eslint-react/jsx-uses-vars": "warn",
"@eslint-react/no-access-state-in-setstate": "error",
"@eslint-react/no-array-index-key": "warn",
"@eslint-react/no-children-count": "warn",
"@eslint-react/no-children-for-each": "warn",
"@eslint-react/no-children-map": "warn",
"@eslint-react/no-children-only": "warn",
"@eslint-react/no-children-to-array": "warn",
"@eslint-react/no-clone-element": "warn",
"@eslint-react/no-component-will-mount": "error",
"@eslint-react/no-component-will-receive-props": "error",
"@eslint-react/no-component-will-update": "error",
"@eslint-react/no-context-provider": "warn",
"@eslint-react/no-create-ref": "error",
"@eslint-react/no-default-props": "error",
"@eslint-react/no-direct-mutation-state": "error",
"@eslint-react/no-duplicate-key": "error",
"@eslint-react/no-forward-ref": "warn",
"@eslint-react/no-implicit-key": "warn",
"@eslint-react/no-missing-key": "error",
"@eslint-react/no-nested-component-definitions": "error",
"@eslint-react/no-nested-lazy-component-declarations": "error",
"@eslint-react/no-prop-types": "error",
"@eslint-react/no-redundant-should-component-update": "error",
"@eslint-react/no-set-state-in-component-did-mount": "warn",
"@eslint-react/no-set-state-in-component-did-update": "warn",
"@eslint-react/no-set-state-in-component-will-update": "warn",
"@eslint-react/no-string-refs": "error",
"@eslint-react/no-unnecessary-use-prefix": "warn",
"@eslint-react/no-unsafe-component-will-mount": "warn",
"@eslint-react/no-unsafe-component-will-receive-props": "warn",
"@eslint-react/no-unsafe-component-will-update": "warn",
"@eslint-react/no-unused-class-component-members": "warn",
"@eslint-react/no-use-context": "warn",
"@eslint-react/no-useless-forward-ref": "warn",
"@eslint-react/prefer-use-state-lazy-initialization": "warn"
};
const plugins$9 = { "@eslint-react": react };
const settings$8 = { "react-x": DEFAULT_ESLINT_REACT_SETTINGS };
//#endregion
//#region src/configs/all.ts
var all_exports = /* @__PURE__ */ __export({
name: () => name$14,
plugins: () => plugins$8,
rules: () => rules$7,
settings: () => settings$7
});
const name$14 = "@eslint-react/all";
const rules$7 = {
"@eslint-react/jsx-key-before-spread": "warn",
"@eslint-react/jsx-no-comment-textnodes": "warn",
"@eslint-react/jsx-no-duplicate-props": "warn",
"@eslint-react/jsx-no-iife": "warn",
"@eslint-react/jsx-no-undef": "error",
"@eslint-react/jsx-shorthand-boolean": "warn",
"@eslint-react/jsx-shorthand-fragment": "warn",
"@eslint-react/jsx-uses-react": "warn",
"@eslint-react/jsx-uses-vars": "warn",
"@eslint-react/no-access-state-in-setstate": "error",
"@eslint-react/no-array-index-key": "warn",
"@eslint-react/no-children-count": "warn",
"@eslint-react/no-children-for-each": "warn",
"@eslint-react/no-children-map": "warn",
"@eslint-react/no-children-only": "warn",
"@eslint-react/no-children-prop": "warn",
"@eslint-react/no-children-to-array": "warn",
"@eslint-react/no-class-component": "warn",
"@eslint-react/no-clone-element": "warn",
"@eslint-react/no-component-will-mount": "error",
"@eslint-react/no-component-will-receive-props": "error",
"@eslint-react/no-component-will-update": "error",
"@eslint-react/no-context-provider": "warn",
"@eslint-react/no-create-ref": "error",
"@eslint-react/no-default-props": "error",
"@eslint-react/no-direct-mutation-state": "error",
"@eslint-react/no-duplicate-key": "error",
"@eslint-react/no-forbidden-props": "off",
"@eslint-react/no-forward-ref": "warn",
"@eslint-react/no-implicit-key": "warn",
"@eslint-react/no-leaked-conditional-rendering": "off",
"@eslint-react/no-missing-component-display-name": "warn",
"@eslint-react/no-missing-context-display-name": "warn",
"@eslint-react/no-missing-key": "error",
"@eslint-react/no-misused-capture-owner-stack": "error",
"@eslint-react/no-nested-component-definitions": "error",
"@eslint-react/no-nested-lazy-component-declarations": "error",
"@eslint-react/no-prop-types": "error",
"@eslint-react/no-redundant-should-component-update": "error",
"@eslint-react/no-set-state-in-component-did-mount": "warn",
"@eslint-react/no-set-state-in-component-did-update": "warn",
"@eslint-react/no-set-state-in-component-will-update": "warn",
"@eslint-react/no-string-refs": "error",
"@eslint-react/no-unnecessary-key": "warn",
"@eslint-react/no-unnecessary-use-callback": "warn",
"@eslint-react/no-unnecessary-use-memo": "warn",
"@eslint-react/no-unnecessary-use-prefix": "warn",
"@eslint-react/no-unsafe-component-will-mount": "warn",
"@eslint-react/no-unsafe-component-will-receive-props": "warn",
"@eslint-react/no-unsafe-component-will-update": "warn",
"@eslint-react/no-unstable-context-value": "warn",
"@eslint-react/no-unstable-default-props": "warn",
"@eslint-react/no-unused-class-component-members": "warn",
"@eslint-react/no-unused-props": "off",
"@eslint-react/no-unused-state": "warn",
"@eslint-react/no-use-context": "warn",
"@eslint-react/no-useless-forward-ref": "warn",
"@eslint-react/no-useless-fragment": "warn",
"@eslint-react/prefer-destructuring-assignment": "warn",
"@eslint-react/prefer-namespace-import": "warn",
"@eslint-react/prefer-read-only-props": "off",
"@eslint-react/prefer-use-state-lazy-initialization": "warn",
"@eslint-react/dom/no-dangerously-set-innerhtml": "warn",
"@eslint-react/dom/no-dangerously-set-innerhtml-with-children": "error",
"@eslint-react/dom/no-find-dom-node": "error",
"@eslint-react/dom/no-flush-sync": "error",
"@eslint-react/dom/no-hydrate": "error",
"@eslint-react/dom/no-missing-button-type": "warn",
"@eslint-react/dom/no-missing-iframe-sandbox": "warn",
"@eslint-react/dom/no-namespace": "error",
"@eslint-react/dom/no-render": "error",
"@eslint-react/dom/no-render-return-value": "error",
"@eslint-react/dom/no-script-url": "warn",
"@eslint-react/dom/no-string-style-prop": "error",
"@eslint-react/dom/no-unknown-property": "warn",
"@eslint-react/dom/no-unsafe-iframe-sandbox": "warn",
"@eslint-react/dom/no-unsafe-target-blank": "warn",
"@eslint-react/dom/no-use-form-state": "warn",
"@eslint-react/dom/no-void-elements-with-children": "error",
"@eslint-react/dom/prefer-namespace-import": "warn",
"@eslint-react/web-api/no-leaked-event-listener": "warn",
"@eslint-react/web-api/no-leaked-interval": "warn",
"@eslint-react/web-api/no-leaked-resize-observer": "warn",
"@eslint-react/web-api/no-leaked-timeout": "warn",
"@eslint-react/hooks-extra/no-direct-set-state-in-use-effect": "warn",
"@eslint-react/naming-convention/component-name": "warn",
"@eslint-react/naming-convention/context-name": "warn",
"@eslint-react/naming-convention/filename": "off",
"@eslint-react/naming-convention/filename-extension": "off",
"@eslint-react/naming-convention/use-state": "warn"
};
const plugins$8 = {
...plugins$9,
...plugins$10,
"@eslint-react/hooks-extra": reactHooksExtra,
"@eslint-react/naming-convention": reactNamingConvention,
"@eslint-react/web-api": reactWebApi
};
const settings$7 = { ...settings$8 };
//#endregion
//#region src/configs/disable-conflict-eslint-plugin-react.ts
var disable_conflict_eslint_plugin_react_exports = /* @__PURE__ */ __export({
name: () => name$13,
rules: () => rules$15
});
const conflictingRules = [
"button-has-type",
"destructuring-assignment",
"display-name",
"forbid-prop-types",
"forward-ref-uses-ref",
"hook-use-state",
"iframe-missing-sandbox",
"jsx-boolean-value",
"jsx-filename-extension",
"jsx-fragments",
"jsx-key",
"jsx-no-comment-textnodes",
"jsx-no-constructed-context-values",
"jsx-no-duplicate-props",
"jsx-no-leaked-render",
"jsx-no-script-url",
"jsx-no-target-blank",
"jsx-no-undef",
"jsx-no-useless-fragment",
"jsx-pascal-case",
"jsx-uses-react",
"jsx-uses-vars",
"no-access-state-in-setstate",
"no-array-index-key",
"no-children-prop",
"no-danger",
"no-danger-with-children",
"no-deprecated",
"no-did-mount-set-state",
"no-did-update-set-state",
"no-direct-mutation-state",
"no-find-dom-node",
"no-namespace",
"no-object-type-as-default-prop",
"no-redundant-should-component-update",
"no-render-return-value",
"no-string-refs",
"no-unknown-property",
"no-unsafe",
"no-unstable-nested-components",
"no-unused-class-component-members",
"no-unused-state",
"no-will-update-set-state",
"prefer-read-only-props",
"prop-types",
"void-dom-elements-no-children"
];
const name$13 = "@eslint-react/disable-conflict-eslint-plugin-react";
const rules$15 = Object.fromEntries(conflictingRules.map((key) => [key, "off"]));
//#endregion
//#region src/configs/disable-dom.ts
var disable_dom_exports = /* @__PURE__ */ __export({
name: () => name$12,
rules: () => rules$14
});
const name$12 = "@eslint-react/disable-dom";
const rules$14 = Object.fromEntries(Object.entries(rules$13).map(([key]) => [key, "off"]));
//#endregion
//#region src/configs/disable-type-checked.ts
var disable_type_checked_exports = /* @__PURE__ */ __export({
name: () => name$11,
rules: () => rules$8
});
const name$11 = "@eslint-react/disable-type-checked";
const rules$8 = {
"@eslint-react/no-leaked-conditional-rendering": "off",
"@eslint-react/no-unused-props": "off",
"@eslint-react/prefer-read-only-props": "off"
};
//#endregion
//#region src/configs/web-api.ts
var web_api_exports = /* @__PURE__ */ __export({
name: () => name$10,
plugins: () => plugins$7,
rules: () => rules$11,
settings: () => settings$6
});
const name$10 = "@eslint-react/web-api";
const rules$11 = {
"@eslint-react/web-api/no-leaked-event-listener": "warn",
"@eslint-react/web-api/no-leaked-interval": "warn",
"@eslint-react/web-api/no-leaked-resize-observer": "warn",
"@eslint-react/web-api/no-leaked-timeout": "warn"
};
const plugins$7 = { "@eslint-react/web-api": reactWebApi };
const settings$6 = { ...settings$8 };
//#endregion
//#region src/configs/disable-web-api.ts
var disable_web_api_exports = /* @__PURE__ */ __export({
name: () => name$9,
rules: () => rules$12
});
const name$9 = "@eslint-react/disable-web-api";
const rules$12 = Object.fromEntries(Object.entries(rules$11).map(([key]) => [key, "off"]));
//#endregion
//#region src/configs/no-deprecated.ts
var no_deprecated_exports = /* @__PURE__ */ __export({
name: () => name$8,
plugins: () => plugins$6,
rules: () => rules$10
});
const name$8 = "@eslint-react/no-deprecated";
const rules$10 = {
"@eslint-react/no-component-will-mount": "error",
"@eslint-react/no-component-will-receive-props": "error",
"@eslint-react/no-component-will-update": "error",
"@eslint-react/no-create-ref": "error",
"@eslint-react/no-forward-ref": "error",
"@eslint-react/dom/no-find-dom-node": "error",
"@eslint-react/dom/no-hydrate": "error",
"@eslint-react/dom/no-render": "error",
"@eslint-react/dom/no-render-return-value": "error"
};
const plugins$6 = {
...plugins$9,
...plugins$10
};
//#endregion
//#region src/configs/off.ts
var off_exports = /* @__PURE__ */ __export({
name: () => name$7,
rules: () => rules$9
});
const name$7 = "@eslint-react/off";
const rules$9 = {
...Object.fromEntries(Object.entries(rules$7).map(([key]) => [key, "off"])),
...rules$8
};
//#endregion
//#region src/configs/recommended.ts
var recommended_exports = /* @__PURE__ */ __export({
name: () => name$6,
plugins: () => plugins$5,
rules: () => rules$6,
settings: () => settings$5
});
const name$6 = "@eslint-react/recommended";
const rules$6 = {
...rules$16,
...rules$13,
...rules$11,
"@eslint-react/hooks-extra/no-direct-set-state-in-use-effect": "warn",
"@eslint-react/naming-convention/context-name": "warn",
"@eslint-react/naming-convention/use-state": "warn"
};
const plugins$5 = {
...plugins$9,
...plugins$10,
...plugins$7,
"@eslint-react/hooks-extra": reactHooksExtra,
"@eslint-react/naming-convention": reactNamingConvention
};
const settings$5 = { ...settings$8 };
//#endregion
//#region src/configs/_ts.ts
/**
* Disables rules that are already handled by TypeScript
*/
const rules$5 = {
"@eslint-react/dom/no-string-style-prop": "off",
"@eslint-react/dom/no-unknown-property": "off",
"@eslint-react/jsx-no-duplicate-props": "off",
"@eslint-react/jsx-no-undef": "off",
"@eslint-react/jsx-uses-react": "off",
"@eslint-react/jsx-uses-vars": "off"
};
//#endregion
//#region src/configs/recommended-typescript.ts
var recommended_typescript_exports = /* @__PURE__ */ __export({
name: () => name$5,
plugins: () => plugins$4,
rules: () => rules$4,
settings: () => settings$4
});
const name$5 = "@eslint-react/recommended-typescript";
const rules$4 = {
...rules$6,
...rules$5
};
const plugins$4 = { ...plugins$5 };
const settings$4 = { ...settings$5 };
//#endregion
//#region src/configs/recommended-type-checked.ts
var recommended_type_checked_exports = /* @__PURE__ */ __export({
name: () => name$4,
plugins: () => plugins$3,
rules: () => rules$3,
settings: () => settings$3
});
const name$4 = "@eslint-react/recommended-type-checked";
const rules$3 = {
...rules$4,
"@eslint-react/no-leaked-conditional-rendering": "error"
};
const plugins$3 = { ...plugins$4 };
const settings$3 = { ...settings$4 };
//#endregion
//#region src/configs/strict.ts
var strict_exports = /* @__PURE__ */ __export({
name: () => name$3,
plugins: () => plugins$2,
rules: () => rules$2,
settings: () => settings$2
});
const name$3 = "@eslint-react/strict";
const rules$2 = {
...rules$6,
"@eslint-react/jsx-no-iife": "error",
"@eslint-react/no-children-prop": "error",
"@eslint-react/no-class-component": "error",
"@eslint-react/no-misused-capture-owner-stack": "error",
"@eslint-react/no-unnecessary-key": "warn",
"@eslint-react/no-unnecessary-use-callback": "warn",
"@eslint-react/no-unnecessary-use-memo": "warn",
"@eslint-react/no-unstable-context-value": "warn",
"@eslint-react/no-unstable-default-props": "warn",
"@eslint-react/no-unused-state": "warn",
"@eslint-react/no-useless-fragment": "warn",
"@eslint-react/prefer-destructuring-assignment": "warn",
"@eslint-react/dom/no-missing-button-type": "warn",
"@eslint-react/dom/no-missing-iframe-sandbox": "warn",
"@eslint-react/dom/no-unsafe-target-blank": "warn"
};
const plugins$2 = { ...plugins$5 };
const settings$2 = { ...settings$5 };
//#endregion
//#region src/configs/strict-typescript.ts
var strict_typescript_exports = /* @__PURE__ */ __export({
name: () => name$2,
plugins: () => plugins$1,
rules: () => rules$1,
settings: () => settings$1
});
const name$2 = "@eslint-react/strict-typescript";
const rules$1 = {
...rules$2,
...rules$4
};
const plugins$1 = { ...plugins$2 };
const settings$1 = { ...settings$2 };
//#endregion
//#region src/configs/strict-type-checked.ts
var strict_type_checked_exports = /* @__PURE__ */ __export({
name: () => name$1,
plugins: () => plugins,
rules: () => rules,
settings: () => settings
});
const name$1 = "@eslint-react/strict-type-checked";
const rules = {
...rules$1,
"@eslint-react/no-leaked-conditional-rendering": "error",
"@eslint-react/no-unused-props": "warn"
};
const plugins = { ...plugins$1 };
const settings = { ...settings$1 };
//#endregion
//#region src/index.ts
const plugin = {
meta: {
name,
version
},
configs: {
["all"]: all_exports,
["disable-conflict-eslint-plugin-react"]: disable_conflict_eslint_plugin_react_exports,
["disable-dom"]: disable_dom_exports,
["disable-type-checked"]: disable_type_checked_exports,
["disable-web-api"]: disable_web_api_exports,
["dom"]: dom_exports,
["no-deprecated"]: no_deprecated_exports,
["off"]: off_exports,
["recommended"]: recommended_exports,
["recommended-type-checked"]: recommended_type_checked_exports,
["recommended-typescript"]: recommended_typescript_exports,
["strict"]: strict_exports,
["strict-type-checked"]: strict_type_checked_exports,
["strict-typescript"]: strict_typescript_exports,
["web-api"]: web_api_exports,
["x"]: x_exports
},
rules: { ...react.rules }
};
var src_default = plugin;
//#endregion
export { src_default as default };