Skip to content

EmberMN/ember-magnitude-helpers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ember-magnitude-helpers

Latest NPM release Build Status Code Climate Ember Observer Score

Want to convert a quantity like 5000981077504 bytes to 5.0TB or 4.55 TiB in your Ember.js app? This addon provides the following helpers:

Compatibility

(according to the default blueprint at least)

  • Ember.js v3.24 or above
  • Ember CLI v3.24 or above
  • Node.js v12 or above

Installation

ember install ember-magnitude-helpers

Usage

mg-prefix

Pass a number as the first parameter, optionally followed any/all of the following named parameters:

  • precision: round to this many digits (default = 3)
  • type: 'si' for base 1000, 'iec' for base 1024 (default = 'si')
  • unit: arbitrary string (default = '')
  • useName: false for abbrevation (e.g. 'G'), true for name (e.g. 'giga') (default = false)

Examples:

{{mg-prefix 123456}} => '123 k'
{{mg-prefix 1024 type="si" unit="bytes"}} => '1.02 kbytes'
{{mg-prefix 2e6 precision=1 type="iec" unit="B"}} => '2 MiB'
{{mg-prefix 1e12 unit="flops" useName=true}} => '1.00 teraflops'

You can also import this helper into JS like this:

// some-component.js
import { tracked } from '@glimmer/tracking';
import Component from '@glimmer/component';
import { mgPrefix }  from 'ember-magnitude-helpers/helpers/mg-prefix';

export default class SomeComponent extends Component {
  @tracked bytes = 1234567890;

  get humanSize() {
    // returns "1.15 GiB"
    return mgPrefix([this.bytes], {
      unit: 'B',
      type: 'iec',
    });
  }
}

Contributing

See the Contributing guide for details.

License

This project is licensed under the MIT License.