@stak-digital/units
TypeScript icon, indicating that this package has built-in type declarations

1.10.3 • Public • Published

Lodash for unit conversions

Units by Stak Digital

codecov

A highly modular unit conversion library.

For full API docs, visit https://units.js.org

Getting Started

yarn add @stak-digital/units

  • OR -

npm install --save @stak-digital/units

Usage

The library is split into three tiers:

  • Library (index.js)
  • Conversion category (weight.js, length.js)
  • Individual function (poundsToKilograms.js)

Library Version

import units from '@stak-digital/units';

const amountInPounds = 60;
const amountInKilograms = units.poundsToKilograms(amountInPounds);
    // 27.2155
     
const amountInInches = 30;
const amountInMeters = units.inchesToMeters(amountInInches);
    // 0.762

Category Version

import convertWeight from '@stak-digital/units/weight';
import convertLength from '@stak-digital/units/length';

const amountInPounds = 60;
const amountInKilograms = convertWeight.poundsToKilograms(amountInPounds);
    // 27.2155
     
const amountInInches = 30;
const amountInMeters = convertLength.inchesToMeters(amountInInches);
    // 0.762

Individual Functions

import poundsToKilograms from '@stak-digital/units/pounds-to-kilograms';
import inchesToMeters from '@stak-digital/units/inches-to-meters';

const amountInPounds = 60;
const amountInKilograms = poundsToKilograms(amountInPounds);
    // 27.2155
     
const amountInInches = 30;
const amountInMeters = inchesToMeters(amountInInches);
    // 0.762

Supported Units

Area

  • Acres (ac)
  • Hectares (ha)
  • Square Feet (ft²)
  • Square Kilometers (km²)
  • Square Meters (m²)
  • Square Yards (yd²)

Temperature

  • Kelvin (K)
  • Celsius (˚C)
  • Fahrenheit (˚F)
  • Rankine (˚R)

Computer Data

  • bit
  • byte
  • kilobit
  • kilobyte
  • megabit
  • megabyte
  • gigabit
  • gigabyte
  • terabit
  • terabyte
  • petabit
  • petabyte

Length

  • Feet (ft)
  • Meters (m)
  • Inches (in)

Time

  • Days
  • Hours
  • Minutes
  • Seconds
  • Milliseconds
  • Microseconds
  • Nanoseconds

Weight

  • Kilograms
  • Pounds
  • Stones
  • Tonnes

Frequency

  • Hertz (Hz)
  • Kilohertz (kHz)
  • Megahertz (mHz)
  • Gigahertz (gHz)
  • Revolutions per minute (rpm)

Force

  • newton (N)
  • dyne (dyn)
  • kilopond (kp)
  • poundal (pdl)
  • pound-force (lbf)
  • ounce-force (ozf)

Development

Adding a new unit

  • If the unit belongs to an existing category, add the unit to that category; otherwise
    • Create a new category file in ./src/data/
      • Each category should have a name and units array
  • If the unit exists already, add your desired conversion in the convertTo property; otherwise
    • Create a new unit under the category with a name, symbol and convert to property. Each unit should have at least one convertTo
    • Additionally, a convertTo needs to have a respective unit in the given category to allow interoperability between the units (see below)
{
	"units": [
		{
			"name": "fahrenheit",
			"symbol": "F",
			"convertTo": {
				"celsius": {
					"formula": "(n - 32) * (5/9)",
					"nEqualsOne": -17.22222222222222
				}
			}
		},
		{
			"name": "celsius",
			"symbol": "C",
			"convertTo": {
				"fahrenheit": {
					"formula": "(n * (9/5)) + 32",
					"nEqualsOne": 33.8
				}
			}
		}
	]
}
  • Each conversion must have a formula property where the input unit is represented by n and an nEqualsOne value which represents the return value when an input of 1 is put through the formula.

Roadmap

General

  • [x] Convert existing functions into json version
  • [x] Add expand collapse to each category in the sub-nav and main of docs site
  • [ ] Add roadmap to docs site
  • [x] add typescript typings

Angles

  • Radian (rad)
  • Degree (deg)
  • Arcminute (amin)
  • Arcsecond (asec)

Volume

  • Cubic meter (m^3)
  • liters (L)
  • milliliters (mL)
  • cubic feet (cu ft)
  • cubic inches (cu in)
  • gallons (gal)
  • quarts (qt)
  • pints (pt)
  • fluid ounces (fl oz)
  • tablespoons (tbsp)
  • teaspoons (tsp)

Velocity

  • meters per second (m/s)
  • mile per hour (mph)
  • kilometer per hour (km/h)
  • feet per second (fps)
  • knot (kn)
  • speed of light (c)
  • speed of sound (s)

Fuel Efficiency

  • Kilometers per liter (km/L)
  • miles per gallon (mi/gal)
  • liter per 100 kilometers (L/100km)
  • gallons per 100 miles (gal/100mi)

Density

  • kilograms per cubic meter (kg/m^3)
  • kilograms per liter (kg/L)
  • grams per cubic centimeter (g/cm^3)
  • ounces per cubic foot (oz/ft^3)
  • ounces per cubic inch (oz/in^3)
  • pounds per cubic foot (lb/ft^3)
  • pounds per cubic inch (lb/in^3)
  • ounces per gallon (oz/gal)
  • pounds per gallon (lb/gal)

Flow

  • cubic meters per second (m^3/s)
  • liters per minute (L/min)
  • gallons per minute (gal/min)
  • cubic meters per hour (m^3/h)

Acceleration

  • Meters per second squared (m/s^2)
  • galileo (Gal)
  • standard gravity (g)
  • mile per hour per second (mph/s)
  • knot per second (kn/s)

Pressure

  • pascal (Pa)
  • pounds per square inch (psi)
  • atmosphere (atm)
  • bar (bar)
  • millibar (mbar)
  • millimeter of mercury (mmHg)
  • kilopascal (kPa)
  • megapascal (MPa)

Torque

  • Foot-pound (ft·lbf)
  • Inch-pound (in·lbf)
  • Newton meter (N·m)
  • Kilopond-meter (kp·m)

Energy

  • joule (J)
  • erg (erg)
  • kilowatt-hour (kW·h)
  • megawatt-hour (MW·h)
  • calorie (cal)
  • kilocalorie (kcal)
  • British thermal unit (Btu)

Viscosity

  • pascal seconds (Pa·s)
  • poise (P)
  • pounds per foot hour (lb/(ft·h))
  • pounds per foot second (lb/(ft·s))

Current

  • ampere (A)
  • abampere (abA)
  • statampere (statA)

Charge

  • coulomb (C)
  • abcoulomb (abC)
  • statcoulomb (statC)
  • faraday (F)
  • milliampere hour (mA·h)

Voltage

  • volt (V)
  • abvolt (abV)
  • statvolt (statV)

Luminance

  • candela per square meter (cd/m^3)
  • stilb (sb)
  • lambert (L)
  • footlambert (fL)

Illuminance

  • lux (lx)
  • phot (ph)
  • footcandle (fc)

Radiation

  • gray (Gy)
  • rad (rad)
  • sievert (Sv)
  • rem (rem)

Radioactivity

  • becquerel (Bq)
  • curie (Ci)
  • rutherford (rd)

Data Transfer Rate

  • bit per second (bit/s)
  • kilobit per second (kbit/s)
  • kilobyte per second (kB/s)
  • kibibit per second (Kibit/s)
  • megabit per second (Mbit/s)
  • megabyte per second (MB/s)
  • mebibit per second (Mibit)
  • Gigabit per second (Gbit/s)
  • Gigabyte per second (GB/s)
  • Gibibit per second (Gibit/s)
  • Terabit per second (Tbit/s)
  • Terabyte per second (TB/s)
  • Tebibit per second (Tibit/s)
  • Petabit per second (Pbit/s)
  • Petabyte per second (PB/s)
  • Pebibit per second (Pibit/s)

Changelog

1.10.0

  • Convert to TypeScript

1.8.0

  • Add frequency category

1.7.1

  • Update docs site with accordions on sections

1.7.0

  • Add support for microseconds and nanoseconds
  • Add full support for weight units

1.6.0

  • Add support for major computer data units

1.5.0

  • Add support for square meters
  • Add support for square feet
  • Add support for square kilometers
  • Add support for hectares

1.4.3

  • Add styles to docs site and update internal links

1.4.2

  • Update development documentation

1.4.1

1.4.0

  • Add support for Kelvin, Fahrenheit and Celsius conversions

1.3.0

  • Add poundsToTonnes function
  • Add tonnesToPounds function
  • Update docs site

1.2.5

  • Replace docs with link to js.org

1.2.4

  • Add dynamic docs generation

1.2.3

  • Add documentation for time functions

1.2.2

  • Add codecov integration

1.2.1

  • Add travis-ci integration

1.2.0

  • add time functions to time.js
  • add millisecondsToSeconds function
  • add millisecondsToMinutes function
  • add millisecondsToHours function
  • add millisecondsToDays function
  • add secondsToMilliseconds function
  • add minutesToMilliseconds function
  • add hoursToMilliseconds function
  • add daysToMilliseconds function

1.1.0

  • Add stonesToPounds function
  • Add poundsToStones function

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.10.3
    75
    • latest

Version History

Package Sidebar

Install

npm i @stak-digital/units

Weekly Downloads

75

Version

1.10.3

License

MIT

Unpacked Size

2.36 MB

Total Files

1217

Last publish

Collaborators

  • brycehanscomb
  • lukeboyle