UNPKG

@dovenv/eslint-config

Version:
2 lines (1 loc) 8.13 kB
import*as h from"eslint-plugin-css";import{fixupPluginRules as e,includeIgnoreFile as j}from"@eslint/compat";import x from"@eslint/js";import n from"@stylistic/eslint-plugin";import k from"eslint-plugin-align-assignments";import $ from"eslint-plugin-align-import";import v from"eslint-plugin-canonical";import C from"eslint-plugin-import";import i from"eslint-plugin-jsdoc";import q from"eslint-plugin-promise";import t from"globals";export{default as globals}from"globals";import o from"typescript-eslint";import I from"@html-eslint/eslint-plugin";import O from"eslint-plugin-html";import{resolve as P}from"node:path";import E from"eslint-plugin-jsonc";import _ from"eslint-plugin-package-json/configs/recommended";import F from"jsonc-eslint-parser";import l from"eslint-plugin-markdownlint";import R from"eslint-plugin-markdownlint/parser.js";import T from"eslint-plugin-json-schema-validator";import A from"eslint-plugin-toml";import S from"eslint-plugin-vue";import B from"eslint-plugin-yml";const a=[h.configs["flat/standard"]],D=(r=import.meta.dirname)=>({languageOptions:{parserOptions:{projectService:!0,tsconfigRootDir:r}}}),s=[x.configs.recommended,n.configs["recommended-flat"],q.configs["flat/recommended"],{languageOptions:{globals:{...t.browser,...t.node,...t.jquery}},plugins:{import:e(C),canonical:e(v),"align-import":e($),"align-assignments":e(k),"@stylistic":n},rules:{camelcase:"warn","vars-on-top":"warn","default-case-last":"error","default-case":"error","no-prototype-builtins":"off","no-inline-comments":"off","no-unused-vars":["error",{args:"all",argsIgnorePattern:"^_",caughtErrorsIgnorePattern:"^_",ignoreRestSiblings:!0}],"one-var":["error",{var:"always",let:"always",const:"never"}],"prefer-const":["error",{destructuring:"any",ignoreReadBeforeAssign:!1}],"func-style":["error","declaration",{allowArrowFunctions:!0}],"prefer-arrow-callback":"error","no-async-promise-executor":"off","@stylistic/key-spacing":["error",{multiLine:{beforeColon:!0,afterColon:!0},align:{beforeColon:!0,afterColon:!0,on:"colon"}}],"@stylistic/switch-colon-spacing":["error",{after:!0,before:!0}],"@stylistic/comma-dangle":["error","always-multiline"],"@stylistic/comma-spacing":["error",{after:!0}],"@stylistic/no-multiple-empty-lines":["error",{max:1,maxEOF:1,maxBOF:1}],"@stylistic/padded-blocks":["error","always"],"@stylistic/space-in-parens":["error","always"],"@stylistic/object-curly-spacing":["error","always"],"@stylistic/object-curly-newline":["error",{minProperties:2}],"@stylistic/object-property-newline":["error",{allowMultiplePropertiesPerLine:!1}],"@stylistic/array-bracket-spacing":["error","always"],"@stylistic/array-bracket-newline":["error",{multiline:!0,minItems:3}],"@stylistic/array-element-newline":["error",{multiline:!0,minItems:3}],"@stylistic/keyword-spacing":["error",{after:!0}],"@stylistic/indent":["error","tab"],"@stylistic/indent-binary-ops":["error","tab"],"@stylistic/no-tabs":"off","@stylistic/spaced-comment":"off","@stylistic/linebreak-style":["error","unix"],"@stylistic/semi":["error","never"],"@stylistic/operator-linebreak":["error","before"],"@stylistic/arrow-parens":["error","as-needed"],"@stylistic/eol-last":["error","always"],"@stylistic/space-infix-ops":"error","@stylistic/no-multi-spaces":["error",{exceptions:{ImportDeclaration:!0,VariableDeclarator:!0,AssignmentExpression:!0}}],"@stylistic/type-annotation-spacing":"off","import/newline-after-import":"error","import/order":["error",{groups:[["builtin","external"],["internal","parent","sibling","index","object"],["type"]],alphabetize:{order:"asc",caseInsensitive:!0},"newlines-between":"always",warnOnUnassignedImports:!0}],"align-import/align-import":"error","align-import/trim-import":"error","align-assignments/align-assignments":["error"],"canonical/import-specifier-newline":"error","canonical/export-specifier-newline":"error"}}],c=o.config(...s,o.configs.recommended,{rules:{"no-unused-vars":"off","@typescript-eslint/no-unused-vars":["error",{args:"all",argsIgnorePattern:"^_",caughtErrors:"all",caughtErrorsIgnorePattern:"^_",destructuredArrayIgnorePattern:"^_",varsIgnorePattern:"^_",ignoreRestSiblings:!0}],"@typescript-eslint/ban-ts-comment":["error",{"ts-ignore":!1}],"@typescript-eslint/prefer-as-const":"error","@typescript-eslint/method-signature-style":"error","no-unused-expressions":"off","@typescript-eslint/no-unused-expressions":"off","no-empty-function":"off","@typescript-eslint/no-empty-function":"off","@typescript-eslint/consistent-type-imports":"off","@typescript-eslint/no-useless-empty-export":"error","@stylistic/no-multi-spaces":"off"}}),m=[...s,...c,{files:["**/*.svelte"],languageOptions:{parserOptions:{parser:o.parser}}},i.configs["flat/recommended"],{files:["*.{js,cjs,mjs,jsx,ts,cts,mts,tsx}"],plugins:{jsdoc:i},rules:{"jsdoc/sort-tags":"error","jsdoc/require-jsdoc":["error",{require:{}}],"jsdoc/require-description":["error",{descriptionStyle:"body"}],"jsdoc/require-hyphen-before-param-description":["error","always"],"jsdoc/check-indentation":"error","jsdoc/check-line-alignment":["error","always"],"jsdoc/require-description-complete-sentence":["error"],"jsdoc/require-example":"error"}},{files:["**/*.cjs","**/*.cts"],languageOptions:{globals:{...t.commonjs},sourceType:"commonjs"},rules:{"@typescript-eslint/no-require-imports":"off"}},{files:["**/*.mjs","**/*.mts"],languageOptions:{globals:{...t.es2025},sourceType:"module"}}],L=r=>({...I.configs["flat/recommended"],rules:{"@html-eslint/indent":["error","tab"],"@html-eslint/sort-attrs":["error"],"@html-eslint/quotes":["error","double"],"@html-eslint/element-newline":["error",{skip:["li"]}],"@html-eslint/attrs-newline":"error","@html-eslint/no-script-style-type":"error","@html-eslint/no-duplicate-id":"error","@html-eslint/no-obsolete-tags":"error","@html-eslint/require-li-container":"error","@html-eslint/no-multiple-h1":"error","@html-eslint/require-attrs":["error",{tag:"img",attr:"alt"},{tag:"img",attr:"src"},{tag:"svg",attr:"viewBox"}],...r||{}}}),p=[{files:["**/*.html","**/*.we"],plugins:{htmlPlugin:O},languageOptions:{sourceType:"module"},settings:{"html/xtml-extensions":[".html"],"html/html-extensions":[".html",".we"],"html/indent":"tab","html/report-bad-indent":"error"}},{...L({"@html-eslint/require-closing-tags":"error","@html-eslint/lowercase":"error"}),files:["**/*.html"]}],V=(r=P(".gitignore"))=>j(r),z=r=>({ignores:[...r,"**/static/*","**/public/*"]}),G=E.configs["flat/recommended-with-jsonc"],f=[...G,{files:["**/*.json","**/*.json5","**/*.jsonc"],languageOptions:{parser:F},rules:{"jsonc/indent":["error","tab",{}],"jsonc/quotes":["error","double"],"jsonc/key-spacing":["error",{mode:"strict"}],"jsonc/array-bracket-newline":["error","always"],"jsonc/array-element-newline":["error","always"],"jsonc/object-property-newline":["error",{}]}},_,{files:["**/package.json"],rules:{"@stylistic/no-trailing-spaces":"error","@stylistic/no-multiple-empty-lines":["error",{max:0,maxEOF:0}],"jsonc/sort-array-values":["error",{pathPattern:"^files$",order:{type:"asc"}},{pathPattern:"^keywords$",order:["eslint","eslintplugin","eslint-plugin",{order:{type:"asc"}}]}],"package-json/no-redundant-files":"error","package-json/require-version":"off"}}],M=e(l),U=l.configs.recommended.rules,g=[{files:["**/*.md"],plugins:{markdownlint:M},languageOptions:{parser:R},rules:{...U,"markdownlint/md001":"error","markdownlint/md013":"off","markdownlint/md033":"off","markdownlint/md024":"off"}}],u=[...T.configs["flat/recommended"]],d=[...A.configs["flat/standard"],{files:["**/*.toml","**/*.tml"],rules:{"toml/indent":["error","tab",{subTables:1,keyValuePairs:1}]}}],y=[...S.configs["flat/strongly-recommended"],{files:["**/*.vue"],rules:{"vue/html-indent":["error","tab",{}],"vue/html-comment-indent":["error","tab"],"vue/multi-word-component-names":["off"]}}],w=[...B.configs["flat/prettier"]],b=[...m,...p,...a,...g,...w,...f,...d,...u,...y];export{b as config,a as cssConfig,b as default,m as generalConfig,p as htmlConfig,V as includeGitIgnore,s as jsConfig,f as jsonConfig,g as mdConfig,u as schemaConfig,z as setIgnoreConfig,D as setTsConfig,d as tomlConfig,c as tsConfig,y as vueConfig,w as yamlConfig};