UNPKG

eslint-config-neon

Version:

The ultimate ESLint shareable config

103 lines (101 loc) 2.76 kB
import eslintPluginReact from "eslint-plugin-react"; import eslintPluginReactRefresh from "eslint-plugin-react-refresh"; //#region src/jsx.ts const config = [{ languageOptions: { parserOptions: { ecmaFeatures: { jsx: true } } }, plugins: { "react-refresh": eslintPluginReactRefresh, react: eslintPluginReact }, rules: { "react/jsx-boolean-value": [2, "never"], "react/jsx-filename-extension": 0, "react/jsx-fragments": [2, "syntax"], "react/jsx-handler-names": [2, { checkInlineFunction: false, checkLocalVariables: false, eventHandlerPrefix: "handle", eventHandlerPropPrefix: "on" }], "react/jsx-indent-props": [2, "tab"], "react/jsx-key": [2, { checkFragmentShorthand: true, checkKeyMustBeforeSpread: true }], "react/jsx-max-depth": 0, "react/jsx-no-bind": [2, { allowArrowFunctions: true, allowBind: false, ignoreRefs: true }], "react/jsx-no-comment-textnodes": 2, "react/jsx-no-constructed-context-values": 2, "react/jsx-no-duplicate-props": 2, "react/jsx-no-literals": 0, "react/jsx-no-script-url": 2, "react/jsx-no-target-blank": 2, "react/jsx-no-undef": 2, "react/jsx-no-useless-fragment": [2, { allowExpressions: true }], "react/jsx-props-no-spreading": 0, "react/jsx-uses-react": 2, "react/jsx-uses-vars": 2, "react-refresh/only-export-components": 1, "unicorn/consistent-function-scoping": 0, "@stylistic/jsx-child-element-spacing": 0, "@stylistic/jsx-closing-bracket-location": [2, "line-aligned"], "@stylistic/jsx-closing-tag-location": 2, "@stylistic/jsx-curly-brace-presence": [2, { children: "never", props: "never" }], "@stylistic/jsx-curly-newline": 2, "@stylistic/jsx-curly-spacing": [ 2, "never", { allowMultiline: true } ], "@stylistic/jsx-equals-spacing": [2, "never"], "@stylistic/jsx-first-prop-new-line": [2, "multiline-multiprop"], "@stylistic/jsx-max-props-per-line": [2, { maximum: 3, when: "multiline" }], "@stylistic/jsx-newline": [2, { prevent: true }], "@stylistic/jsx-one-expression-per-line": 0, "@stylistic/jsx-pascal-case": [2, { ignore: [ "h{}", "h2", "h3", "h4", "h5", "h6", "p", "a", "ul", "ol", "li", "img", "div", "span", "dl", "dt", "dd" ] }], "@stylistic/jsx-props-no-multi-spaces": 2, "@stylistic/jsx-sort-props": 2, "@stylistic/jsx-tag-spacing": [2, { afterOpening: "never", beforeSelfClosing: "always", closingSlash: "never" }], "@stylistic/jsx-wrap-multilines": 0, "@stylistic/jsx-indent": [2, "tab"] }, settings: { "import-x/extensions": [".js", ".jsx"], "import-x/resolver": { node: { extensions: [".js", ".jsx"] } } } }]; //#endregion export { config as default }; //# sourceMappingURL=jsx.mjs.map