UNPKG

@bassist/eslint

Version:

Flat ESLint config for JavaScript, TypeScript, Vue, React, Prettier and so on by @chengpeiquan .

10 lines (9 loc) 11.5 kB
/** * name: @bassist/eslint * version: v0.7.1 * description: Flat ESLint config for JavaScript, TypeScript, Vue, React, Prettier and so on by @chengpeiquan . * author: chengpeiquan <chengpeiquan@chengpeiquan.com> * homepage: https://github.com/chengpeiquan/bassist/tree/eslint%400.7.0/packages/eslint * license: MIT */ "use strict";var N=Object.create;var f=Object.defineProperty;var U=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var J=Object.getPrototypeOf,M=Object.prototype.hasOwnProperty;var V=(e,n)=>{for(var i in n)f(e,i,{get:n[i],enumerable:!0})},G=(e,n,i,b)=>{if(n&&typeof n=="object"||typeof n=="function")for(let l of A(n))!M.call(e,l)&&l!==i&&f(e,l,{get:()=>n[l],enumerable:!(b=U(n,l))||b.enumerable});return e};var r=(e,n,i)=>(i=e!=null?N(J(e)):{},G(n||!e||!e.__esModule?f(i,"default",{value:e,enumerable:!0}):i,e)),I=e=>G(f({},"__esModule",{value:!0}),e);var ur={};V(ur,{antfuPlugin:()=>O.default,defineConfig:()=>B.defineFlatConfig,defineFlatConfig:()=>B.defineFlatConfig,importPlugin:()=>x.default,imports:()=>Q,js:()=>Y,jsx:()=>z,markdown:()=>rr,markdownPlugin:()=>L.default,prettier:()=>er,prettierPlugin:()=>v.default,react:()=>nr,reactPlugin:()=>S.default,reactivityTransform:()=>D,tsParser:()=>a,tsPlugin:()=>t.default,typescript:()=>u,unicorn:()=>tr,unicornPlugin:()=>C.default,unocss:()=>sr,vue:()=>cr,vueLegacy:()=>lr,vueParser:()=>E.default,vuePlugin:()=>o.default});module.exports=I(ur);var B=require("eslint-define-config");var x=r(require("eslint-plugin-import")),O=r(require("eslint-plugin-antfu"));var h="?([cm])[jt]s?(x)",c="**/*.?([cm])[jt]s?(x)",F="**/*.?([cm])js",R="**/*.?([cm])jsx",m="**/*.?([cm])ts",d="**/*.?([cm])tsx";var p="**/*.md",g="**/*.vue";var K="**/node_modules",W="**/dist",H=["**/package-lock.json","**/yarn.lock","**/pnpm-lock.yaml"],s=[K,W,...H,"**/output","**/coverage","**/temp","**/fixtures","**/.vitepress/cache","**/.nuxt","**/.vercel","**/.changeset","**/.idea","**/.output","**/.vite-inspect","**/.svelte-kit","**/CHANGELOG*.md","**/*.min.*","**/LICENSE*","**/__snapshots__","**/auto-import?(s).d.ts","**/components.d.ts"];var Q=[{plugins:{import:x.default,antfu:O.default},settings:{"import/resolver":{node:{extensions:[".js",".mjs",".ts",".mts",".d.ts"]}}},rules:{"import/first":"error","import/no-mutable-exports":"error","import/no-duplicates":"error","import/order":["error",{groups:["builtin","external","internal","parent","sibling","index","object","type"],pathGroups:[{pattern:"@/**",group:"internal"}],pathGroupsExcludedImportTypes:["type"]}],"import/no-default-export":"error","antfu/import-dedupe":"error","antfu/prefer-inline-type-import":"error"}},{files:[`**/*config*.${h}`,`**/views/${c}`,`**/pages/${c}`,"**/{index,vite,esbuild,rollup,webpack,rspack}.ts","**/*.d.ts",`${p}/**`],plugins:{import:x.default},rules:{"import/no-default-export":"off"}}];var y=r(require("globals")),k=r(require("@eslint/js")),Y=[k.default.configs.recommended,{languageOptions:{globals:{...y.default.browser,...y.default.es2021,...y.default.node},sourceType:"module"},rules:{"no-unused-vars":["error",{args:"none",ignoreRestSiblings:!0}],"no-constant-condition":"warn","no-debugger":"warn","no-console":["warn",{allow:["warn","error"]}],"no-restricted-syntax":["error","ForInStatement","LabeledStatement","WithStatement"],"no-return-await":"warn","no-empty":["error",{allowEmptyCatch:!0}],"sort-imports":["error",{ignoreCase:!1,ignoreDeclarationSort:!0,ignoreMemberSort:!1,memberSyntaxSortOrder:["none","all","multiple","single"],allowSeparatedGroups:!1}],"dot-notation":"warn","no-var":"error","prefer-const":["warn",{destructuring:"all",ignoreReadBeforeAssign:!0}],"prefer-arrow-callback":["error",{allowNamedFunctions:!1,allowUnboundThis:!0}],"object-shorthand":["error","always",{ignoreConstructors:!1,avoidQuotes:!0}],"prefer-rest-params":"error","prefer-spread":"error","prefer-template":"error","require-await":"error","array-callback-return":"error","block-scoped-var":"error",eqeqeq:["error","smart"],"no-alert":"warn","no-case-declarations":"error","no-fallthrough":["warn",{commentPattern:"break[\\s\\w]*omitted"}],"no-multi-str":"error","no-with":"error","no-void":"error","no-duplicate-imports":"error","no-unused-expressions":["error",{allowShortCircuit:!0,allowTernary:!0,allowTaggedTemplates:!0}],"no-lonely-if":"error","prefer-exponentiation-operator":"error"}},{files:["**/scripts/*","**/cli.*"],rules:{"no-console":"off"}},{files:["**/*.{test,spec}.js?(x)"],rules:{"no-unused-expressions":"off"}}],z=[{files:["**/*.jsx"],languageOptions:{parserOptions:{ecmaFeatures:{jsx:!0}}}}];var L=r(require("eslint-plugin-markdown"));var j=r(require("@typescript-eslint/parser")),t=r(require("@typescript-eslint/eslint-plugin"));var a=j.default;var T=t.default.configs,Z=T["eslint-recommended"],u=[{files:[m,d],languageOptions:{parser:a,parserOptions:{sourceType:"module"}},plugins:{"@typescript-eslint":t.default},rules:{...Z.overrides[0].rules,...T.strict.rules,"@typescript-eslint/no-redeclare":"error","@typescript-eslint/ban-ts-comment":"off","@typescript-eslint/ban-types":"off","@typescript-eslint/consistent-type-imports":["error",{fixStyle:"inline-type-imports",disallowTypeAnnotations:!1}],"@typescript-eslint/no-explicit-any":"off","@typescript-eslint/no-non-null-assertion":"off","@typescript-eslint/prefer-as-const":"warn"}},{files:["**/*.d.ts"],rules:{"import/no-duplicates":"off"}},{files:["**/*.{test,spec}.ts?(x)"],rules:{"no-unused-expressions":"off"}},{files:["**/*.js","**/*.cjs"],rules:{"@typescript-eslint/no-var-requires":"off"}}];var rr=[{files:[p],plugins:{markdown:L.default},processor:"markdown/markdown"},{files:[`${p}/${c}`,`${p}/${g}`],languageOptions:{parserOptions:{ecmaFeatures:{impliedStrict:!0}}},plugins:{"@typescript-eslint":t.default},rules:{...L.default.configs.recommended.overrides[1].rules,"@typescript-eslint/no-redeclare":"off","@typescript-eslint/no-unused-vars":"off","@typescript-eslint/no-use-before-define":"off","@typescript-eslint/no-var-requires":"off","@typescript-eslint/no-extraneous-class":"off","no-alert":"off","no-console":"off","no-restricted-imports":"off","no-undef":"off","no-unused-expressions":"off","no-unused-vars":"off"},ignores:[...s]}];var v=r(require("eslint-plugin-prettier")),P=r(require("eslint-config-prettier"));var er=[{plugins:{prettier:v.default},rules:{...P.default.rules,...v.default.configs.recommended.rules,"prettier/prettier":"warn"},ignores:[...s]}];var $=r(require("globals")),S=r(require("eslint-plugin-react")),w=r(require("eslint-plugin-react-hooks")),q=r(require("eslint-plugin-react-refresh"));var or={"react/jsx-uses-react":"error","react/jsx-uses-vars":"error"},nr=[{settings:{react:{version:"detect"}},files:[F,R,m,d],plugins:{react:S.default,"react-hooks":w.default,"react-refresh":q.default,"@typescript-eslint":t.default},languageOptions:{ecmaVersion:"latest",parser:a,parserOptions:{sourceType:"module",ecmaFeatures:{jsx:!0}},globals:{...$.default.browser}},rules:{...u[0].rules,...S.default.configs.recommended.rules,...w.default.configs.recommended.rules,...or},ignores:[...s]}];var C=r(require("eslint-plugin-unicorn"));var tr=[{plugins:{unicorn:C.default},rules:{"unicorn/better-regex":"error","unicorn/catch-error-name":"error","unicorn/custom-error-definition":"error","unicorn/error-message":"error","unicorn/escape-case":"error","unicorn/explicit-length-check":"error","unicorn/filename-case":["error",{cases:{kebabCase:!0,pascalCase:!0},ignore:[/^[A-Z]+\..*$/]}],"unicorn/new-for-builtins":"error","unicorn/no-array-callback-reference":"error","unicorn/no-array-method-this-argument":"error","unicorn/no-array-push-push":"error","unicorn/no-console-spaces":"error","unicorn/no-for-loop":"error","unicorn/no-hex-escape":"error","unicorn/no-instanceof-array":"error","unicorn/no-invalid-remove-event-listener":"error","unicorn/no-lonely-if":"error","unicorn/no-new-array":"error","unicorn/no-new-buffer":"error","unicorn/no-static-only-class":"error","unicorn/no-unnecessary-await":"error","unicorn/no-zero-fractions":"error","unicorn/prefer-add-event-listener":"error","unicorn/prefer-array-find":"error","unicorn/prefer-array-flat-map":"error","unicorn/prefer-array-index-of":"error","unicorn/prefer-array-some":"error","unicorn/prefer-at":"error","unicorn/prefer-blob-reading-methods":"error","unicorn/prefer-date-now":"error","unicorn/prefer-dom-node-append":"error","unicorn/prefer-dom-node-dataset":"error","unicorn/prefer-dom-node-remove":"error","unicorn/prefer-dom-node-text-content":"error","unicorn/prefer-includes":"error","unicorn/prefer-keyboard-event-key":"error","unicorn/prefer-math-trunc":"error","unicorn/prefer-modern-dom-apis":"error","unicorn/prefer-modern-math-apis":"error","unicorn/prefer-negative-index":"error","unicorn/prefer-node-protocol":"error","unicorn/prefer-number-properties":"error","unicorn/prefer-optional-catch-binding":"error","unicorn/prefer-prototype-methods":"error","unicorn/prefer-query-selector":"error","unicorn/prefer-reflect-apply":"error","unicorn/prefer-regexp-test":"error","unicorn/prefer-string-replace-all":"error","unicorn/prefer-string-slice":"error","unicorn/prefer-string-starts-ends-with":"error","unicorn/prefer-string-trim-start-end":"error","unicorn/prefer-top-level-await":"error","unicorn/prefer-type-error":"error","unicorn/throw-new-error":"error"}}];var _=r(require("@unocss/eslint-plugin")),sr=[{plugins:{"@unocss":_.default},rules:{..._.default.configs.recommended.rules}}];var E=r(require("vue-eslint-parser")),o=r(require("eslint-plugin-vue"));var D=[{languageOptions:{globals:{$:"readonly",$$:"readonly",$computed:"readonly",$customRef:"readonly",$ref:"readonly",$shallowRef:"readonly",$toRef:"readonly"}},plugins:{vue:o.default},rules:{"vue/no-setup-props-destructure":"off"}}],ir={"vue/component-tags-order":["off",{order:["script","template","style"]}],"vue/custom-event-name-casing":["error","camelCase"],"vue/eqeqeq":["error","smart"],"vue/html-self-closing":["error",{html:{void:"always",normal:"always",component:"always"},svg:"always",math:"always"}],"vue/max-attributes-per-line":"off","vue/multi-word-component-names":"off","vue/no-constant-condition":"warn","vue/no-empty-pattern":"error","vue/no-loss-of-precision":"error","vue/no-unused-refs":"error","vue/no-useless-v-bind":"error","vue/no-v-html":"off","vue/object-shorthand":["error","always",{ignoreConstructors:!1,avoidQuotes:!0}],"vue/padding-line-between-blocks":["error","always"],"vue/prefer-template":"error","vue/require-prop-types":"off","vue/require-default-prop":"off"},pr={...o.default.configs.base.rules,...o.default.configs["vue3-essential"].rules,...o.default.configs["vue3-strongly-recommended"].rules,...o.default.configs["vue3-recommended"].rules},ar={...o.default.configs.base.rules,...o.default.configs.essential.rules,...o.default.configs["strongly-recommended"].rules,...o.default.configs.recommended.rules};function X(e){return[{files:[g],plugins:{vue:o.default,"@typescript-eslint":t.default},languageOptions:{ecmaVersion:"latest",parser:E.default,parserOptions:{parser:a,sourceType:"module",extraFileExtensions:[".vue"],ecmaFeatures:{jsx:!0}}},processor:o.default.processors[".vue"],rules:{...u[0].rules},ignores:[...s]},{plugins:{vue:o.default},rules:{...e,...ir},ignores:[...s]},...D]}var lr=X(ar),cr=X(pr);0&&(module.exports={antfuPlugin,defineConfig,defineFlatConfig,importPlugin,imports,js,jsx,markdown,markdownPlugin,prettier,prettierPlugin,react,reactPlugin,reactivityTransform,tsParser,tsPlugin,typescript,unicorn,unicornPlugin,unocss,vue,vueLegacy,vueParser,vuePlugin});