
Security News
npm Adopts OIDC for Trusted Publishing in CI/CD Workflows
npm now supports Trusted Publishing with OIDC, enabling secure package publishing directly from CI/CD workflows without relying on long-lived tokens.
Predict the color of a batch of beer, and convert between known color values and web-friendly hex.
Convert SRM, EBC, or a list of Lovibond values to another color scale, or to a hex color.
Color values are provided by Barley Dog Brewery here
Install the library:
npm install --save chromabrew
Require the module:
let chromabrew = require('chromabrew');
Pass options which describe a batch to the Batch
constructor, or directly to the required module. See the list of accepted options below. Call hex
on the returned object to get a color:
new chromabrew.Batch({ srm: 4 }).hex();
// => '#ECE61A'
chromabrew({ srm: 4 }).hex();
// => '#ECE61A'
chromabrew({ ebc: 4 }).hex();
// => '#F8F753'
Convert between color scales:
let batch = chromabrew({ srm: 4 });
batch.srm();
// => 4
batch.ebc();
// => 7.88
batch.mcu();
// => 4.210535199414287
batch.lovibond();
// => 3.407407407407407
Specify which calculation method was used to determine the provided srm
or ebc
, or which method to use when converting between scales:
let batch = chromabrew({ srm: 14, calculator: 'daniels' });
batch.srm('daniels');
// => 14
// defaults to 'morey'
batch.srm();
// => 14.670088349307665
batch.srm('mosher');
// => 13.099999999999998
// defaults to 'morey'
batch.ebc();
// => 28.9000740481361
batch.hex('daniels');
// => '#B26033'
// defaults to 'morey'
batch.hex();
// => '#A85C37'
Any one of the following options must be passed to the module:
option | description | type |
---|---|---|
srm | the SRM of a batch | Number |
ebc | the EBC of a batch | Number |
l or lovibond | the degrees Lovibond of a batch | Number |
batch | options describing a batch in detail (see below) | Object |
This option may be used in combination with a known color value (srm
, ebc
, or l
) to specify which calculation method was used:
option | description | type |
---|---|---|
calculator | the SRM calculation method used: 'morey' (default), 'daniels' , 'mosher' , or 'barry' † | String |
† apparently they let anyone create a beer color scale
The following options define the batch
primary option:
option | description | type |
---|---|---|
mcu | the MCU of the batch, if it is already known | Number |
v or volume | the total liquid volume of the wort (required) | Number |
ingredients | an Array of ingredient options (see below; required) | Array[Object] |
litres or liters | whether volume is expressed in litres | Boolean |
kilograms or kilos | whether weight of each item in ingredients is expressed in kilograms | Boolean |
metric | shortcut to apply both litres and kilograms options | Boolean |
The following options define each ingredient in the ingredients
batch option:
option | description | type |
---|---|---|
l or lovibond | the value in degrees Lovibond of the ingredient (required) | Number |
w or weight | the weight of the ingredient used (required) | Number |
The domain of valid inputs is 0 through 40 SRM. Input values are rounded to the nearest 0.1 SRM within this domain:
chromabrew({ srm: -1 }).hex() === chromabrew({ srm: 0 }).hex();
// => true
chromabrew({ srm: Number.MAX_VALUE }).hex() === chromabrew({ srm: 40 }).hex();
// => true
chromabrew({ srm: Math.PI }).hex() === chromabrew({ srm: 3.1 }).hex();
// => true
The 'daniels'
and 'mosher'
SRM calculation scales have a minimum result of 8.4
and 4.7
, respectively. Where a provided srm
would result in a negative mcu
, the mcu
is set to 0:
let daniels = chromabrew({ srm: 4, calculator: 'daniels' });
daniels.mcu();
// => 0
daniels.srm();
// => 0
daniels.srm('daniels');
// => 8.4
let mosher = chromabrew({ srm: 4, calculator: 'mosher' });
mosher.mcu();
// => 0
mosher.srm();
// => 0
mosher.srm('mosher');
// => 4.7
FAQs
Predict the color of a batch of beer, and convert between known color values and web-friendly hex.
The npm package chromabrew receives a total of 5 weekly downloads. As such, chromabrew popularity was classified as not popular.
We found that chromabrew demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
npm now supports Trusted Publishing with OIDC, enabling secure package publishing directly from CI/CD workflows without relying on long-lived tokens.
Research
/Security News
A RubyGems malware campaign used 60 malicious packages posing as automation tools to steal credentials from social media and marketing tool users.
Security News
The CNA Scorecard ranks CVE issuers by data completeness, revealing major gaps in patch info and software identifiers across thousands of vulnerabilities.