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

@rajzik/oxlint-config

v4.0.2

Published

Reusable Oxlint config for personal projects

Downloads

555

Readme

@rajzik/oxlint-config

Shareable Oxlint configuration for personal projects.

It provides a base config plus focused presets for Node.js, React, JSDoc, libraries, and Turborepo projects. You can either compose the exported configs manually or use buildOxlintConfig() to generate a project-specific setup.

Installation

npm install --save-dev @rajzik/oxlint-config oxlint
pnpm install --save-dev @rajzik/oxlint-config oxlint
yarn add --dev @rajzik/oxlint-config oxlint

If you use oxlint-tsgolint in your project, install it alongside oxlint. The package declares it as an optional peer dependency.

npm install --save-dev @rajzik/oxlint-config oxlint oxlint-tsgolint
pnpm install --save-dev @rajzik/oxlint-config oxlint oxlint-tsgolint
yarn add --dev @rajzik/oxlint-config oxlint oxlint-tsgolint

Usage

Recommended: buildOxlintConfig()

Create an oxlint.config.ts file:

import { buildOxlintConfig } from '@rajzik/oxlint-config';

export default buildOxlintConfig({
  node: true,
  turbo: true,
});

React project

import { buildOxlintConfig } from '@rajzik/oxlint-config';

export default buildOxlintConfig({
  react: true,
  turbo: true,
});

Library project with overrides

libraryConfig should be applied last so its relaxed library-specific rules win over earlier presets. buildOxlintConfig() already handles that ordering for you.

import { buildOxlintConfig } from '@rajzik/oxlint-config';

export default buildOxlintConfig({
  node: true,
  library: true,
  overrides: {
    rules: {
      'eslint/no-console': 'warn',
    },
  },
});

Manual Composition

If you want full control over the extends order, compose the exported configs manually:

import {
  baseConfig,
  libraryConfig,
  nodeConfig,
  reactConfig,
  turboConfig,
} from '@rajzik/oxlint-config';
import { defineConfig } from 'oxlint';

export default defineConfig({
  extends: [baseConfig, nodeConfig, reactConfig, turboConfig, libraryConfig],
});

API

buildOxlintConfig(configuration?)

Builds a ready-to-use Oxlint config from the shared presets.

import { buildOxlintConfig } from '@rajzik/oxlint-config';

export default buildOxlintConfig({
  react: true,
  node: true,
  turbo: true,
  jsdoc: true,
  library: false,
  overrides: {
    rules: {
      'typescript/no-explicit-any': 'warn',
    },
  },
});

Options

react

Enables React and accessibility rules, browser environment settings, and eslint-plugin-react-hooks integration.

Default: false

node

Enables Node.js environment settings and Node-specific lint rules.

Default: false

turbo

Enables Turborepo-specific rules via eslint-plugin-turbo.

Default: false

jsdoc

Enables the jsdoc plugin.

Default: false

library

Applies library-specific rule adjustments. This config is intended to run last.

Default: false

overrides

Additional Oxlint config merged into the generated result. Any overrides.extends entries are appended before libraryConfig.

baseConfig

The shared base config used by all other presets.

It enables the following plugins:

  • eslint
  • oxc
  • import
  • promise
  • typescript
  • unicorn

It also applies shared ignore patterns for generated output and dependency directories.

import { baseConfig } from '@rajzik/oxlint-config';
import { defineConfig } from 'oxlint';

export default defineConfig({
  extends: [baseConfig],
});

nodeConfig

Adds Node.js environment support and Node-specific rules.

import { baseConfig, nodeConfig } from '@rajzik/oxlint-config';
import { defineConfig } from 'oxlint';

export default defineConfig({
  extends: [baseConfig, nodeConfig],
});

reactConfig

Adds React, JSX accessibility, browser environment support, and React Hooks rules.

This preset uses eslint-plugin-react-hooks through Oxlint JS plugins.

import { baseConfig, reactConfig } from '@rajzik/oxlint-config';
import { defineConfig } from 'oxlint';

export default defineConfig({
  extends: [baseConfig, reactConfig],
});

turboConfig

Adds Turborepo-specific rules.

This preset uses eslint-plugin-turbo through Oxlint JS plugins.

import { baseConfig, turboConfig } from '@rajzik/oxlint-config';
import { defineConfig } from 'oxlint';

export default defineConfig({
  extends: [baseConfig, turboConfig],
});

jsdocConfig

Adds the jsdoc plugin.

import { baseConfig, jsdocConfig } from '@rajzik/oxlint-config';
import { defineConfig } from 'oxlint';

export default defineConfig({
  extends: [baseConfig, jsdocConfig],
});

libraryConfig

Applies library-specific rule relaxations.

This preset must be last in the extends array when used manually.

import { baseConfig, libraryConfig, nodeConfig } from '@rajzik/oxlint-config';
import { defineConfig } from 'oxlint';

export default defineConfig({
  extends: [baseConfig, nodeConfig, libraryConfig],
});

Notes

  • libraryConfig should be the last item in extends when composing configs manually.
  • buildOxlintConfig() already places libraryConfig last.
  • reactConfig depends on eslint-plugin-react-hooks.
  • turboConfig depends on eslint-plugin-turbo.
  • oxlint-tsgolint is an optional peer dependency and only needs to be installed if your project uses it.