UNPKG

@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
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 };