Skip to content

Integrations Overview

The main package can compose integrations from five categories:

  • Libraries
  • Testing
  • Formats
  • Tools
  • Extensions

With the lean basic package, install the matching category pack before enabling or auto-detecting those options: eslint-config-extensions, eslint-config-formats, eslint-config-libraries, eslint-config-testing, or eslint-config-tools. The full package includes all five.

import { defineConfig, Extension, Format, Library, Testing, Tool } from '@santi020k/eslint-config-basic'
export default await defineConfig({
extensions: [Extension.Unicorn, Extension.Security],
formats: [Format.Markdown],
libraries: [Library.Tailwind, Library.Storybook],
testing: [Testing.Vitest],
tools: [Tool.Prettier]
})

The same optional configs can be written with strings:

import { defineConfig } from '@santi020k/eslint-config-basic'
export default await defineConfig({
extensions: ['unicorn', 'security'],
formats: ['markdown'],
libraries: ['tailwind', 'storybook'],
testing: ['vitest'],
tools: ['prettier']
})

Or use features when you want a single boolean map:

import { defineConfig } from '@santi020k/eslint-config-basic'
export default await defineConfig({
features: {
markdown: true,
prettier: true,
security: true,
tailwind: true,
vitest: true
}
})
  • Use Libraries for framework-adjacent integrations such as Tailwind or Storybook.
  • Use Testing for Vitest, Playwright, Jest, Cypress, and Testing Library.
  • Use Formats for Markdown, MDX, JSONC, YAML, TOML, and GraphQL.
  • Use Tools for Prettier, CSpell, JSDoc, and Swagger.
  • Use Extensions for rule packs such as Unicorn or SonarJS.

Some integrations can be inferred from package.json, but you can still make the final configuration explicit with enums, strings, or features. Set a features entry to false to remove a detected or preset-enabled optional config.

Did this page help?

Your answer stays in this browser. Share details on GitHub to help improve the docs.