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

@liberfi.io/eslint-config

v0.1.50

Published

Shared ESLint configuration for the Liberfi React SDK monorepo. Provides a single flat config that covers TypeScript, React, code style, and monorepo boundary enforcement, consumed at the root level so individual packages need no ESLint setup.

Downloads

4,330

Readme

@liberfi.io/eslint-config

Shared ESLint configuration for the Liberfi React SDK monorepo. Provides a single flat config that covers TypeScript, React, code style, and monorepo boundary enforcement, consumed at the root level so individual packages need no ESLint setup.

Design Philosophy

  • Centralised, root-level config — One config at the monorepo root; packages inherit it without duplicating setup.
  • Modern flat config — Uses ESLint v9+ defineConfig and flat config arrays, no legacy .eslintrc.
  • Warnings over errors — Most rules are "warn" to keep the DX unblocking while still surfacing issues; only critical rules (monorepo boundaries) are "error".
  • Prettier-lasteslint-config-prettier is applied last to disable formatting rules that conflict with Prettier.

Installation

This is a workspace-internal package. It is already included as a root-level dev dependency:

pnpm add -D @liberfi.io/eslint-config --workspace

Peer Dependencies

The consuming project must have eslint installed (v9+).

API Reference

Default Export

The package exports a flat config array via index.mjs:

import customEslintConfig from "@liberfi.io/eslint-config";

Type: FlatConfig[] — an array of ESLint flat config objects ready to pass to defineConfig.

Included Plugins & Configs

| Plugin / Config | Purpose | | ----------------------------- | ------------------------------------------------ | | typescript-eslint | TypeScript-aware linting (recommended preset) | | eslint-plugin-react | React best practices (recommended + jsx-runtime) | | eslint-plugin-react-hooks | Rules of Hooks enforcement | | eslint-plugin-react-refresh | React Refresh / HMR compatibility | | @stylistic/eslint-plugin | Code style rules | | eslint-plugin-monorepo-cop | Prevents cross-package relative imports | | eslint-config-prettier | Disables rules that conflict with Prettier | | globals | Browser globals |

Key Rules

| Rule | Severity | Notes | | ------------------------------------------------- | -------- | ----------------------------------------- | | no-console | warn | Allows console.warn and console.error | | @typescript-eslint/no-explicit-any | warn | | | @typescript-eslint/no-unused-vars | warn | | | @typescript-eslint/no-namespace | off | | | @typescript-eslint/ban-ts-comment | off | | | react/prop-types | off | TypeScript handles prop validation | | react-hooks/rules-of-hooks | warn | | | monorepo-cop/no-relative-import-outside-package | error | Enforces package boundaries | | react-refresh/only-export-components | off | |

Global Ignores

The config ignores: build/, dist/, node_modules/, public/, __test__/, storybook-static/, *.js, *.cjs, *.d.ts.

Usage Examples

Root eslint.config.mjs

import { defineConfig } from "eslint/config";
import customEslintConfig from "@liberfi.io/eslint-config";

export default defineConfig(customEslintConfig);

With additional project-specific overrides

import { defineConfig } from "eslint/config";
import customEslintConfig from "@liberfi.io/eslint-config";

export default defineConfig([
  ...customEslintConfig,
  {
    rules: {
      "no-console": "error",
    },
  },
]);

Future Improvements

  • Remove unused dependencies (@eslint/js, eslint-config-eslint, eslint-config-turbo, eslint-plugin-import).
  • Remove duplicate rule declarations in index.mjs.
  • Remove phantom tailwindcss/no-custom-classname rule (plugin is not active).
  • Clean up commented-out code blocks.
  • Add Tailwind CSS v4 plugin support when available.
  • Consider exporting a configurable function instead of a static array for consumer flexibility.
  • Raise react-hooks/rules-of-hooks to "error" (violations cause runtime bugs).