@truenine/eslint9-config
Version:
ESLint 9 configuration package for Compose Client projects with TypeScript, Vue, and modern JavaScript support
138 lines (136 loc) • 6.92 kB
JavaScript
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const require_configs_formatter = require('./configs/formatter.cjs');
const require_configs_javascript = require('./configs/javascript.cjs');
const require_configs_misc = require('./configs/misc.cjs');
const require_configs_stylistic = require('./configs/stylistic.cjs');
const require_configs_typescript = require('./configs/typescript.cjs');
const require_configs_vue = require('./configs/vue.cjs');
const require_rules_code_style_beside_comment = require('./rules/code-style/beside-comment.cjs');
const require_rules_code_style_brace_style = require('./rules/code-style/brace-style.cjs');
const require_rules_code_style_compact_try_catch = require('./rules/code-style/compact-try-catch.cjs');
const require_rules_code_style_concise_arrow = require('./rules/code-style/concise-arrow.cjs');
const require_rules_code_style_guard_clause = require('./rules/code-style/guard-clause.cjs');
const require_rules_code_style_no_document_requirements = require('./rules/code-style/no-document-requirements.cjs');
const require_rules_code_style_no_separator_comment = require('./rules/code-style/no-separator-comment.cjs');
const require_rules_code_style_no_task_comment = require('./rules/code-style/no-task-comment.cjs');
const require_rules_code_style_prefer_lookup_table = require('./rules/code-style/prefer-lookup-table.cjs');
const require_rules_code_style_prefer_separate_try_catch = require('./rules/code-style/prefer-separate-try-catch.cjs');
const require_rules_code_style_prefer_void_zero = require('./rules/code-style/prefer-void-zero.cjs');
const require_rules_code_style_index = require('./rules/code-style/index.cjs');
const require_rules_single_line_call = require('./rules/single-line/call.cjs');
const require_rules_single_line_control = require('./rules/single-line/control.cjs');
const require_rules_single_line_if = require('./rules/single-line/if.cjs');
const require_rules_single_line_index = require('./rules/single-line/index.cjs');
const require_rules_index = require('./rules/index.cjs');
const require_plugin = require('./plugin.cjs');
const require_presets_base_rules = require('./presets/base-rules.cjs');
const require_presets_dts_rules = require('./presets/dts-rules.cjs');
const require_presets_typescript_rules = require('./presets/typescript-rules.cjs');
const require_utils_merge = require('./utils/merge.cjs');
let _antfu_eslint_config = require("@antfu/eslint-config");
//#region src/index.ts
const defaultIgnores = [
"**/dist/**",
"**/node_modules/**",
"**/.agent/**",
"**/.claude/**",
"**/.factory/**",
"**/.qoder/**",
"**/.trae/**",
"**/.kiro/**",
"AGENTS.md",
"README.md",
"GEMINI.md",
"CLAUDE.md",
"WARP.md"
];
/**
* 创建 ESLint 配置
*
* @param options - 配置选项
* @returns ESLint 配置数组
*/
async function defineConfig(options = {}) {
const { type = "lib", ignores = [], test = true, nextjs = false, react = false, unocss = false, vue = false, uniapp = false, jsx = false, pnpm = false, stylistic = true, javascript = require_configs_javascript.javascriptConfig, typescript = require_configs_typescript.typescriptConfig, formatters = false, ...restOptions } = options;
const resolvedIgnores = typeof ignores === "function" ? (originals) => [...new Set([...defaultIgnores, ...ignores(originals)])] : [...new Set([...defaultIgnores, ...ignores])];
const _test = require_utils_merge.mergeWithDefaults(test, require_configs_misc.testConfig);
const _unocss = require_utils_merge.mergeWithDefaults(unocss, require_configs_misc.unocssConfig);
let _vue = require_utils_merge.mergeWithDefaults(vue, require_configs_vue.vueConfig);
const _javascript = require_utils_merge.mergeWithDefaults(javascript, require_configs_javascript.javascriptConfig);
const _stylistic = require_utils_merge.mergeWithDefaults(stylistic, require_configs_stylistic.stylisticConfig);
const _formatters = require_utils_merge.mergeWithDefaults(formatters, require_configs_formatter.formatterConfig);
if (uniapp) _vue = require_configs_vue.applyUniappVueConfig(_vue === false || _vue === true ? require_configs_vue.vueConfig : _vue);
let _typescript = typescript;
const _pnpm = type === "app" ? false : pnpm;
if (isStrictTsConfig(_typescript)) {
const merged = require_utils_merge.mergeWithDefaults(_typescript, require_configs_typescript.strictTypescriptConfig);
if (typeof merged === "object" && "tsconfigPath" in merged) {
const opts = merged;
if (opts.parserOptions?.projectService === void 0) opts.parserOptions = {
...opts.parserOptions,
projectService: true
};
}
_typescript = merged;
}
return (0, _antfu_eslint_config.antfu)({
...restOptions,
markdown: true,
type,
ignores: resolvedIgnores,
pnpm: _pnpm,
test: _test,
unocss: _unocss,
vue: _vue,
nextjs,
react,
jsx,
typescript: _typescript,
javascript: _javascript,
stylistic: _stylistic,
formatters: _formatters
}, {
name: "@truenine/eslint-plugin",
plugins: { "@truenine": require_plugin.default },
rules: require_presets_base_rules.baseRulesPreset
}, {
name: "@truenine/dts-rules",
files: ["**/*.d.ts"],
rules: require_presets_dts_rules.dtsRulesPreset
}, {
name: "@truenine/typescript-rules",
files: [
"**/*.ts",
"**/*.tsx",
"**/*.mts",
"**/*.cts"
],
ignores: ["**/*.md/**"],
rules: require_presets_typescript_rules.typescriptRulesPreset
});
}
function isStrictTsConfig(config) {
return config !== null && typeof config === "object" && "strictTypescriptEslint" in config && config.strictTypescriptEslint;
}
//#endregion
exports.besideComment = require_rules_code_style_beside_comment;
exports.braceStyle = require_rules_code_style_brace_style;
exports.codeStyleRules = require_rules_code_style_index.codeStyleRules;
exports.compactTryCatch = require_rules_code_style_compact_try_catch;
exports.default = defineConfig;
exports.defineConfig = defineConfig;
exports.noDocumentRequirements = require_rules_code_style_no_document_requirements;
exports.noSeparatorComment = require_rules_code_style_no_separator_comment;
exports.noTaskComment = require_rules_code_style_no_task_comment;
exports.plugin = require_plugin;
exports.preferConciseArrow = require_rules_code_style_concise_arrow;
exports.preferGuardClause = require_rules_code_style_guard_clause;
exports.preferLookupTable = require_rules_code_style_prefer_lookup_table;
exports.preferSeparateTryCatch = require_rules_code_style_prefer_separate_try_catch;
exports.preferSingleLineCall = require_rules_single_line_call;
exports.preferSingleLineControl = require_rules_single_line_control;
exports.preferSingleLineIf = require_rules_single_line_if;
exports.preferVoidZero = require_rules_code_style_prefer_void_zero;
exports.rules = require_rules_index.rules;
exports.singleLineRules = require_rules_single_line_index.singleLineRules;
//# sourceMappingURL=index.cjs.map