or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

active-rules.mddeprecated-rules.mdindex.mdplugin-configuration.mdrule-configuration.md
tile.json

plugin-configuration.mddocs/

Plugin Configuration

The main plugin export provides the ESLint plugin configuration structure required for ESLint to recognize and use the plugin rules.

Capabilities

Main Plugin Export

The primary module export that defines the plugin structure.

/**
 * Main ESLint plugin configuration object
 * @type {Object}
 */
module.exports = {
  rules: {
    [ruleName: string]: RuleFunction | RuleObject
  },
  rulesConfig: {
    [ruleName: string]: number
  }
};

Rules Object

Collection of all available rule implementations.

/**
 * Object containing all rule implementations (active and deprecated)
 * @type {Object<string, Function|Object>}
 */
rules: {
  // Active rules
  'new-cap': Function,
  'camelcase': Object,
  'no-invalid-this': Function,
  'object-curly-spacing': Function,
  'quotes': Function,
  'semi': Function,
  'no-unused-expressions': Function,
  'valid-typeof': Function,
  
  // Deprecated rules
  'array-bracket-spacing': Object,
  'arrow-parens': Function,
  'flow-object-type': Function,
  'func-params-comma-dangle': Function,
  'generator-star-spacing': Function,
  'object-shorthand': Function,
  'no-await-in-loop': Function
}

Rules Configuration

Default configuration values for all rules (all disabled by default).

/**
 * Default rule configurations - all rules disabled by default
 * @type {Object<string, number>}
 */
rulesConfig: {
  'array-bracket-spacing': 0,
  'arrow-parens': 0,
  'camelcase': 0,
  'flow-object-type': 0,
  'func-params-comma-dangle': 0,
  'generator-star-spacing': 0,
  'new-cap': 0,
  'no-await-in-loop': 0,
  'no-invalid-this': 0,
  'no-unused-expressions': 0,
  'object-curly-spacing': 0,
  'object-shorthand': 0,
  'quotes': 0,
  'semi': 0,
  'valid-typeof': 0
}

Usage Examples

Basic Plugin Setup:

{
  "plugins": ["babel"]
}

With Rule Configuration:

{
  "plugins": ["babel"],
  "rules": {
    "babel/new-cap": 1,
    "babel/camelcase": 1,
    "babel/no-invalid-this": 1,
    "babel/object-curly-spacing": 1,
    "babel/quotes": 1,
    "babel/semi": 1,
    "babel/no-unused-expressions": 1,
    "babel/valid-typeof": 1
  }
}

Disabling Core Rules:

{
  "plugins": ["babel"],
  "rules": {
    // Disable core rules
    "new-cap": 0,
    "camelcase": 0,
    "no-invalid-this": 0,
    "object-curly-spacing": 0,
    "quotes": 0,
    "semi": 0,
    "no-unused-expressions": 0,
    "valid-typeof": 0,
    
    // Enable babel alternatives
    "babel/new-cap": 1,
    "babel/camelcase": 1,
    "babel/no-invalid-this": 1,
    "babel/object-curly-spacing": 1,
    "babel/quotes": 1,
    "babel/semi": 1,
    "babel/no-unused-expressions": 1,
    "babel/valid-typeof": 1
  }
}