or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

binary-tools.mdconfigs.mdformatters.mdindex.mdplugin.mdrules.md
tile.json

configs.mddocs/

Configuration Presets

Curated ESLint configuration presets for different environments and use cases, available in both legacy and modern flat configuration formats. Each preset includes carefully selected rules, plugins, and settings optimized for specific development scenarios.

Capabilities

Legacy Configuration Presets

Traditional ESLint configuration format (.eslintrc.js) presets.

/**
 * Legacy ESLint configuration presets
 */
interface ConfigurationPresets {
  /** Browser-specific linting configuration */
  browser: ESLintConfig;
  /** Internal GitHub-specific rules and settings */
  internal: ESLintConfig;
  /** General-purpose recommended configuration */
  recommended: ESLintConfig;
  /** TypeScript-specific linting setup */
  typescript: ESLintConfig;
  /** React-specific rules and settings */
  react: ESLintConfig;
}

interface ESLintConfig {
  env?: Record<string, boolean>;
  parserOptions?: {
    ecmaFeatures?: Record<string, any>;
    sourceType?: 'module' | 'script';
    ecmaVersion?: number;
  };
  plugins?: string[];
  extends?: string[];
  rules: Record<string, ESLintSeverity | [ESLintSeverity, any]>;
  settings?: Record<string, any>;
}

Usage Examples:

// .eslintrc.js
module.exports = {
  extends: [
    'plugin:github/recommended',
    'plugin:github/browser'
  ]
};

// Or access individual configs
import eslintPluginGithub from "eslint-plugin-github";
const browserConfig = eslintPluginGithub.configs.browser;

Flat Configuration Presets

Modern ESLint flat configuration format presets for ESLint v9+.

/**
 * Flat ESLint configuration presets
 */
interface FlatConfigurationPresets {
  /** Browser-specific flat configuration */
  browser: FlatESLintConfig;
  /** Internal GitHub-specific flat configuration */
  internal: FlatESLintConfig;
  /** General-purpose recommended flat configuration */
  recommended: FlatESLintConfig;
  /** TypeScript-specific flat configuration */
  typescript: FlatESLintConfig;
  /** React-specific flat configuration */
  react: FlatESLintConfig;
}

interface FlatESLintConfig {
  languageOptions?: {
    ecmaVersion?: number;
    sourceType?: 'module' | 'script';
    globals?: Record<string, boolean>;
    parser?: any;
    parserOptions?: Record<string, any>;
  };
  plugins?: Record<string, any>;
  rules: Record<string, ESLintSeverity | [ESLintSeverity, any]>;
  settings?: Record<string, any>;
}

Usage Examples:

// eslint.config.js
import eslintPluginGithub from "eslint-plugin-github";

export default [
  eslintPluginGithub.getFlatConfigs().recommended,
  eslintPluginGithub.getFlatConfigs().browser
];

Recommended Configuration

General-purpose configuration suitable for most JavaScript projects.

/**
 * Recommended configuration preset
 * Includes: prettier, eslint-comments, import, filenames, i18n-text, no-only-tests plugins
 */
interface RecommendedConfig extends ESLintConfig {
  parserOptions: {
    ecmaFeatures: { ecmaVersion: 6 };
    sourceType: 'module';
  };
  env: { es6: true };
  plugins: string[];
  rules: Record<string, ESLintSeverity | [ESLintSeverity, any]>;
}

Features:

  • ES6 module support
  • Constructor super calls enforcement
  • ESLint comment management
  • Import/export validation
  • Filename pattern enforcement
  • i18n text validation
  • GitHub-specific rules (array-foreach, no-then, no-dynamic-script-tag)

Usage Examples:

// Legacy format
module.exports = {
  extends: ['plugin:github/recommended']
};

// Flat format
import eslintPluginGithub from "eslint-plugin-github";
export default [eslintPluginGithub.getFlatConfigs().recommended];

Browser Configuration

Optimized for browser-based JavaScript applications.

/**
 * Browser configuration preset
 * Focus: DOM manipulation, browser APIs, accessibility, performance
 */
interface BrowserConfig extends ESLintConfig {
  env: { browser: true };
  plugins: string[];
  extends: string[];
  rules: Record<string, ESLintSeverity>;
}

Key Rules:

  • github/async-currenttarget: Error
  • github/async-preventdefault: Error
  • github/no-blur: Error
  • github/no-inner-html: Error
  • github/require-passive-events: Error
  • import/no-nodejs-modules: Error

Usage Examples:

// For browser applications
module.exports = {
  extends: ['plugin:github/browser']
};

// Combines well with other configs
module.exports = {
  extends: [
    'plugin:github/recommended',
    'plugin:github/browser'
  ]
};

TypeScript Configuration

Specialized configuration for TypeScript projects.

/**
 * TypeScript configuration preset
 * Includes: TypeScript parser, TypeScript-specific rules
 */
interface TypeScriptConfig extends ESLintConfig {
  parser?: string;
  parserOptions?: {
    project?: string | string[];
    ecmaFeatures?: Record<string, any>;
  };
  plugins: string[];
  rules: Record<string, ESLintSeverity | [ESLintSeverity, any]>;
}

Usage Examples:

// For TypeScript projects
module.exports = {
  extends: [
    'plugin:github/recommended',
    'plugin:github/typescript'
  ],
  overrides: [
    {
      files: ['**/*.ts', '**/*.tsx'],
      extends: ['plugin:github/typescript']
    }
  ]
};

React Configuration

Optimized for React applications with JSX support.

/**
 * React configuration preset
 * Includes: React-specific rules, JSX accessibility rules
 */
interface ReactConfig extends ESLintConfig {
  parserOptions: {
    ecmaFeatures: { jsx: true };
  };
  plugins: string[];
  rules: Record<string, ESLintSeverity | [ESLintSeverity, any]>;
}

Key Features:

  • JSX syntax support
  • React Hook rules
  • JSX accessibility rules
  • Component pattern enforcement

Usage Examples:

// For React projects
module.exports = {
  extends: [
    'plugin:github/recommended',
    'plugin:github/react'
  ]
};

// With TypeScript
module.exports = {
  extends: [
    'plugin:github/recommended',
    'plugin:github/typescript',
    'plugin:github/react'
  ]
};

Internal Configuration

GitHub-internal configuration with additional rules and stricter settings.

/**
 * Internal GitHub configuration preset
 * Enhanced rules for internal GitHub development
 */
interface InternalConfig extends ESLintConfig {
  plugins: string[];
  rules: Record<string, ESLintSeverity | [ESLintSeverity, any]>;
}

Usage Examples:

// For internal GitHub projects
module.exports = {
  extends: ['plugin:github/internal']
};

Configuration Composition

Configurations can be combined for comprehensive linting coverage.

/**
 * Configuration composition examples
 */
interface CompositeConfigurations {
  /** Full-stack TypeScript React application */
  fullStack: (ESLintConfig | FlatESLintConfig)[];
  /** Browser-only JavaScript application */
  browserOnly: (ESLintConfig | FlatESLintConfig)[];
  /** Node.js TypeScript service */
  nodeService: (ESLintConfig | FlatESLintConfig)[];
}

Usage Examples:

// Full-stack React TypeScript application
export default [
  eslintPluginGithub.getFlatConfigs().recommended,
  eslintPluginGithub.getFlatConfigs().typescript,
  eslintPluginGithub.getFlatConfigs().react,
  {
    files: ['**/*.tsx', '**/*.jsx'],
    ...eslintPluginGithub.getFlatConfigs().browser
  }
];

// Legacy format combination
module.exports = {
  root: true,
  extends: [
    'plugin:github/recommended',
    'plugin:github/typescript'
  ],
  overrides: [
    {
      files: ['src/**/*.{ts,tsx}'],
      extends: ['plugin:github/react']
    },
    {
      files: ['**/*.browser.{js,ts}'],
      extends: ['plugin:github/browser']
    }
  ]
};

Types

type ESLintSeverity = 'off' | 'warn' | 'error' | 0 | 1 | 2;

interface ESLintParserOptions {
  ecmaVersion?: number | 'latest';
  sourceType?: 'module' | 'script';
  ecmaFeatures?: {
    jsx?: boolean;
    globalReturn?: boolean;
    impliedStrict?: boolean;
  };
  project?: string | string[];
  tsconfigRootDir?: string;
}

interface ESLintEnvironment {
  browser?: boolean;
  node?: boolean;
  es6?: boolean;
  es2020?: boolean;
  es2021?: boolean;
  worker?: boolean;
  serviceworker?: boolean;
}