or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

cli-tool.mdconstants-patterns.mdcore-configuration.mdfile-format-support.mdindex.mdlanguage-framework-support.mdstyling-formatting.mdutility-functions.md
tile.json

language-framework-support.mddocs/

Language & Framework Support

Configuration functions for specific programming languages and frameworks, providing tailored linting rules and settings.

Capabilities

JavaScript Configuration

Base JavaScript/Node.js rules and globals with ECMAScript support.

/**
 * Core JavaScript configuration with globals and base rules
 * @param options - JavaScript configuration options
 * @returns ESLint config for JavaScript files
 */
function javascript(
  options?: OptionsIsInEditor & OptionsOverrides
): Promise<TypedFlatConfigItem[]>;

interface OptionsIsInEditor {
  /** Whether running in editor environment */
  isInEditor?: boolean;
}

Usage Examples:

import { javascript } from "@antfu/eslint-config";

// Basic JavaScript config
const jsConfig = await javascript();

// With editor-specific rules disabled
const jsConfigEditor = await javascript({
  isInEditor: true,
  overrides: {
    'no-console': 'off',
  },
});

TypeScript Configuration

TypeScript-specific rules, parser setup, and type-aware linting.

/**
 * TypeScript configuration with parser and type-aware rules
 * @param options - TypeScript configuration options
 * @returns ESLint config for TypeScript files  
 */
function typescript(
  options?: OptionsFiles & OptionsComponentExts & OptionsOverrides & OptionsTypeScriptWithTypes & OptionsTypeScriptParserOptions & OptionsProjectType
): Promise<TypedFlatConfigItem[]>;

interface OptionsTypeScriptWithTypes {
  /** Path to tsconfig.json for type-aware rules */
  tsconfigPath?: string;
  /** Override type aware rules */
  overridesTypeAware?: TypedFlatConfigItem['rules'];
}

interface OptionsTypeScriptParserOptions {
  /** Additional parser options for TypeScript */
  parserOptions?: Partial<ParserOptions>;
  /** Files that should be type aware */
  filesTypeAware?: string[];
  /** Files that should not be type aware */
  ignoresTypeAware?: string[];
}

type OptionsTypescript = (OptionsTypeScriptWithTypes & OptionsOverrides) | (OptionsTypeScriptParserOptions & OptionsOverrides);

Usage Examples:

import { typescript } from "@antfu/eslint-config";

// Basic TypeScript config
const tsConfig = await typescript();

// With type-aware linting
const tsConfigStrict = await typescript({
  tsconfigPath: './tsconfig.json',
  type: 'lib',
  overridesTypeAware: {
    '@typescript-eslint/no-unsafe-assignment': 'error',
  },
});

Vue.js Configuration

Vue.js SFC and template linting with accessibility support.

/**
 * Vue.js configuration for SFC files and templates
 * @param options - Vue configuration options
 * @returns ESLint config for Vue files
 */
function vue(
  options?: OptionsVue & OptionsHasTypeScript & OptionsOverrides & OptionsStylistic & OptionsFiles
): Promise<TypedFlatConfigItem[]>;

interface OptionsVue extends OptionsOverrides {
  /** Create virtual files for Vue SFC blocks */
  sfcBlocks?: boolean | VueBlocksOptions;
  /** Vue version for different rule sets */
  vueVersion?: 2 | 3;
  /** Enable Vue accessibility plugin */
  a11y?: boolean;
}

Usage Examples:

import { vue } from "@antfu/eslint-config";

// Basic Vue config
const vueConfig = await vue();

// With Vue 2 and accessibility
const vueConfigA11y = await vue({
  vueVersion: 2, 
  a11y: true,
  typescript: true,
  stylistic: {
    indent: 2,
  },
});

React Configuration

React JSX and hooks linting with accessibility support.

/**
 * React configuration for JSX and hooks
 * @param options - React configuration options
 * @returns ESLint config for React files
 */
function react(
  options?: OptionsTypeScriptParserOptions & OptionsTypeScriptWithTypes & OptionsOverrides & OptionsFiles
): Promise<TypedFlatConfigItem[]>;

Usage Examples:

import { react } from "@antfu/eslint-config";

// Basic React config
const reactConfig = await react();

// With TypeScript and custom rules
const reactConfigTS = await react({
  tsconfigPath: './tsconfig.json',
  overrides: {
    'react/prop-types': 'off',
  },
});

Next.js Configuration

Next.js specific rules and settings.

/**
 * Next.js configuration for Next.js applications
 * @param options - Next.js configuration options
 * @returns ESLint config for Next.js projects
 */
function nextjs(
  options?: OptionsOverrides & OptionsFiles
): Promise<TypedFlatConfigItem[]>;

Svelte Configuration

Svelte component linting with TypeScript support.

/**
 * Svelte configuration for Svelte components
 * @param options - Svelte configuration options
 * @returns ESLint config for Svelte files
 */
function svelte(
  options?: OptionsOverrides & OptionsStylistic & OptionsHasTypeScript & OptionsFiles
): Promise<TypedFlatConfigItem[]>;

interface OptionsHasTypeScript {
  /** Whether TypeScript is enabled */
  typescript?: boolean;
}

Solid.js Configuration

Solid.js JSX linting with TypeScript support.

/**
 * Solid.js configuration for Solid components
 * @param options - Solid configuration options
 * @returns ESLint config for Solid files
 */
function solid(
  options?: OptionsOverrides & OptionsFiles & OptionsTypeScriptWithTypes & OptionsHasTypeScript
): Promise<TypedFlatConfigItem[]>;

Astro Configuration

Astro framework linting and formatting support.

/**
 * Astro configuration for Astro components
 * @param options - Astro configuration options
 * @returns ESLint config for Astro files
 */
function astro(
  options?: OptionsOverrides & OptionsStylistic & OptionsFiles
): Promise<TypedFlatConfigItem[]>;

JSX Configuration

General JSX linting rules with accessibility support.

/**
 * JSX configuration for JSX syntax
 * @param options - JSX configuration options
 * @returns ESLint config for JSX files
 */
function jsx(
  options?: OptionsJSX
): Promise<TypedFlatConfigItem[]>;

interface OptionsJSX {
  /** Enable JSX accessibility rules */
  a11y?: boolean | OptionsJSXA11y;
}

interface OptionsJSXA11y extends OptionsOverrides {
  // JSX accessibility specific options
}

Test Configuration

Testing framework rules for Jest, Vitest, and other test runners.

/**
 * Test configuration for testing frameworks
 * @param options - Test configuration options
 * @returns ESLint config for test files
 */
function test(
  options?: OptionsIsInEditor & OptionsOverrides & OptionsFiles
): Promise<TypedFlatConfigItem[]>;

Import Configuration

Import/export linting rules and organization.

/**
 * Import configuration for import/export rules
 * @param options - Import configuration options
 * @returns ESLint config for import rules
 */
function imports(
  options?: OptionsOverrides & OptionsStylistic
): Promise<TypedFlatConfigItem[]>;

JSDoc Configuration

JSDoc comment validation rules.

/**
 * JSDoc configuration for documentation comments
 * @param options - JSDoc configuration options
 * @returns ESLint config for JSDoc rules
 */
function jsdoc(
  options?: OptionsStylistic
): Promise<TypedFlatConfigItem[]>;

Node.js Configuration

Node.js environment and globals configuration.

/**
 * Node.js configuration for Node.js environments
 * @returns ESLint config for Node.js globals and rules
 */
function node(): Promise<TypedFlatConfigItem[]>;

Comments Configuration

ESLint comment directive validation and management.

/**
 * Comments configuration for ESLint comment directives
 * @returns ESLint config for comment rules
 */
function comments(): Promise<TypedFlatConfigItem[]>;

Command Configuration

Inline ESLint command processing and execution.

/**
 * Command configuration for inline ESLint commands
 * @returns ESLint config for command processing
 */
function command(): Promise<TypedFlatConfigItem[]>;

Disables Configuration

Rule disabling patterns and management.

/**
 * Disables configuration for rule disable patterns
 * @returns ESLint config for disable management
 */
function disables(): Promise<TypedFlatConfigItem[]>;

Unicorn Configuration

Modern JavaScript practices and optimizations.

/**
 * Unicorn configuration for modern JavaScript practices
 * @param options - Unicorn configuration options
 * @returns ESLint config for Unicorn rules
 */
function unicorn(options?: OptionsUnicorn): Promise<TypedFlatConfigItem[]>;

interface OptionsUnicorn {
  rules?: Partial<UnicornRules>;
}

Perfectionist Configuration

Code sorting and organization rules.

/**
 * Perfectionist configuration for sorting and organization
 * @returns ESLint config for sorting rules
 */
function perfectionist(): Promise<TypedFlatConfigItem[]>;

RegExp Configuration

Regular expression validation and optimization.

/**
 * RegExp configuration for regular expression rules
 * @param options - RegExp configuration options
 * @returns ESLint config for RegExp rules
 */
function regexp(options?: OptionsRegExp & OptionsOverrides): Promise<TypedFlatConfigItem[]>;

interface OptionsRegExp {
  level?: 'error' | 'warn';
}

UnoCSS Configuration

UnoCSS atomic CSS framework linting.

/**
 * UnoCSS configuration for atomic CSS
 * @param options - UnoCSS configuration options
 * @returns ESLint config for UnoCSS rules
 */
function unocss(options?: OptionsUnoCSS & OptionsOverrides & OptionsFiles): Promise<TypedFlatConfigItem[]>;

interface OptionsUnoCSS {
  attributify?: boolean;
  strict?: boolean;
}

PNPM Configuration

PNPM package manager specific rules.

/**
 * PNPM configuration for PNPM package manager
 * @returns ESLint config for PNPM rules
 */
function pnpm(): Promise<TypedFlatConfigItem[]>;

Package.json Sorting

Automatic package.json property sorting.

/**
 * Package.json sorting configuration
 * @returns ESLint config for package.json sorting
 */
function sortPackageJson(): Promise<TypedFlatConfigItem[]>;

TSConfig Sorting

Automatic tsconfig.json property sorting.

/**
 * TSConfig sorting configuration
 * @returns ESLint config for tsconfig.json sorting
 */
function sortTsconfig(): TypedFlatConfigItem[];

Ignores Configuration

File and directory ignore patterns.

/**
 * Ignores configuration for file patterns
 * @param userIgnores - Additional ignore patterns
 * @returns ESLint config for ignore patterns
 */
function ignores(userIgnores?: string[]): Promise<TypedFlatConfigItem[]>;