GithubHelp home page GithubHelp logo

nosferatoy / units-converter Goto Github PK

View Code? Open in Web Editor NEW
47.0 3.0 11.0 1.5 MB

A simple utility library to measure and convert between units

License: MIT License

JavaScript 100.00%
units conversion convert-units es6-modules commonjs javascript measurement-units unit-of-measure imperial metric

units-converter's Introduction

Units Converter

A simple library to convert units. Heavily based on convert-units.

CircleCI Codacy Badge Codacy Badge

An example implementation of the library.

Key Features

  • Tree shakable.
  • No dependencies.
  • Build for es6, cmj and umd.
  • Tested to 4 significant figures.

Installation

npm install units-converter --save

Usage

The library provide a simple chained API to transform units of the same type. The units are broken down to modules, so it is possible and recommended, to load only the unite types that you are using.

import { voltage } from 'units-converter';

voltage(1).from('V').to('mV').value;
//1000

or

import * as converter from 'units-converter';

converter.voltage(1).from('V').to('mV').value;
//1000

converter.mass(1).from('lb').to('oz').value;
//16
  • Convert unit will return an object of the unit specifed in the "to" function
import { length } from 'units-converter';

length(1200).from('mm').to('m');
 /* {
      value: 1.2,
      unit: 'm',
      system: 'metric',
      singular: 'Meter',
      plural: 'Meters'
    } */
  • Convert unit to Best
import { length } from 'units-converter';

// the smallest unit with a value above 1
length(12000).from('mm').toBest();
/* {  
      value: 1.2,
      unit: 'm',
      system: 'metric',
      singular: 'Meter',
      plural: 'Meters'
    } */

// the smallest unit excluding meters
length(12000).from('mm').toBest({ exclude: ['m'] });
 /* {
      value: 1200,
      unit: 'cm',
      system: 'metric',
      singular: 'Centimeter',
      plural: 'Centimeters'
    } */

// the smallest unit with a value equal to or above 10
length(900).from('mm').toBest({ cutOffNumber: 10 });
 /* {
      value: 90,
      unit: 'cm',
      system: 'metric',
      singular: 'Centimeter',
      plural: 'Centimeters'
    } */
    
// the smallest unit with a value equal to or above 10
length(1000).from('mm').toBest({ cutOffNumber: 10 });
 /* {
      value: 100,
      unit: 'cm',
      system: 'metric',
      singular: 'Centimeter',
      plural: 'Centimeters'
    } */
  • Possibilities will return an array with the abbreviations of the available units
import { voltage } from 'units-converter';

voltage().from('V').possibilities();
// [ 'V', 'mV', 'kV' ]
  • Describe will return an object with all the details of the unit
import { voltage } from 'units-converter';

voltage().describe('V');

/* { 
      unit: 'V', 
      system: 'metric', 
      singular: 'Volt', 
      plural: 'Volts' 
    } */
  • List will return and array with the description of all the available units
import { voltage } from 'units-converter';

voltage().list();

/* [
    { 
      unit: 'V', 
      system: 'metric', 
      singular: 'Volt', 
      plural: 'Volts' 
    },
    {
      unit: 'mV',
      system: 'metric',
      singular: 'Millivolt',
      plural: 'Millivolts'
    },
    {
      unit: 'kV',
      system: 'metric',
      singular: 'Kilovolt',
      plural: 'Kilovolts'
    }
  ] */

Units

Length

  • mm
  • cm
  • m
  • in
  • ft-us
  • ft
  • fathom
  • mi
  • nMi

Area

  • mm2
  • cm2
  • m2
  • ha
  • km2
  • in2
  • ft2
  • ac
  • mi2

Mass

  • mcg
  • mg
  • g
  • kg
  • oz
  • lb
  • mt
  • t

Volume

  • mm3
  • cm3
  • ml
  • l
  • kl
  • m3
  • km3
  • tsp
  • Tbs
  • in3
  • fl-oz
  • cup
  • pnt
  • qt
  • gal
  • ft3
  • yd3

Volume Flow Rate

  • mm3/s
  • cm3/s
  • ml/s
  • cl/s
  • dl/s
  • l/s
  • l/min
  • l/h
  • kl/s
  • kl/min
  • kl/h
  • m3/s
  • m3/min
  • m3/h
  • km3/s
  • tsp/s
  • Tbs/s
  • in3/s
  • in3/min
  • in3/h
  • fl-oz/s
  • fl-oz/min
  • fl-oz/h
  • cup/s
  • pnt/s
  • pnt/min
  • pnt/h
  • qt/s
  • gal/s
  • gal/min
  • gal/h
  • ft3/s
  • ft3/min
  • ft3/h
  • yd3/s
  • yd3/min
  • yd3/h'

Temperature

  • C
  • F
  • K
  • R

Time

  • ns
  • mu
  • ms
  • s
  • min
  • h
  • d
  • week
  • month
  • year

Frequency

  • Hz
  • mHz
  • kHz
  • MHz
  • GHz
  • THz
  • rpm
  • deg/s
  • rad/s

Speed

  • m/s
  • km/h
  • m/h
  • knot
  • ft/s

Pace

  • s/m
  • min/km
  • s/ft
  • min/km

Pressure

  • Pa
  • hPa
  • kPa
  • MPa
  • bar
  • torr
  • psi
  • ksi

Digital

  • b
  • Kb
  • Mb
  • Gb
  • Tb
  • B
  • KB
  • MB
  • GB
  • TB

Illuminance

  • lx
  • ft-cd

Parts-Per

  • ppm
  • ppb
  • ppt
  • ppq

Voltage

  • V
  • mV
  • kV

Current

  • A
  • mA
  • kA

Power

  • W
  • mW
  • kW
  • MW
  • GW

Apparent Power

  • VA
  • mVA
  • kVA
  • MVA
  • GVA

Reactive Power

  • VAR
  • mVAR
  • kVAR
  • MVAR
  • GVAR

Energy

  • Wh
  • mWh
  • kWh
  • MWh
  • GWh
  • J
  • kJ

Reactive Energy

  • VARh
  • mVARh
  • kVARh
  • MVARh
  • GVARh

Angle

  • deg
  • rad
  • grad
  • arcmin
  • arcsec

Charge

  • c
  • mC
  • μC
  • nC
  • pC

Force

  • N
  • kN
  • lbf

Acceleration

  • g (g-force)
  • m/s2

Road map

  • Add types to support better integration with typescript using projects.

  • Add functionality for the addition of custom units.

  • Add more units, the goal is to approach the amount of units provided by matlab.

  • Rewrite the project with typescript.

units-converter's People

Contributors

dependabot[bot] avatar mugrufis avatar nosferatoy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

units-converter's Issues

Support for stones (mass)

Hello,

Is there the possibility to add support for stones in mass, or perhaps a way to easily extend the functions to add any units that are not supported?

Thanks,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.