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 🙏

© 2024 – Pkg Stats / Ryan Hefner

@ndhoule/eslint-config

v8.0.0-2

Published

An opinionated but flexible set of ESLint configurations.

Downloads

46

Readme

@ndhoule/eslint-config

An opinionated but flexible set of ESLint configurations.

This configuration:

  • Is mostly composed out of other plugins' recommended configuration sets. It further enables some (hopefully uncontroversial) rules that catch common gotchas and improve consistency.
  • Aggressively enables rules that produce consistent style. It assumes you're using Prettier to style your code, and further enables rules that free developers up from style (sorting import declarations and members, etc.).
  • Centralizes installation and maintenance of ESLint plugins as much as possible. Rather than installing, configuring, and maintaining a ton of ESLint plugins, install one package.
  • Reduces boilerplate by smoothing out common conflicts between plugins.

Installation

Install via your package manager of choice:

npm install -D @ndhoule/eslint-config
yarn add -D @ndhoule/eslint-config

You'll also need to install eslint and prettier, which are peer dependencies.

You will also need to install react and typescript if you're using those configurations; these are also represented as peer dependencies.

Configurations

  • @ndhoule/eslint-config/recommended: A base configuration that enforces best practices. You probably want this rule set enabled at the root of your configuration.
  • @ndhoule/eslint-config/jest: A configuration for Jest tests.
  • @ndhoule/eslint-config/lodash: A configuration for Lodash. You may need to configure the eslint-plugin-lodash plugin; consult its documentation for more information.
  • @ndhoule/eslint-config/node: A configuration for files run in a Node runtime.
  • @ndhoule/eslint-config/node/babel: A configuration for files run in a Node runtime that are first transpiled via Babel (or a similar transpiler like TSC).
  • @ndhoule/eslint-config/node/typescript: A configuration for TypeScript files run in a Node runtime.
  • @ndhoule/eslint-config/react: A configuration for React components/applications. You may need to configure the eslint-plugin-react plugin; consult its documentation for more information.
  • @ndhoule/eslint-config/react/typescript: A configuration for React components/applications with TypeScript-specific rules enabled.
  • @ndhoule/eslint-config/react/jsx-runtime: A configuration for React applications that use the JSX transform.
  • @ndhoule/eslint-config/testing-library: A configuration for Testing Library tests.
  • @ndhoule/eslint-config/testing-library/react: A configuration for Testing Library React tests.
  • @ndhoule/eslint-config/typescript: A configuration for TypeScript files.

Usage

The most effective way to use this configuration is in conjunction with overrides. For example:

// .eslintrc.js
module.exports = {
  root: true,
  extends: "@ndhoule/eslint-config/recommended",
  overrides: [
    // TypeScript files
    {
      files: ["src/**/*.ts", "src/**/*.tsx"],
      parserOptions: {
        tsconfigRootDir: __dirname,
        project: "./tsconfig.json",
      },
      extends: "@ndhoule/eslint-config/typescript",
    },
    // Tests
    {
      files: ["src/**/*.test.js", "src/**/*.test.ts"],
      extends: ["@ndhoule/eslint-config/jest"],
    },
    // React tests
    {
      files: ["src/**/*.test.jsx", "src/**/*.test.tsx"],
      extends: [
        "@ndhoule/eslint-config/jest",
        "@ndhoule/eslint-config/testing-library/react",
      ],
    },
  ],
};