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

@slango.configs/eslint

v1.2.7

Published

Slango eslint configs

Downloads

824

Readme

ESLint Slango Eslint Configs (@slango.configs/eslint)

This package exposes eslint configurations for easy setup, the following presets are available:

| Name | Description | Includes | | -------------------- | --------------------------------------------------------------------------------------------------- | -------------------------------- | | javascript-node | Intended to be used for tooling javascript files (eg: eslint.confg.js, linte-staged.config.js, ...) | - | | typescript | Intended to be used for typescript based projects and libraries | javascript-node | | typescript-node | Intended to be used for typescript based node projects and libraries | javascript-node + typescript | | typescript-browser | Intended to be used for typescript based browser projects and libraries | javascript-node + typescript | | typescript-next | Intended to be used for typescript based next.js applications | javascript-node + typescript |

Included plugins/configs

| Name | Available in Preset | Description | | ---------------------------------------------------------------------------------------------------------------- | ------------------------ | -------------------------------------------------------- | | @eslint/js recommended | all | @eslint/js official recommended configuration | | eslint-plugin-eslint-comments recommended | all | Comments from @eslint-community for comments | | eslint-plugin-perfectionist | all | Configurable sorting rules with tiered strictness levels | | eslint-plugin-regex recommended | all | Recommended config from regexp-eslint-plugin | | eslint-plugin-prettier recommended | all | Prettier official eslint plugin's recommended config | | eslint-plugin-import recommended | all | Prettier official eslint plugin's recommended config | | typescript-eslint recommendedTypeChecked | all typescript configs | Typescript Eslint type checked recommended config | | next/core-web-vitals | typescript-next | Next.js official eslint config |

Usage

Add @slango.configs/eslint to your package.json as a dev dependency, then create a eslint.config.js file in the package.

Unless you want to override the default configuration, you can simply extend the configuration as follows:

// eslint.config.js
export { default } from '@slango.configs/eslint/{preset-you-wish-to-use}.js';

Perfectionist rule strictness

Perfectionist sorting rules are organized into tiers and can be configured with four levels of strictness:

| Level | Description | Use Case | | ---------- | -------------------------------------------------- | ---------------------------------------- | | off | All perfectionist rules disabled | When you want no automatic sorting | | relaxed | Import/export sorting only (default) | Universally accepted, industry standard | | moderate | Adds type sorting (interfaces, unions, enums) | Good for type-heavy TypeScript codebases | | strict | Full sorting including objects, classes, JSX props | Maximum consistency, use with caution |

Rule tiers

Tier 1 - Import/Export sorting (relaxed+)

  • sort-imports, sort-named-imports, sort-named-exports, sort-exports
  • sort-import-attributes, sort-export-attributes, sort-modules

Tier 2 - Type sorting (moderate+)

  • sort-union-types, sort-intersection-types, sort-heritage-clauses
  • sort-object-types, sort-interfaces, sort-enums

Tier 3 - Full sorting (strict only)

  • sort-objects, sort-classes, sort-jsx-props, sort-decorators
  • sort-switch-case, sort-variable-declarations, sort-array-includes
  • sort-sets, sort-maps

Note: Tier 3 rules are disabled by default because they can be controversial or break intentional ordering. For example, sort-decorators can break functionality when decorator order matters semantically, and sort-switch-case often disrupts intentional case ordering (common cases first, fallbacks last).

To use a custom level, import the corresponding creator and pass an options object:

// eslint.config.js
import { createTypescriptConfig } from '@slango.configs/eslint/typescript.js';

export default createTypescriptConfig({ perfectionist: 'moderate' });

Passing an unknown option or an invalid level throws a descriptive error.

Things to take into account (and possibly review)

  • At the time of writing eslint-config-prettier is needed as a dependency to use eslint-plugin-prettier
  • eslint-plugin-import-x supports eslint 9 but eslint-plugin-import does not usage comparison
  • eslint-import-resolver-node does not seem to play well with monorepo/pattern exports in package.json (thus eslint-import-resolver-typescript is used even for javascript)

Interesting links