1 line
No EOL
3.7 KiB
JavaScript
1 line
No EOL
3.7 KiB
JavaScript
import{Linter as e}from"eslint";import{defineConfig as t,globalIgnores as n}from"eslint/config";import r from"globals";import i from"@eslint/js";import a from"eslint-plugin-jsdoc";import o from"eslint-plugin-functional";import s from"typescript-eslint";import c from"eslint-plugin-sonarjs";import l from"eslint-plugin-perfectionist";import u from"eslint-plugin-unicorn";const d={name:`JavaScript`,rules:{...i.configs.recommended.rules,"array-callback-return":[`error`,{allowVoid:!0,checkForEach:!0}],"no-nested-ternary":`off`,"no-unassigned-vars":`error`,"no-unneeded-ternary":[`error`,{defaultAssignment:!1}],"no-unreachable-loop":`error`,"no-use-before-define":`off`,"no-useless-assignment":`error`,yoda:[`error`,`never`]}},f=a.configs[`flat/recommended-typescript`],p=a.configs[`flat/stylistic-typescript`],m={name:`JSDoc`,plugins:f.plugins??{},rules:{...f.rules,...p.rules,"jsdoc/check-indentation":`warn`,"jsdoc/check-line-alignment":`warn`,"jsdoc/check-tag-names":[`warn`,{definedTags:[`link`]}],"jsdoc/lines-before-block":`off`,"jsdoc/no-blank-block-descriptions":`warn`,"jsdoc/no-blank-blocks":`warn`,"jsdoc/require-hyphen-before-param-description":[`warn`,`always`],"jsdoc/require-throws":`warn`,"jsdoc/sort-tags":`warn`,"jsdoc/tag-lines":`off`}},h={name:`Programmation fonctionnelle`,plugins:{functional:o},rules:{...o.configs.noExceptions.rules,...o.configs.noMutations.rules,...o.configs.externalTypeScriptRecommended.rules,...o.configs.stylistic.rules,"@typescript-eslint/array-type":[`error`,{default:`generic`,readonly:`generic`}],"functional/prefer-immutable-types":`off`,"functional/prefer-tacit":`off`,"functional/readonly-type":[`error`,`generic`],"functional/type-declaration-immutability":`off`}},g={name:`SonarJS`,plugins:c.configs.recommended.plugins??{},rules:{...c.configs.recommended.rules,"sonarjs/arguments-usage":`error`,"sonarjs/no-collapsible-if":`error`,"sonarjs/no-duplicate-string":`error`,"sonarjs/no-inconsistent-returns":`error`,"sonarjs/no-nested-switch":`error`,"sonarjs/prefer-immediate-return":`error`}},_={name:`Tri`,plugins:l.configs[`recommended-natural`].plugins??{},rules:l.configs[`recommended-natural`].rules??{}},v=(e,t)=>e.find(e=>e.name===t)??{},y=v(s.configs.strictTypeChecked,`typescript-eslint/base`),b=v(s.configs.strictTypeChecked,`typescript-eslint/eslint-recommended`),x=v(s.configs.strictTypeChecked,`typescript-eslint/strict-type-checked`),S=v(s.configs.stylisticTypeChecked,`typescript-eslint/stylistic-type-checked`),C={languageOptions:y.languageOptions??{},name:`TypeScript`,plugins:y.plugins??{},rules:{...b.rules,...x.rules,...S.rules,"@typescript-eslint/consistent-type-definitions":[`error`,`type`],"@typescript-eslint/max-params":[`error`,{max:3}],"@typescript-eslint/method-signature-style":[`off`,`property`],"@typescript-eslint/no-magic-numbers":`off`,"@typescript-eslint/no-unnecessary-boolean-literal-compare":`off`,"@typescript-eslint/no-unnecessary-type-parameters":`off`}},w={name:`Unicorn`,plugins:{unicorn:u},rules:{...u.configs.unopinionated.rules,"unicorn/catch-error-name":[`error`],"unicorn/consistent-empty-array-spread":[`error`],"unicorn/custom-error-definition":[`error`],"unicorn/explicit-length-check":[`error`,{"non-zero":`not-equal`}],"unicorn/no-negated-condition":`error`,"unicorn/no-nested-ternary":`error`,"unicorn/no-null":`error`}},T=t([n([`dist/**/*`],`Ignore le dossier de compilation`),{files:[`**/*.js`,`**/*.ts`],name:`Fichiers à analyser`},{languageOptions:{ecmaVersion:`latest`,globals:{...r.browser,...r.builtin,...r.es2026,...r.node},parserOptions:{ecmaVersion:`latest`,projectService:!0,sourceType:`module`,tsconfigRootDir:import.meta.dirname}},name:`Configuration du projet`},d,C,h,w,g,m,_]);export{T as configTypescriptNavigateur}; |