Observed since 20 Oct, 18:53 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
2021-beer-styles
Beer styles in JSON format based on the 2021 BJCP style guidelines.
⚠️ 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.
npm install 2021-beer-styles
Ships ESM and CommonJS builds plus type declarations. Node.js >= 18.
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' };
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.
.docx with a parsing script.25B. Saison has an extra properties.specialStatistics field. The BJCP
defines it as a table of strength variants (table / standard / super);
vitalStatistics holds the combined range and specialStatistics holds the
per-variant numbers.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 format
The data lives in src/styles.json (the single source of
truth). src/index.ts imports it, applies the types, and re-exports.
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
eslintEnvironment{
"local_name": "eslint",
"alias": false,
"peer_metadata": null
} | 8.20.0 | development |
prettierEnvironment{
"local_name": "prettier",
"alias": false,
"peer_metadata": null
} | 2.7.1 | development |
typescriptEnvironment{
"local_name": "typescript",
"alias": false,
"peer_metadata": null
} | 4.7.4 | development |
@types/jestEnvironment{
"local_name": "@types/jest",
"alias": false,
"peer_metadata": null
} | 28.1.6 | development |
eslint-plugin-jestEnvironment{
"local_name": "eslint-plugin-jest",
"alias": false,
"peer_metadata": null
} | 26.6.0 | development |
@typescript-eslint/parserEnvironment{
"local_name": "@typescript-eslint/parser",
"alias": false,
"peer_metadata": null
} | 5.30.7 | development |
@typescript-eslint/eslint-pluginEnvironment{
"local_name": "@typescript-eslint/eslint-plugin",
"alias": false,
"peer_metadata": null
} | 5.30.7 | development |
Source distribution
{
"shasum": "c3713f84e442161f1e0f4b649c6bb38a2518cd88",
"tarball": "https://registry.npmjs.org/2021-beer-styles/-/2021-beer-styles-1.0.0.tgz",
"fileCount": 8,
"integrity": "sha512-QJlEJTPJk6WFGejVfVZ0PXnCA/uJZaKcWsZbYLfnj4s8fgRmwKOwku81YqZ9XR0NG/uiBW7GIHX787IVo3wcrg==",
"signatures": [
{
"sig": "MEUCIQCQqLUhq7C6Suf5KSggXuMQ8GA/MgI5QBwB/Gp76OXgBAIgOgwB8u2DZ3cgPQcxeOFL6gzUct04guFacYT9UxFq4hQ=",
"keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"
}
],
"unpackedSize": 521977,
"npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi7GtYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoPhw/9HbKBmr2njODrY3VNjJZkY1ut7A3lUc9bd0GZknXIkqnrSRwD\r\nc2LH3hiX57I9ggPgwZ+CGtZ4FZxIuWi/sW1kMOllYEBKiNCxjB7LYupO3SDh\r\nTe5xMHxFfh1A2dFkVisTyRtfoACB1gqeRu53Jlpc2R1WA/ZO7jRM1zPuWxJg\r\nUTd/VInmQCKE0OJTEj4KUXFO/m+PlfpgAzOVzQXPqQIVlntHSyEPoVt+BHb0\r\nkzckmCY3G2mifsh/t7r7WqnnmfYdDInuc6KH+M9+n5ZzDE3GMHCeDOgYgWLz\r\npTuk/A0Qg8hVPzp1C+UOVeQlMfqOLNB/shlnSS7ITN14vzszJBTjbimJrkpr\r\nYxKwAjVTT8OGxjrT5+6t5ii5NctdgXJdJ9JQt5Z+VmaFZbBT63m4R4cs7tPX\r\nv3fds9R/b6ZF1I04ZxSg3crJRS4zCjbiTuQMb0HIuXIWZtDOXyglu06kkVtC\r\nLfsD92mmkJPzxxlBxOpdI9ntSG7Ov9tNqogZw/Ly+Ys21DylccP+cu8jf1Rr\r\nEbB+vT8K8R4oIH+6kV++dNMqABsLZkfxRiShzteD3O4f+fl8judk1qNol2dH\r\nLh8kXo+bkhXjGxT+rVgV7R96vYiLq/EP5OvOlO519RuSMxvBba3q6Rh9AQ7+\r\nasnffAKJB057r2HqsAySFzzHykMi9kYhfc4=\r\n=FvhL\r\n-----END PGP SIGNATURE-----\r\n"
}Shared repository data · GitHub
Observed since 20 Oct, 18:53 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:98d7d0bfac55cd10135d8ac875b70045b20cd00a112568abc81da90fa084de2f