eslint-config-neon
Version:
The ultimate ESLint shareable config
105 lines (104 loc) • 3.48 kB
JavaScript
//#region src/oxlint/react.jsplugins.ts
const config = {
jsPlugins: [{
name: "@neon/eslint-react",
specifier: "eslint-plugin-react"
}, {
name: "@neon/eslint-stylistic",
specifier: "@stylistic/eslint-plugin"
}],
overrides: [{
files: ["**/*.{js,jsx,ts,tsx,cjs,mjs,cts,mts}"],
rules: {
"@neon/eslint-react/boolean-prop-naming": 2,
"@neon/eslint-react/default-props-match-prop-types": 2,
"@neon/eslint-react/destructuring-assignment": 0,
"@neon/eslint-react/forbid-foreign-prop-types": 0,
"@neon/eslint-react/forbid-prop-types": 0,
"@neon/eslint-react/function-component-definition": 0,
"@neon/eslint-react/jsx-indent-props": [2, "tab"],
"@neon/eslint-react/jsx-no-bind": [2, {
allowArrowFunctions: true,
allowBind: false,
ignoreRefs: true
}],
"@neon/eslint-react/jsx-no-literals": 0,
"@neon/eslint-react/jsx-uses-react": 2,
"@neon/eslint-react/jsx-uses-vars": 2,
"@neon/eslint-react/no-access-state-in-setstate": 2,
"@neon/eslint-react/no-adjacent-inline-elements": 0,
"@neon/eslint-react/no-arrow-function-lifecycle": 2,
"@neon/eslint-react/no-deprecated": 2,
"@neon/eslint-react/no-invalid-html-attribute": 2,
"@neon/eslint-react/no-typos": 2,
"@neon/eslint-react/no-unused-class-component-methods": 2,
"@neon/eslint-react/no-unused-prop-types": 2,
"@neon/eslint-react/no-unused-state": 2,
"@neon/eslint-react/prefer-exact-props": 0,
"@neon/eslint-react/prefer-read-only-props": 2,
"@neon/eslint-react/prefer-stateless-function": [2, { ignorePureComponents: true }],
"@neon/eslint-react/prop-types": 2,
"@neon/eslint-react/require-default-props": 0,
"@neon/eslint-react/require-optimization": 0,
"@neon/eslint-react/require-render-return": 2,
"@neon/eslint-react/sort-comp": 2,
"@neon/eslint-react/sort-default-props": 2,
"@neon/eslint-react/sort-prop-types": 2,
"@neon/eslint-react/static-property-placement": 2,
"@neon/eslint-stylistic/jsx-child-element-spacing": 0,
"@neon/eslint-stylistic/jsx-closing-bracket-location": [2, "line-aligned"],
"@neon/eslint-stylistic/jsx-closing-tag-location": 2,
"@neon/eslint-stylistic/jsx-curly-brace-presence": [2, {
children: "never",
props: "never"
}],
"@neon/eslint-stylistic/jsx-curly-newline": 2,
"@neon/eslint-stylistic/jsx-curly-spacing": [
2,
"never",
{ allowMultiline: true }
],
"@neon/eslint-stylistic/jsx-equals-spacing": [2, "never"],
"@neon/eslint-stylistic/jsx-first-prop-new-line": [2, "multiline-multiprop"],
"@neon/eslint-stylistic/jsx-indent": [2, "tab"],
"@neon/eslint-stylistic/jsx-max-props-per-line": [2, {
maximum: 3,
when: "multiline"
}],
"@neon/eslint-stylistic/jsx-newline": [2, { prevent: true }],
"@neon/eslint-stylistic/jsx-one-expression-per-line": 0,
"@neon/eslint-stylistic/jsx-pascal-case": [2, { ignore: [
"h{}",
"h2",
"h3",
"h4",
"h5",
"h6",
"p",
"a",
"ul",
"ol",
"li",
"img",
"div",
"span",
"dl",
"dt",
"dd"
] }],
"@neon/eslint-stylistic/jsx-props-no-multi-spaces": 2,
"@neon/eslint-stylistic/jsx-sort-props": 2,
"@neon/eslint-stylistic/jsx-tag-spacing": [2, {
afterOpening: "never",
beforeSelfClosing: "always",
closingSlash: "never"
}],
"@neon/eslint-stylistic/jsx-wrap-multilines": 0
}
}],
rules: {},
plugins: []
};
//#endregion
export { config as default };
//# sourceMappingURL=react.jsplugins.mjs.map