Code Monkey home page Code Monkey logo

unitage's Introduction

unitage

Node version NPM version

Unit conversion to shorten long number:

const unitage = require('unitage');

const num = new unitage(100000, ['', 'k'], 1000);

num.toString(); // '100k'

Installation

npm install unitage -S

Usage

Create instance:

const unitage = require('unitage');

unitage(1000, ['', 'k'], 1000);

// same as

new untiage(1000, ['', 'k'], 1000);

Define a unit converter:

const unitage = require('unitage');

const byte = unitage.define(['b', 'kb', 'mb'], 1024);

byte(1).toString(); // '1b'
byte(1024).toString(); // '1kb'
byte(4194304).toString(); // '4mb'

unitage.define(func)would return a function which accepts value parameter and return a unitage instance.

Each unit can be configured with different multiples:

const unitage = require('unitage');

const level = unitage.define(['', {
    unit: 'hundred',
    step: 100
}, {
    unit: 'thousand',
    step: 10
}, {
    unit: 'million',
    step: 1000
}]);

level(1).toString(); // '1'
level(120).toString(); // '1.2hundred'
level(13000).toString(); // '13thousand'
level(4300000).toString(); // '4.3million'

Status

  • value: actual value
  • number: display value
  • unit: current unit
const unitage = require('unitage');

const num = unitage(1200, ['b', 'kb', 'mb'], 1024);

num.toString(); // '1.17kb'

num.value === 1200;
num.number === 1.171875;
num.unit === 'kb';

Methods

  • toString([unit=this.unit, maxDigits=2])

    const unitage = require('unitage');
    
    const num = unitage(1200, ['b', 'kb', 'mb'], 1024);
    
    String(num) === (num + '') === num.toString(); // '1.17kb'
    
    num.toString(4); // '1.1719kb'
    num.toString('mb'); // '0mb'
    num.toString('mb', Infinity); // '0.0011444091796875mb'
  • tryUnit(unit): Try the max unit while ensure the display value is not less than 1

    const unitage = require('unitage');
    
    const num = unitage(1200, ['b', 'kb', 'mb'], 1024);
    
    String(num); // '1.17kb'
    
    num.tryUnit('b');
    
    num.toString(); // '1200b'
    
    num.tryUnit('mb');
    
    num.toString(); // '1.17kb'
  • setUnit(unit): specify unit

    const unitage = require('unitage');
    
    const num = unitage(1200, ['b', 'kb', 'mb'], 1024);
    
    String(num); // '1.17kb'
    
    num.setUnit('mb');
    
    num.toString(Infinity); // '0.0011444091796875mb'
  • setValue(value): specify the actual value

    const unitage = require('unitage');
    
    const num = unitage(1200, ['b', 'kb', 'mb'], 1024);
    
    String(num); // '1.17kb'
    
    num.setValue(1024);
    
    num.toString(); // '1kb'
  • setNumber(value): specify the display value

    const unitage = require('unitage');
    
    const num = unitage(1200, ['b', 'kb', 'mb'], 1024);
    
    String(num); // '1.17kb'
    
    num.setNumber(2);
    
    num.toString(); // '2kb'
    
    num.number; // 2
    
    num.value; // 2048
    
    num.unit; // 'kb'
  • getNumber(unit=this.unit, maxDigits=2): get the display value

    const unitage = require('unitage');
    
    const num = unitage(1200, ['b', 'kb', 'mb'], 1024);
    
    String(num); // '1.17kb'
    
    num.getNumber() === num.number; // 1.17
    
    num.getNumber('b'); // 1200
    
    num.getNumber('mb', Infinity); // 0.0011444091796875

unitage's People

Contributors

lxjwlt avatar

Watchers

 avatar  avatar

unitage's Issues

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.