Configuration functions for various file formats including JSON, YAML, TOML, and Markdown with appropriate parsers and rules.
JSONC support with stylistic rules and sorting capabilities.
/**
* JSONC configuration for JSON files with comments
* @param options - JSONC configuration options
* @returns ESLint config for JSONC files
*/
function jsonc(
options?: OptionsOverrides & OptionsStylistic
): Promise<TypedFlatConfigItem[]>;Usage Examples:
import { jsonc } from "@antfu/eslint-config";
// Basic JSONC config
const jsoncConfig = await jsonc();
// With custom stylistic options
const jsoncConfigStyled = await jsonc({
stylistic: {
indent: 2,
},
overrides: {
'jsonc/sort-keys': 'error',
},
});YAML file linting with proper parser integration.
/**
* YAML configuration for YAML files
* @param options - YAML configuration options
* @returns ESLint config for YAML files
*/
function yaml(
options?: OptionsOverrides & OptionsStylistic
): Promise<TypedFlatConfigItem[]>;Usage Examples:
import { yaml } from "@antfu/eslint-config";
// Basic YAML config
const yamlConfig = await yaml();
// With custom rules
const yamlConfigCustom = await yaml({
overrides: {
'yml/indent': ['error', 2],
'yml/quotes': ['error', { prefer: 'single' }],
},
});TOML file linting and formatting support.
/**
* TOML configuration for TOML files
* @param options - TOML configuration options
* @returns ESLint config for TOML files
*/
function toml(
options?: OptionsOverrides & OptionsStylistic
): Promise<TypedFlatConfigItem[]>;Usage Examples:
import { toml } from "@antfu/eslint-config";
// Basic TOML config
const tomlConfig = await toml();
// With stylistic preferences
const tomlConfigStyled = await toml({
stylistic: {
indent: 2,
},
overrides: {
'toml/indent': ['error', 2],
},
});Markdown code block linting for embedded code snippets.
/**
* Markdown configuration for code blocks in Markdown files
* @param options - Markdown configuration options
* @returns ESLint config for Markdown files
*/
function markdown(
options?: OptionsOverrides & OptionsComponentExts
): Promise<TypedFlatConfigItem[]>;Usage Examples:
import { markdown } from "@antfu/eslint-config";
// Basic markdown config
const markdownConfig = await markdown();
// With component extensions and custom rules
const markdownConfigCustom = await markdown({
componentExts: ['vue', 'svelte'],
overrides: {
'no-console': 'off', // Allow console in code examples
'import/no-unresolved': 'off',
},
});Specialized configuration for sorting package.json fields.
/**
* Sort package.json fields according to conventions
* @returns ESLint config for package.json sorting
*/
function sortPackageJson(): Promise<TypedFlatConfigItem[]>;Usage Examples:
import { sortPackageJson } from "@antfu/eslint-config";
// Package.json sorting config
const packageSortConfig = await sortPackageJson();Specialized configuration for sorting tsconfig.json fields.
/**
* Sort tsconfig.json fields according to conventions
* @returns ESLint config for tsconfig.json sorting
*/
function sortTsconfig(): Promise<TypedFlatConfigItem[]>;Usage Examples:
import { sortTsconfig } from "@antfu/eslint-config";
// TSConfig sorting config
const tsconfigSortConfig = await sortTsconfig();RegExp linting for safer and more maintainable regular expressions.
/**
* Regular expression linting configuration
* @param options - RegExp configuration options
* @returns ESLint config for RegExp rules
*/
function regexp(
options?: OptionsRegExp & OptionsOverrides
): Promise<TypedFlatConfigItem[]>;
interface OptionsRegExp {
/** Override rule levels */
level?: 'error' | 'warn';
}Usage Examples:
import { regexp } from "@antfu/eslint-config";
// Basic RegExp config
const regexpConfig = await regexp();
// With warning level instead of errors
const regexpConfigWarn = await regexp({
level: 'warn',
overrides: {
'regexp/no-unused-capturing-group': 'error',
},
});Additional code quality rules from eslint-plugin-unicorn.
/**
* Unicorn plugin configuration for code quality rules
* @param options - Unicorn configuration options
* @returns ESLint config for Unicorn rules
*/
function unicorn(
options?: OptionsUnicorn
): Promise<TypedFlatConfigItem[]>;
interface OptionsUnicorn extends OptionsOverrides {
/** Include all recommended rules instead of curated subset */
allRecommended?: boolean;
}Usage Examples:
import { unicorn } from "@antfu/eslint-config";
// Basic unicorn config (curated rules)
const unicornConfig = await unicorn();
// All recommended rules
const unicornConfigAll = await unicorn({
allRecommended: true,
overrides: {
'unicorn/prevent-abbreviations': 'off',
},
});PNPM workspace and catalog support for monorepos.
/**
* PNPM workspace configuration for monorepo support
* @returns ESLint config for PNPM workspace files
*/
function pnpm(): Promise<TypedFlatConfigItem[]>;Usage Examples:
import { pnpm } from "@antfu/eslint-config";
// PNPM workspace config
const pnpmConfig = await pnpm();UnoCSS class validation and attributify support.
/**
* UnoCSS configuration for CSS utility class validation
* @param options - UnoCSS configuration options
* @returns ESLint config for UnoCSS rules
*/
function unocss(
options?: OptionsUnoCSS
): Promise<TypedFlatConfigItem[]>;
interface OptionsUnoCSS extends OptionsOverrides {
/** Enable attributify support */
attributify?: boolean;
/** Enable strict mode with blocklisted classes */
strict?: boolean;
}Usage Examples:
import { unocss } from "@antfu/eslint-config";
// Basic UnoCSS config
const unocssConfig = await unocss();
// With attributify and strict mode
const unocssConfigStrict = await unocss({
attributify: true,
strict: true,
overrides: {
'@unocss/order': 'warn',
},
});