Skip to content

Integrations Overview

The main package can compose integrations from five categories:

  • Libraries
  • Testing
  • Formats
  • Tools
  • Extensions
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?

One click helps us spot documentation that needs another pass. No personal data is sent.