@truenine/eslint9-config
Version:
ESLint 9 configuration package for Compose Client projects with TypeScript, Vue, and modern JavaScript support
42 lines (40 loc) • 1.81 kB
JavaScript
import { defaultFormatterConfig, defaultJsConfig, defaultStrictTsConfig, defaultStylisticConfig, defaultTestConfig, defaultTsConfig, defaultUnocssConfig, defaultVueConfig, mergeWithDefaults } from "./defaults/index.js";
import { antfu } from "@antfu/eslint-config";
//#region src/index.ts
async function applyPreset(options = {}) {
return eslint9(options);
}
async function eslint9(options = {}) {
const { type = "lib", ignores = [], test = true, nextjs = false, react = false, unocss = false, vue = false, jsx = false, pnpm = false, stylistic = true, javascript = defaultJsConfig, typescript = defaultTsConfig, formatters = false } = options;
const _test = mergeWithDefaults(test, defaultTestConfig);
const _unocss = mergeWithDefaults(unocss, defaultUnocssConfig);
const _vue = mergeWithDefaults(vue, defaultVueConfig);
const _javascript = mergeWithDefaults(javascript, defaultJsConfig);
const _stylistic = mergeWithDefaults(stylistic, defaultStylisticConfig);
const _formatters = mergeWithDefaults(formatters, defaultFormatterConfig);
let _typescript = typescript;
let _pnpm = pnpm;
if (type === "app") _pnpm = false;
if (_typescript !== null && typeof _typescript === "object" && "strictTypescriptEslint" in _typescript && _typescript.strictTypescriptEslint === true) {
_typescript = mergeWithDefaults(typescript, defaultStrictTsConfig);
if (typeof _typescript === "object" && "tsconfigPath" in _typescript) _typescript.parserOptions = { projectService: true };
}
return antfu({
type,
ignores,
pnpm: _pnpm,
test: _test,
unocss: _unocss,
vue: _vue,
nextjs,
react,
jsx,
typescript: _typescript,
javascript: _javascript,
stylistic: _stylistic,
formatters: _formatters
});
}
//#endregion
export { applyPreset, eslint9 as default };
//# sourceMappingURL=index.js.map