or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

auto-configuration.mdcore-configurations.mdframework-configurations.mdindex.mdtesting-configurations.mdutility-configurations.md
tile.json

core-configurations.mddocs/

Core Configurations

Essential ESLint configurations that provide the foundation for JavaScript and TypeScript code quality. These configurations establish the baseline rules for code style, syntax, and best practices.

Capabilities

Canonical Configuration

The core Canonical style guide configuration providing comprehensive code style rules with extensive plugin integration.

/**
 * Core Canonical style guide configuration
 * Includes plugins: @stylistic, canonical, eslint-comments, import, perfectionist, promise, unicorn
 * Applies to: **/*.{js,jsx,cjs,mjs,ts,tsx}
 */
interface CanonicalConfiguration {
  recommended: ESLintConfig;
}

declare const canonical: CanonicalConfiguration;

Usage Examples:

import * as canonical from 'eslint-config-canonical/canonical';
import tseslint from 'typescript-eslint';

export default tseslint.config(canonical.recommended);

Key Features:

  • Perfectionist plugin for optimal code organization
  • Stylistic rules for consistent formatting
  • Import/export best practices
  • Promise handling rules
  • Modern JavaScript features encouragement
  • ESLint comments management

TypeScript Configuration

Comprehensive TypeScript configuration with type-aware linting and modern TypeScript best practices.

/**
 * TypeScript-specific ESLint configuration
 * Includes plugins: @stylistic, @typescript-eslint, canonical, functional
 * Applies to: **/*.{ts,tsx}
 * Requires: TypeScript project configuration
 */
interface TypeScriptConfiguration {
  recommended: ESLintConfig;
}

declare const typescript: TypeScriptConfiguration;

Usage Examples:

import * as typescript from 'eslint-config-canonical/typescript';
import tseslint from 'typescript-eslint';

export default tseslint.config({
  files: ['**/*.ts', '**/*.tsx'],
  ...typescript.recommended,
});

Key Features:

  • Type-aware linting rules
  • TypeScript-specific stylistic rules
  • Functional programming patterns
  • Interface and type definition formatting
  • Modern TypeScript syntax enforcement

TypeScript Compatibility Configuration

TypeScript compatibility rules that extend JavaScript ESLint rules with TypeScript-specific equivalents.

/**
 * TypeScript compatibility ESLint configuration
 * Provides TypeScript equivalents of JavaScript rules
 * Applies to: **/*.{ts,tsx}
 */
interface TypeScriptCompatibilityConfiguration {
  recommended: ESLintConfig;
}

declare const typescriptCompatibility: TypeScriptCompatibilityConfiguration;

Usage Examples:

import * as typescriptCompatibility from 'eslint-config-canonical/typescript-compatibility';
import tseslint from 'typescript-eslint';

export default tseslint.config({
  files: ['**/*.ts', '**/*.tsx'],
  ...typescriptCompatibility.recommended,
});

TypeScript Type Checking Configuration

Advanced TypeScript configuration with rules that require type information and perform deeper analysis.

/**
 * TypeScript type checking ESLint configuration
 * Includes advanced rules requiring type information
 * Performance impact: Higher (requires TypeScript compilation)
 * Applies to: TypeScript files with type checking enabled
 */
interface TypeScriptTypeCheckingConfiguration {
  recommended: ESLintConfig;
}

declare const typescriptTypeChecking: TypeScriptTypeCheckingConfiguration;

Usage Examples:

import * as typescriptTypeChecking from 'eslint-config-canonical/typescript-type-checking';
import tseslint from 'typescript-eslint';

export default tseslint.config({
  files: ['**/*.ts', '**/*.tsx'],
  ...typescriptTypeChecking.recommended,
});

Key Features:

  • Advanced type-aware rules
  • Runtime behavior analysis
  • Type inference validation
  • Performance optimization suggestions
  • Strict type checking enforcement

Browser Configuration

Configuration optimized for browser environment development with DOM and web API considerations.

/**
 * Browser environment ESLint configuration
 * Provides global definitions and rules for browser-based JavaScript
 * Applies to: Browser environment code
 */
interface BrowserConfiguration {
  recommended: ESLintConfig;
}

declare const browser: BrowserConfiguration;

Usage Examples:

import * as browser from 'eslint-config-canonical/browser';
import tseslint from 'typescript-eslint';

export default tseslint.config({
  files: ['src/client/**/*.{js,ts}'],
  ...browser.recommended,
});

Node.js Configuration

Configuration tailored for Node.js development with server-side JavaScript/TypeScript considerations.

/**
 * Node.js environment ESLint configuration
 * Includes plugin: n (Node.js specific rules)
 * Provides Node.js globals and module patterns
 */
interface NodeConfiguration {
  recommended: ESLintConfig;
}

declare const node: NodeConfiguration;

Usage Examples:

import * as node from 'eslint-config-canonical/node';
import tseslint from 'typescript-eslint';

export default tseslint.config({
  files: ['src/server/**/*.{js,ts}', 'scripts/**/*.js'],
  ...node.recommended,
});

Key Features:

  • Node.js-specific rules and best practices
  • CommonJS and ES modules support
  • Built-in module usage patterns
  • Process and global object handling

Module Configuration

Configuration for ESM (ECMAScript Modules) specific patterns and best practices.

/**
 * ESM module configuration
 * Enforces modern module patterns and import/export best practices
 */
interface ModuleConfiguration {
  recommended: ESLintConfig;
}

declare const moduleRules: ModuleConfiguration;

Usage Examples:

import * as moduleRules from 'eslint-config-canonical/module';
import tseslint from 'typescript-eslint';

export default tseslint.config({
  files: ['**/*.{js,ts}'],
  ...moduleRules.recommended,
});

Integration Patterns

Combined Core Setup

import * as canonical from 'eslint-config-canonical/canonical';
import * as typescript from 'eslint-config-canonical/typescript';
import * as browser from 'eslint-config-canonical/browser';
import * as node from 'eslint-config-canonical/node';
import tseslint from 'typescript-eslint';

export default tseslint.config(
  // Base configuration
  canonical.recommended,
  
  // TypeScript files
  {
    files: ['**/*.{ts,tsx}'],
    ...typescript.recommended,
  },
  
  // Browser-specific files
  {
    files: ['src/client/**/*.{js,ts}'],
    ...browser.recommended,
  },
  
  // Node.js specific files
  {
    files: ['src/server/**/*.{js,ts}', 'scripts/**/*.js'],
    ...node.recommended,
  }
);

TypeScript Project Requirements

When using the TypeScript configuration, ensure your project has:

  • tsconfig.json in the project root or configured path
  • parserOptions.project: true enabled (automatically set by the configuration)
  • TypeScript parser configured (automatically handled)