0.0.3 • Published 1 year ago

eslint-plugin-clsx v0.0.3

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

eslint-plugin-clsx

An ESLint plugin for clsx/classnames

Installation

You'll first need to install ESLint:

npm i eslint --save-dev

Next, install eslint-plugin-clsx:

npm install eslint-plugin-clsx --save-dev

Usage

Here's an example ESLint configuration that:

  • Enables the recommended configuration
  • Enables an optional/non-recommended rule
{
    "extends": ["plugin:clsx/recommended"],
    "rules": {
        "clsx/no-redundant-clsx": "error"
    }
}

Rules

⚠️ Configurations set to warn in.\ ✅ Set in the recommended configuration.\ 🔧 Automatically fixable by the --fix CLI option.

Name                                  Description⚠️🔧
forbid-array-expressionsforbid usage of array expressions inside clsx🔧
forbid-false-inside-object-expressionsforbid usage of false literal inside object expressions of clsx🔧
forbid-true-inside-object-expressionsforbid usage of true literal inside object expressions of clsx🔧
no-redundant-clsxdisallow redundant clsx usage🔧
no-spreadingforbid usage of object expression inside clsx🔧
prefer-logical-over-objectsforbid usage of object expression inside clsx🔧
prefer-merged-neighboring-elementsenforce merging of neighboring elements🔧
prefer-objects-over-logicalforbid usage of logical expressions inside clsx🔧

Presets

NameDescription
recommendedenables all recommended rules in this plugin
allenables all rules in this plugin

Preset usage

Presets are enabled by adding a line to the extends list in your config file. For example, to enable the recommended preset, use:

{
    "extends": ["plugin:clsx/recommended"]
}

Settings

This rule can optionally be configured with an object that represents imports that should be considered an clsx usage

{
    "settings": {
        "clsxOptions": {
            "myclsx": "default"
        }
    }
}

Examples of incorrect code for the { myclsx: 'default' } setting (with no-redundant-clsx rule enabled):

import mc from 'myclsx';

const singleClasses = mc('single-class');

Examples of incorrect code for the { myclsx: 'cn' } setting (with no-redundant-clsx rule enabled):

import { cn } from 'myclsx';

const singleClasses = cn('single-class');

Examples of incorrect code for the { myclsx: ['default', 'cn'] } setting (with no-redundant-clsx rule enabled):

import mc, { cn } from 'myclsx';

// both report errors
const singleClasses = cn('single-class');
const singleClasses = mc('single-class');

Default setting value is { clsx: ['default', 'clsx'], classnames: 'default' }