import type { OxlintConfig } from "oxlint"; import { defineConfig } from "oxlint"; import astroConfig from "./rules/astro.ts"; import esLintRules from "./rules/eslint.ts"; import functionalRules from "./rules/functional.ts"; import importRules from "./rules/import.ts"; import jsDocRules from "./rules/jsdoc.ts"; import perfectionistRules from "./rules/perfectionist.ts"; import sonarJsRules from "./rules/sonarjs.ts"; import typeScriptRules from "./rules/typescript.ts"; import unicornRules from "./rules/unicorn.ts"; import nodeRules from "./rules/node.ts"; import oxcRules from "./rules/oxc.ts"; import promiseRules from "./rules/promise.ts"; const config: OxlintConfig = defineConfig({ categories: { correctness: "off", nursery: "off", pedantic: "off", perf: "off", style: "off", suspicious: "off", }, env: { browser: true, builtin: true, es2026: true, node: true, }, ignorePatterns: [".astro", ".cache", "dist/**/*"], jsPlugins: ["eslint-plugin-functional", "eslint-plugin-perfectionist", "eslint-plugin-sonarjs"], options: { reportUnusedDisableDirectives: "warn", typeAware: true, typeCheck: false, }, overrides: [astroConfig], plugins: ["import", "jsdoc", "node", "oxc", "promise", "typescript", "unicorn"], rules: { ...esLintRules, ...functionalRules, ...importRules, ...jsDocRules, ...nodeRules, ...oxcRules, ...perfectionistRules, ...promiseRules, ...sonarJsRules, ...typeScriptRules, ...unicornRules, }, settings: {}, }); export default config;