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

@saabach/biome-config

v0.1.0

Published

Shared Biome lint and formatting configuration with official Tailwind class sorting.

Readme


Por que existe

Uma configuração compartilhada para escrever código com consistência: aspas simples, dois espaços, sem ponto e vírgula quando permitido e classes Tailwind organizadas automaticamente.

Regras nativas do Biome e oito plugins Grit verificam o código; o sorter oficial do Tailwind organiza as classes. O Prettier fornece os parsers usados pelo sorter, sem executar seu formatador completo.

Comece aqui

Requisitos: Node.js 20.19 ou superior.

Instale @saabach/biome-config como dependência de desenvolvimento:

pnpm add -D @saabach/biome-config
pnpm exec saabach-biome init
pnpm exec saabach-biome init --write

O primeiro init mostra um plano. O segundo aplica a configuração local, adiciona os scripts e guarda backups dos arquivos existentes que alterar. Arquivos de código permanecem intactos. Conflitos interrompem a adoção.

O mesmo fluxo com npm:

npm i -D @saabach/biome-config
npx saabach-biome init
npx saabach-biome init --write

O Biome e os componentes necessários ao sorter são dependências do pacote; não é necessário instalá-los um a um.

Usa Tailwind?

Informe o arquivo que contém seu tema. Isso permite ordenar também classes personalizadas, respeitando a configuração real do projeto.

# Tailwind v4
pnpm exec saabach-biome init --tailwind-stylesheet src/app/globals.css
pnpm exec saabach-biome init --write --tailwind-stylesheet src/app/globals.css

# Tailwind v3
pnpm exec saabach-biome init --tailwind-config tailwind.config.js
pnpm exec saabach-biome init --write --tailwind-config tailwind.config.js

Para funções e atributos adicionais, ajuste a .prettierrc.json gerada:

{
  "tailwindFunctions": ["cn", "clsx", "cva", "twMerge"],
  "tailwindAttributes": ["data-classes"]
}

Esse trecho complementa as opções existentes; preserve as demais chaves. Uma configuração Prettier concorrente ou scripts incompatíveis exigem reconciliação explícita. O inicializador não executa desinstalações.

Um comando, o fluxo inteiro

pnpm run check:fix src/components/Button.tsx
  arquivos indicados
         │
         ▼
  Biome · correções seguras de lint
         │
         ▼
  Biome · formatação
         │
         ▼
  Tailwind · ordenação oficial das classes
         │
         ▼
  estabilidade + formatação + lint sem escrita

O pipeline exige um resultado estável antes de escrever. Classes são encontradas por parsers e alteradas pelos seus intervalos na árvore sintática; não há um segundo formatador imprimindo o arquivo todo.

| Comando | O que faz | | :---: | :---: | | pnpm run format <arquivos> | Formata e ordena classes nos arquivos indicados | | pnpm run format:check | Verifica a formatação sem escrever | | pnpm run lint | Executa o lint do Biome e os plugins Grit | | pnpm run check [arquivos] | Verifica formatação e lint sem escrever | | pnpm run check:fix <arquivos> | Corrige com segurança, formata, ordena e verifica |

check:fix exige arquivos explícitos. Nenhum comando usa --unsafe. Typecheck, testes e build da aplicação continuam nos scripts próprios do projeto e devem compor sua CI; este pacote oferece a etapa de lint e estilo.

O estilo

| Convenção | Configuração | | :---: | :---: | | Indentação | 2 espaços | | Largura preferida | 80 colunas | | Aspas JS / TS | Simples | | Aspas JSX | Duplas | | Ponto e vírgula | Apenas quando necessário | | Trailing commas | all | | Parênteses em arrow functions | Sempre | | Fim de linha | Preserva o primeiro EOL identificado no arquivo | | Imports | Sem reordenação automática | | Componentes vazios | Sem imposição de self-closing | | Classes Tailwind | Sorter oficial, com o tema do projeto |

Compatibilidade

JavaScript, TypeScript, JSX, TSX, JSON, CSS e HTML. O suporte a HTML é experimental no Biome 2.5.15. A suíte cobre Tailwind v4; a integração também aceita configuração v3, mas essa versão exige validação no projeto consumidor.

Use saabach-biome init: o comando copia oito plugins para .engineering/. Na versão atual do Biome, extends sozinho não instala esses arquivos. Configurações concorrentes, scripts existentes e workspaces exigem revisão antes da adoção. O inicializador apresenta os conflitos e preserva os arquivos.

O sorter reconhece class, className, atributos e funções configuráveis, variantes, templates e temas personalizados. Não valida a existência das classes nem combina fragmentos ligados a interpolações dinâmicas. @apply é suportado pelo helper, mas não integra os 15 casos de regressão desta versão.

prettier-ignore controla apenas o sorter. Para a impressão do código, use as supressões próprias do Biome. Editores configurados apenas com o formatter Biome não executam a ordenação Tailwind; use o comando composto do pacote.

O pacote não reproduz todos os plugins ESLint nem garante impressão idêntica à do Prettier em todos os arquivos.

| Verificação | Limite | | :---: | :---: | | Referências triple-slash, espaços em comentários e linhas entre membros de classes | Sem equivalência completa | | Validade de expressões regulares dinâmicas | Sem análise completa | | Links para páginas Next.js | Sem resolução completa de rotas | | Descrições em comentários de supressão TypeScript | Cobertura parcial | | Variáveis não utilizadas com underscore | Convenções podem diferir | | Preferência por const e condições constantes em loops | Opções e análise podem diferir |

Contribuição

A suíte verifica 15 casos de formatação, idempotência, lint e instalação de um pacote empacotado em um projeto isolado. Veja CONTRIBUTING.md para executar os testes e preparar uma publicação.