UNPKG

@truenine/eslint9-config

Version:

ESLint 9 configuration package for Compose Client projects with TypeScript, Vue, and modern JavaScript support

1 lines 5.45 kB
{"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["import type {OptionsTypeScriptParserOptions} from '@antfu/eslint-config'\nimport type {Linter} from 'eslint'\nimport type {AntFuStrictTsConfig, AntFuTsConfig, AntFuVueConfig, ConfigOptions} from './types'\nimport {antfu} from '@antfu/eslint-config'\nimport {applyUniappVueConfig, formatterConfig, javascriptConfig, strictTypescriptConfig, stylisticConfig, testConfig, typescriptConfig, unocssConfig, vueConfig} from './configs'\nimport {plugin} from './plugin'\nimport {baseRulesPreset, dtsRulesPreset, typescriptRulesPreset} from './presets'\nimport {mergeWithDefaults} from './utils'\n\nconst defaultIgnores = [\n '**/dist/**',\n '**/node_modules/**',\n\n '**/.agent/**',\n '**/.claude/**',\n '**/.factory/**',\n '**/.qoder/**',\n '**/.trae/**',\n '**/.kiro/**',\n 'AGENTS.md',\n 'README.md',\n 'GEMINI.md',\n 'CLAUDE.md',\n 'WARP.md'\n]\n\nexport {\n plugin\n} from './plugin'\nexport * from './rules'\nexport type {\n ConfigOptions\n} from './types'\n\n/**\n * 创建 ESLint 配置\n *\n * @param options - 配置选项\n * @returns ESLint 配置数组\n */\nexport async function defineConfig(options: ConfigOptions = {}): Promise<Awaited<ReturnType<typeof antfu>>> {\n const {\n type = 'lib',\n ignores = [],\n test = true,\n nextjs = false,\n react = false,\n unocss = false,\n vue = false,\n uniapp = false,\n jsx = false,\n pnpm = false,\n stylistic = true,\n javascript = javascriptConfig,\n typescript = typescriptConfig,\n formatters = false,\n ...restOptions\n } = options\n\n const resolvedIgnores = typeof ignores === 'function'\n ? (originals: string[]) => [...new Set([...defaultIgnores, ...ignores(originals)])]\n : [...new Set([...defaultIgnores, ...ignores])]\n const _test = mergeWithDefaults(test, testConfig)\n const _unocss = mergeWithDefaults(unocss, unocssConfig)\n let _vue = mergeWithDefaults(vue, vueConfig) as boolean | AntFuVueConfig\n const _javascript = mergeWithDefaults(javascript, javascriptConfig)\n const _stylistic = mergeWithDefaults(stylistic, stylisticConfig)\n const _formatters = mergeWithDefaults(formatters, formatterConfig)\n\n if (uniapp) {\n const resolvedVue = _vue === false || _vue === true ? vueConfig : _vue\n _vue = applyUniappVueConfig(resolvedVue)\n }\n\n let _typescript = typescript\n const _pnpm = type === 'app' ? false : pnpm\n\n if (isStrictTsConfig(_typescript)) {\n const merged = mergeWithDefaults(_typescript as AntFuTsConfig, strictTypescriptConfig)\n if (typeof merged === 'object' && 'tsconfigPath' in merged) {\n const opts = merged as OptionsTypeScriptParserOptions\n if (opts.parserOptions?.projectService === void 0) {\n opts.parserOptions = {\n ...opts.parserOptions,\n projectService: true\n }\n }\n }\n _typescript = merged\n }\n\n return antfu(\n {\n ...restOptions,\n markdown: true,\n type,\n ignores: resolvedIgnores,\n pnpm: _pnpm,\n test: _test,\n unocss: _unocss,\n vue: _vue,\n nextjs,\n react,\n jsx,\n typescript: _typescript,\n javascript: _javascript,\n stylistic: _stylistic,\n formatters: _formatters\n },\n {name: '@truenine/eslint-plugin', plugins: {'@truenine': plugin}, rules: baseRulesPreset} as Linter.Config,\n {name: '@truenine/dts-rules', files: ['**/*.d.ts'], rules: dtsRulesPreset} as Linter.Config,\n {name: '@truenine/typescript-rules', files: ['**/*.ts', '**/*.tsx', '**/*.mts', '**/*.cts'], ignores: ['**/*.md/**'], rules: typescriptRulesPreset} as Linter.Config\n )\n}\n\nfunction isStrictTsConfig(config: unknown): config is AntFuStrictTsConfig {\n return config !== null && typeof config === 'object' && 'strictTypescriptEslint' in config && (config as AntFuStrictTsConfig).strictTypescriptEslint\n}\n\nexport default defineConfig\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM,iBAAiB;CACrB;CACA;CAEA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;;;;;;;AAgBD,eAAsB,aAAa,UAAyB,EAAE,EAA8C;CAC1G,MAAM,EACJ,OAAO,OACP,UAAU,EAAE,EACZ,OAAO,MACP,SAAS,OACT,QAAQ,OACR,SAAS,OACT,MAAM,OACN,SAAS,OACT,MAAM,OACN,OAAO,OACP,YAAY,MACZ,aAAa,kBACb,aAAa,kBACb,aAAa,OACb,GAAG,gBACD;CAEJ,MAAM,kBAAkB,OAAO,YAAY,cACtC,cAAwB,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,gBAAgB,GAAG,QAAQ,UAAU,CAAC,CAAC,CAAC,GACjF,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,gBAAgB,GAAG,QAAQ,CAAC,CAAC;CACjD,MAAM,QAAQ,kBAAkB,MAAM,WAAW;CACjD,MAAM,UAAU,kBAAkB,QAAQ,aAAa;CACvD,IAAI,OAAO,kBAAkB,KAAK,UAAU;CAC5C,MAAM,cAAc,kBAAkB,YAAY,iBAAiB;CACnE,MAAM,aAAa,kBAAkB,WAAW,gBAAgB;CAChE,MAAM,cAAc,kBAAkB,YAAY,gBAAgB;AAElE,KAAI,OAEF,QAAO,qBADa,SAAS,SAAS,SAAS,OAAO,YAAY,KAC1B;CAG1C,IAAI,cAAc;CAClB,MAAM,QAAQ,SAAS,QAAQ,QAAQ;AAEvC,KAAI,iBAAiB,YAAY,EAAE;EACjC,MAAM,SAAS,kBAAkB,aAA8B,uBAAuB;AACtF,MAAI,OAAO,WAAW,YAAY,kBAAkB,QAAQ;GAC1D,MAAM,OAAO;AACb,OAAI,KAAK,eAAe,mBAAmB,KAAK,EAC9C,MAAK,gBAAgB;IACnB,GAAG,KAAK;IACR,gBAAgB;IACjB;;AAGL,gBAAc;;AAGhB,QAAO,MACL;EACE,GAAG;EACH,UAAU;EACV;EACA,SAAS;EACT,MAAM;EACN,MAAM;EACN,QAAQ;EACR,KAAK;EACL;EACA;EACA;EACA,YAAY;EACZ,YAAY;EACZ,WAAW;EACX,YAAY;EACb,EACD;EAAC,MAAM;EAA2B,SAAS,EAAC,aAAa,QAAO;EAAE,OAAO;EAAgB,EACzF;EAAC,MAAM;EAAuB,OAAO,CAAC,YAAY;EAAE,OAAO;EAAe,EAC1E;EAAC,MAAM;EAA8B,OAAO;GAAC;GAAW;GAAY;GAAY;GAAW;EAAE,SAAS,CAAC,aAAa;EAAE,OAAO;EAAsB,CACpJ;;AAGH,SAAS,iBAAiB,QAAgD;AACxE,QAAO,WAAW,QAAQ,OAAO,WAAW,YAAY,4BAA4B,UAAW,OAA+B"}