1.0.0 • Published 1 year ago

@arabasta/eslint-plugin-javascript v1.0.0

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

@arabasta/eslint-plugin-javascript

NPM Version NPM License

ESLint plugin for javascript rules.

Installation

Assuming you already have ESLint installed, run:

# npm
npm install --save-dev @arabasta/eslint-plugin-javascript

# yarn
yarn add --dev @arabasta/eslint-plugin-javascript

# pnpm
pnpm add --save-dev @arabasta/eslint-plugin-javascript

Usage

Flat config (eslint.config.js)

// ...
import arabastaJavascript from '@arabasta/eslint-plugin-javascript';

export default [
  // ...
  arabastaJavascript.configs.recommended,
];

Legacy config (.eslintrc)

{
  "extends": [
    // ...
    "plugin:@arabasta/javascript/recommended-legacy"
  ]
}

Rules

šŸ’¼ Configurations enabled in.\ āœ… Set in the recommended configuration.\ šŸ”§ Automatically fixable by the --fix CLI option.\ šŸ’” Manually fixable by editor suggestions.

NameDescriptionšŸ’¼šŸ”§šŸ’”
report-caught-errorrequire caught errors to be reportedāœ…šŸ’”
use-alternative-functionsrequire the usage of alternative functionsšŸ”§

Settings

You may set the following settings in your config:

@arabasta/alternative-functions

A map from names of groups of alternative functions to array of alternative functions.

This setting is currently only used by the use-alternative-functions rule as an alternative to Rule Options because we want multiple configs to add their own options - a feature that is not possible in the current eslint.

interface AlternativeFunction {
  /**
   * The name of the function that will be replaced by the alternative (`to`) function.
   */
  from: string;

  /**
   * The name of the alternative function that will replace the `from` function.
   */
  to: string;
}

interface Settings {
  '@arabasta/alternative-functions': {
    /**
     * The key of the object that holds the array of alternative functions is
     * recommended to be used as a description of the group of alternative functions.
     * Note: The key should be distinctive enough so that it won't be overwritten by other configs.
     */
    [key?: string]: AlternativeFunction[];
  };
}

const exampleSettings: Settings = {
  '@arabasta/alternative-functions': {
    redux: [
      {
        from: 'useDispatch',
        to: 'useAppDispatch',
      },
      {
        from: 'useSelector',
        to: 'useAppSelector',
      },
    ],
    'redux-thunk': [
      {
        from: 'createAsyncThunk',
        to: 'createAppAsyncThunk',
      },
    ],
  },
};