Ucum.js
JavaScript library for unitsofmeasure.org (UCUM)
Install / Use
/learn @jmandel/Ucum.jsREADME
ucum.js
JavaScript implementation of UCUM (http://unitsofmeasure.org)
Units conversion
ucum.convert: Convert a value (represented as a Javascript Number) from one UCUM unit (represented as a case-sensitive UCUM string) to another, assuming they are conformant.
var one_inch = ucum.convert(2.54, 'cm', '[in_i]');
console.log(one_inch)
1
Units parsing
ucum.parse: Parse a string into a ucum.js JSON representation (an object with value as a Number, and units as an Object where keys are case-sensitive UCUM unit names and values are integers representing an exponent).
var parsed = ucum.parse('km/h');
console.log(parsed);
{ value: 1000, units: { m: 1, h: -1 } }
Units canonicalization
ucum.canonicalize: Parse a string into a ucum.js JSON representation (an object with value as a Number, and units as an Object where keys are case-sensitive UCUM unit names and values are integers representing an exponent), and convert this to an expression where all units properties are reduced to the following base units: meter, second, gram, radian, kelvin, coulomb, candela.
var canonical = ucum.canonicalize('[in_i]/a');
console.log(canonical);
{ value: 8.048774304763354e-10, units: { m: 1, s: -1 } }
To use in browser
Save and include a <script> tag for dist/ucum.js
To use in Node.js
npm install ucum.js
To build
$ git clone https://github.com/jmandel/ucum.js
$ cd ucum.js
$ npm install
$ make
Related Skills
node-connect
353.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
353.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
353.3kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
