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

@jabworks/oxfmt-config

v0.2.2

Published

Opinionated oxfmt formatter configuration, ported from @jabworks/prettier-config

Readme

@jabworks/oxfmt-config

Opinionated oxfmt configuration, ported from @jabworks/prettier-config.

Installation

npm install -D oxfmt @jabworks/oxfmt-config

Usage

Because oxfmt does not support extends in config files, consumers import the shared config directly in oxfmt.config.ts:

// oxfmt.config.ts
import { config } from '@jabworks/oxfmt-config';
export default config;

To extend or override settings:

// oxfmt.config.ts
import { config } from '@jabworks/oxfmt-config';
import { defineConfig } from 'oxfmt';

export default defineConfig({ ...config, printWidth: 80 });

Note: oxfmt.config.ts requires Node.js v22.18+ or v24+.

Config

| Option | Value | Notes | | ------------------------ | ------------- | ------------------------------------------------------ | | printWidth | 120 | | | tabWidth | 2 | | | useTabs | false | | | semi | true | | | singleQuote | true | | | jsxSingleQuote | true | | | quoteProps | "as-needed" | | | trailingComma | "all" | | | bracketSpacing | true | | | bracketSameLine | false | | | arrowParens | "avoid" | | | endOfLine | "lf" | | | singleAttributePerLine | true | | | sortImports | true | Built-in import sorting for the oxlint+oxfmt toolchain | | sortPackageJson | true | Built-in; replaces prettier-plugin-packagejson | | sortTailwindcss | true | Built-in; replaces prettier-plugin-tailwindcss |

Differences from @jabworks/prettier-config

  • No general JSON sorting — oxfmt has no equivalent to prettier-plugin-sort-json for arbitrary JSON files. Only package.json is sorted (via sortPackageJson). Keep Prettier for *.json if sorted JSON matters to you.
  • Import sorting is oxfmt's, not simple-import-sort's — sortImports is enabled so the oxlint+oxfmt toolchain sorts imports at all (oxlint has no simple-import-sort port), but the resulting order differs from the ESLint toolchain's custom groups.
  • sortPackageJson and sortTailwindcss are built-in — no plugins to install.
  • Long unions break differently. When a union type (of string literals, object types, or anything else) fits on one line after a break at =, Prettier keeps it there, and oxfmt puts one member per line. Seen on oxfmt 0.60 and 0.70, so it is not a regression.
  • oxfmt is still in beta — API may change before a stable release.

React Native / Expo

The config needs nothing React Native specific:

  • Native folders are skipped. oxfmt honors .gitignore, and Expo's default one already covers android/, ios/, and .expo/.
  • experimentalOperatorPosition (new in oxfmt 0.70) defaults to "end", the same as Prettier, so it is left unset.
  • sortTailwindcss does nothing in a project without Tailwind. With NativeWind it is untested.

Migrating an app from @jabworks/prettier-config: expect the first oxfmt run to touch most files that import anything, because it sorts imports, and to sort package.json. Beyond that, the output matches Prettier's except for the union difference above, so the migration diff is mostly import order.