npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

eslint-plugin-react-cov

v3.4.1

Published

Custom ESLint react plugin and rules for COV, including folder naming conventions

Readme

eslint-plugin-react-cov

ESLint rules for COV React projects. The plugin enforces naming, file-extension, Kendo UI, Redux, and RTK Query conventions.

Installation

npm install --save-dev eslint-plugin-react-cov

Requirements

  • Node.js >= 24.0.0
  • ESLint 9 or 10

Usage

Use the recommended flat configuration:

import covReactRules from "eslint-plugin-react-cov";

export default [...covReactRules.configs.recommended];

To enable individual rules instead:

import { defineConfig } from "eslint/config";
import covReactRules from "eslint-plugin-react-cov";

export default defineConfig([
  {
    plugins: {
      "cov-react-rules": covReactRules
    },
    rules: {
      "cov-react-rules/folders": "error",
      "cov-react-rules/file-names": "error"
    }
  }
]);

Rules

This plugin includes the following rules:

cov-react-rules/folders

Enforces snake_case naming convention for folders under the src directory.

For example, src/api_services is valid and src/APIServices is invalid.

cov-react-rules/file-names

Enforces specific naming conventions for files based on their location:

  • Files in src subfolders use PascalCase, or start with COV followed by PascalCase.
  • Files in src/hooks start with use followed by PascalCase.
  • Files in src/services end with Api, except ErrorMiddleware.js.

cov-react-rules/js-jsx-check

Requires .jsx files when a file contains JSX and .js files when it does not.

cov-react-rules/file-extension-rules

Enforces extensions by source folder: lib, redux, services, and hooks use .js; components and pages use .jsx. The pages rule also applies to nested folders.

cov-react-rules/kendo-button-type

Requires Kendo Button components to declare a type attribute. The rule can autofix a missing attribute to type={"button"}.

cov-react-rules/kendo-id-prop

Requires configured base Kendo components to have an id. Statically known IDs must be camelCase and begin with cov.

cov-react-rules/form-component-boundaries

Requires fields inside a Kendo Form to use components from cov-kendo-form-components rather than direct Kendo components. The rule checks direct imports from @progress/kendo-react-* and allows the components listed in lib/rules/form-component-exceptions.json.

cov-react-rules/api-table-name

Requires every *Api.js file, except BaseApi.js, to declare a camelCase TABLE_NAME string and reference it in every endpoint url expression. For example, const TABLE_NAME = "streets" and url: /${TABLE_NAME}``.

cov-react-rules/redux-file-allowlist

Warns when a file other than AppNotificationSlice.js, AppSlice.js, or Store.js is added beneath src/redux. The warning keeps the code review visible without blocking applications that need an additional slice. Use RTK Query for API state whenever possible.

For an approved additional slice, configure the project-specific allowlist:

"cov-react-rules/redux-file-allowlist": ["warn", {
   allowedFiles: ["AppNotificationSlice.js", "AppSlice.js", "Store.js", "FeatureSlice.js"]
}]

cov-react-rules/rtk-query-method-kind

Requires statically known RTK Query request methods to use the matching endpoint builder:

  • GET requests use builder.query
  • POST, PUT, and DELETE requests use builder.mutation

The rule recognizes createApi imports from @reduxjs/toolkit/query and @reduxjs/toolkit/query/react. Configure an alternative module name when required:

"cov-react-rules/rtk-query-method-kind": ["error", {
   apiModules: ["@reduxjs/toolkit/query/react", "@company/rtk-query"]
}]

cov-react-rules/rtk-query-prefer-patch

Warns when an RTK Query mutation uses a static PUT method. Prefer PATCH where the API supports partial updates. This rule does not autofix because the server contract may require PUT.

Configuration

recommended enables the standard COV rules. redux-file-allowlist and rtk-query-prefer-patch use warn; the remaining recommended rules use error.

Use all to enable every exported rule, including rules added in future releases:

import covReactRules from "eslint-plugin-react-cov";

export default [...covReactRules.configs.all];

Contributing

To contribute to this project:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

License

MIT

Author

Fabian Hanggi