2021-beer-styles
v2.1.0
Published
DEPRECATED — renamed to 'beer-styles' (use 'beer-styles/2021' for identical data). Beer styles in JSON format based on the 2021 BJCP style guidelines, with TypeScript types.
Maintainers
Readme
2021-beer-styles
⚠️ This package has moved.
2021-beer-styleshas been renamed tobeer-stylesand will not receive further updates. Installbeer-stylesand import frombeer-styles/2021for identical data.- npm install 2021-beer-styles + npm install beer-styles- import { beerStyles } from '2021-beer-styles'; + import { beerStyles } from 'beer-styles/2021';
beer-stylesversions its data by year: the barebeer-stylesimport tracks the latest guidelines, andbeer-styles/2021stays pinned to this data.
Beer styles in JSON format based on the 2021 BJCP style guidelines, published with TypeScript types.
Install
npm install 2021-beer-stylesShips ESM and CommonJS builds plus type declarations. Node.js >= 18.
Usage
import { beerStyles } from '2021-beer-styles';
// or: import beerStyles from '2021-beer-styles';
beerStyles[0].title; // "1. Standard American Beer"
beerStyles[0].styles[0].title; // "1A. American Light Lager"CommonJS:
const { beerStyles } = require('2021-beer-styles');Types:
import type { BeerStyles, BeerCategory, BeerStyle, VitalStatistics } from '2021-beer-styles';Raw JSON (no JS wrapper), via the subpath export:
import styles from '2021-beer-styles/styles.json' with { type: 'json' };Data shape
beerStyles is a BeerCategory[]. Each category has a title, a description,
and a list of styles; each style has a title, an optional description, and a
properties object (overallImpression, aroma, vitalStatistics, tags, …).
See src/types.ts for the full contract.
Notes
- Some styles are not 100% faithful to the BJCP guidelines — the data was
converted from the source
.docxwith a parsing script. 25B. Saisonhas an extraproperties.specialStatisticsfield. The BJCP defines it as a table of strength variants (table/standard/super);vitalStatisticsholds the combined range andspecialStatisticsholds the per-variant numbers.
Contributing
Fixes to style content and types are welcome — open an issue or PR.
npm install # also runs the build via the prepare script
npm run build # bundle src/ -> dist/ with tsup (ESM + CJS + d.ts)
npm test # tsc --noEmit: also checks src/styles.json against the types
npm run lint
npm run formatThe data lives in src/styles.json (the single source of
truth). src/index.ts imports it, applies the types, and re-exports.
