Skip to content

cookielab/biome-configuration

Repository files navigation

Cookielab's Biome Configuration


Check

npm version


This package contains Biome configuration for our code style.

The code style aims to be as strict and defensive as possible to avoid bugs & unwanted side-effects and to improve code readability.

The ruleset is inspired by the Tiger Style coding principles and pretty much boils to the following core principles:

  1. Security a. Being proactive about bugs instead of reactive
  2. Performance
  3. Developer Experience a. Explicit over implicit code b. Consistent code style

Documentation

For detailed explanation on how the configuration is set up, see the attached documentation.

Installation

First add the package as development dependency.

pnpm add -D -E @cookielab.io/biome-config
yarn add -D -E @cookielab.io/biome-config
npm install -D -E @cookielab.io/biome-config

Then extend your Biome configuration with the appropriate configuration:

{
  "extends": ["@cookielab.io/biome-config/base"]
}

Available Configurations

The following configurations are available. You can click through to their respective documentation for more details.

Name Import Description
Base @cookielab.io/biome-config/base The base configuration that all rulesets extend from. All specific rules (React, Node, etc.) are disabled.
Frontend @cookielab.io/biome-config/frontend Extends from Base and has all the frontend-related rules added. Mostly accessibility and CSS-related rules.
React @cookielab.io/biome-config/react Extends from Frontend. Adds all the React-related rules.
Next @cookielab.io/biome-config/next Extends from React. Adds all the Next.js-related rules.
GraphQL @cookielab.io/biome-config/graphql Extends from Base. Adds all the GraphQL-related rules.
Node @cookielab.io/biome-config/node Extends from Base. Adds all the Node-related rules.

In addition to the rulesets above, a top-level configuration is included. See the documentation for more information.

Development

The project uses autogenerated Zod schemas from the included Biome JSON Schema. However, the conversion has to go through two convertors as the direct ones don't really work. First, the schema is converted into TypeScript types and then to Zod. See script/generateSchema.ts. To generate the schema after a Biome update, simply run:

pnpm generate

The project is linted with the output configuration. To lint it, just build the project and then run Biome:

pnpm build
pnpm lint

Finally, to generate the documentation, simply run

pnpm doc