UNPKG

eslint-config-neon

Version:

The ultimate ESLint shareable config

1 lines 4.91 kB
{"version":3,"file":"jsx.mjs","names":[],"sources":["../../src/jsx.ts"],"sourcesContent":["import type { TSESLint } from '@typescript-eslint/utils';\nimport eslintPluginReact from 'eslint-plugin-react';\nimport eslintPluginReactRefresh from 'eslint-plugin-react-refresh';\n\nconst rules: TSESLint.FlatConfig.Rules = {\n\t// React\n\t'react/jsx-boolean-value': [2, 'never'],\n\t'react/jsx-filename-extension': 0,\n\t'react/jsx-fragments': [2, 'syntax'],\n\t'react/jsx-handler-names': [\n\t\t2,\n\t\t{\n\t\t\tcheckInlineFunction: false,\n\t\t\tcheckLocalVariables: false,\n\t\t\teventHandlerPrefix: 'handle',\n\t\t\teventHandlerPropPrefix: 'on',\n\t\t},\n\t],\n\t'react/jsx-indent-props': [2, 'tab'],\n\t'react/jsx-key': [\n\t\t2,\n\t\t{\n\t\t\tcheckFragmentShorthand: true,\n\t\t\tcheckKeyMustBeforeSpread: true,\n\t\t},\n\t],\n\t'react/jsx-max-depth': 0,\n\t'react/jsx-no-bind': [\n\t\t2,\n\t\t{\n\t\t\tallowArrowFunctions: true,\n\t\t\tallowBind: false,\n\t\t\tignoreRefs: true,\n\t\t},\n\t],\n\t'react/jsx-no-comment-textnodes': 2,\n\t'react/jsx-no-constructed-context-values': 2,\n\t'react/jsx-no-duplicate-props': 2,\n\t'react/jsx-no-literals': 0,\n\t'react/jsx-no-script-url': 2,\n\t'react/jsx-no-target-blank': 2,\n\t'react/jsx-no-undef': 2,\n\t'react/jsx-no-useless-fragment': [\n\t\t2,\n\t\t{\n\t\t\tallowExpressions: true,\n\t\t},\n\t],\n\t'react/jsx-props-no-spreading': 0,\n\t'react/jsx-uses-react': 2,\n\t'react/jsx-uses-vars': 2,\n\n\t// React Refresh\n\t'react-refresh/only-export-components': 1,\n\n\t// Unicorn\n\t// We disable this because in React it's a common thing to have functions in functions\n\t'unicorn/consistent-function-scoping': 0,\n\n\t// Stylistic\n\t'@stylistic/jsx-child-element-spacing': 0,\n\t'@stylistic/jsx-closing-bracket-location': [2, 'line-aligned'],\n\t'@stylistic/jsx-closing-tag-location': 2,\n\t'@stylistic/jsx-curly-brace-presence': [\n\t\t2,\n\t\t{\n\t\t\tchildren: 'never',\n\t\t\tprops: 'never',\n\t\t},\n\t],\n\t'@stylistic/jsx-curly-newline': 2,\n\t'@stylistic/jsx-curly-spacing': [\n\t\t2,\n\t\t'never',\n\t\t{\n\t\t\tallowMultiline: true,\n\t\t},\n\t],\n\t'@stylistic/jsx-equals-spacing': [2, 'never'],\n\t'@stylistic/jsx-first-prop-new-line': [2, 'multiline-multiprop'],\n\t'@stylistic/jsx-max-props-per-line': [\n\t\t2,\n\t\t{\n\t\t\tmaximum: 3,\n\t\t\twhen: 'multiline',\n\t\t},\n\t],\n\t'@stylistic/jsx-newline': [\n\t\t2,\n\t\t{\n\t\t\tprevent: true,\n\t\t},\n\t],\n\t'@stylistic/jsx-one-expression-per-line': 0,\n\t'@stylistic/jsx-pascal-case': [\n\t\t2,\n\t\t{\n\t\t\tignore: ['h{}', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'a', 'ul', 'ol', 'li', 'img', 'div', 'span', 'dl', 'dt', 'dd'],\n\t\t},\n\t],\n\t'@stylistic/jsx-props-no-multi-spaces': 2,\n\t'@stylistic/jsx-sort-props': 2,\n\t'@stylistic/jsx-tag-spacing': [\n\t\t2,\n\t\t{\n\t\t\tafterOpening: 'never',\n\t\t\tbeforeSelfClosing: 'always',\n\t\t\tclosingSlash: 'never',\n\t\t},\n\t],\n\t'@stylistic/jsx-wrap-multilines': 0,\n\t'@stylistic/jsx-indent': [2, 'tab'],\n};\n\nconst settings: TSESLint.FlatConfig.Settings = {\n\t'import-x/extensions': ['.js', '.jsx'],\n\t'import-x/resolver': {\n\t\tnode: {\n\t\t\textensions: ['.js', '.jsx'],\n\t\t},\n\t},\n};\n\nconst config: TSESLint.FlatConfig.ConfigArray = [\n\t{\n\t\tlanguageOptions: {\n\t\t\tparserOptions: {\n\t\t\t\tecmaFeatures: {\n\t\t\t\t\tjsx: true,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tplugins: {\n\t\t\t'react-refresh': eslintPluginReactRefresh,\n\t\t\treact: eslintPluginReact,\n\t\t},\n\t\trules,\n\t\tsettings,\n\t},\n];\n\nexport default config;\n"],"mappings":";;;;AA2HA,MAAM,SAA0C,CAC/C;CACC,iBAAiB,EAChB,eAAe,EACd,cAAc,EACb,KAAK,KACN,EACD,EACD;CACA,SAAS;EACR,iBAAiB;EACjB,OAAO;CACR;CACA;EAlID,2BAA2B,CAAC,GAAG,OAAO;EACtC,gCAAgC;EAChC,uBAAuB,CAAC,GAAG,QAAQ;EACnC,2BAA2B,CAC1B,GACA;GACC,qBAAqB;GACrB,qBAAqB;GACrB,oBAAoB;GACpB,wBAAwB;EACzB,CACD;EACA,0BAA0B,CAAC,GAAG,KAAK;EACnC,iBAAiB,CAChB,GACA;GACC,wBAAwB;GACxB,0BAA0B;EAC3B,CACD;EACA,uBAAuB;EACvB,qBAAqB,CACpB,GACA;GACC,qBAAqB;GACrB,WAAW;GACX,YAAY;EACb,CACD;EACA,kCAAkC;EAClC,2CAA2C;EAC3C,gCAAgC;EAChC,yBAAyB;EACzB,2BAA2B;EAC3B,6BAA6B;EAC7B,sBAAsB;EACtB,iCAAiC,CAChC,GACA,EACC,kBAAkB,KACnB,CACD;EACA,gCAAgC;EAChC,wBAAwB;EACxB,uBAAuB;EAGvB,wCAAwC;EAIxC,uCAAuC;EAGvC,wCAAwC;EACxC,2CAA2C,CAAC,GAAG,cAAc;EAC7D,uCAAuC;EACvC,uCAAuC,CACtC,GACA;GACC,UAAU;GACV,OAAO;EACR,CACD;EACA,gCAAgC;EAChC,gCAAgC;GAC/B;GACA;GACA,EACC,gBAAgB,KACjB;EACD;EACA,iCAAiC,CAAC,GAAG,OAAO;EAC5C,sCAAsC,CAAC,GAAG,qBAAqB;EAC/D,qCAAqC,CACpC,GACA;GACC,SAAS;GACT,MAAM;EACP,CACD;EACA,0BAA0B,CACzB,GACA,EACC,SAAS,KACV,CACD;EACA,0CAA0C;EAC1C,8BAA8B,CAC7B,GACA,EACC,QAAQ;GAAC;GAAO;GAAM;GAAM;GAAM;GAAM;GAAM;GAAK;GAAK;GAAM;GAAM;GAAM;GAAO;GAAO;GAAQ;GAAM;GAAM;EAAI,EACjH,CACD;EACA,wCAAwC;EACxC,6BAA6B;EAC7B,8BAA8B,CAC7B,GACA;GACC,cAAc;GACd,mBAAmB;GACnB,cAAc;EACf,CACD;EACA,kCAAkC;EAClC,yBAAyB,CAAC,GAAG,KAAK;CAyB7B;CACJ;EAtBD,uBAAuB,CAAC,OAAO,MAAM;EACrC,qBAAqB,EACpB,MAAM,EACL,YAAY,CAAC,OAAO,MAAM,EAC3B,EACD;CAiBQ;AACR,CACD"}