ember-computed-convert-unit

1.1.0 • Public • Published

Build Status Ember Observer Score Maintainability

ember-computed-convert-unit

Provides unit conversion as a computed property wrapper around convert-units

Compatibility

ember-computed-convert-unit is made for ember 3.12 and above, but probably works for older versions too.

  • Ember.js v3.16 or above
  • Ember CLI v2.13 or above
  • Node.js v10 or above

Installation

ember install ember-computed-convert-unit

Usage

convertUnit is a computed property that you can use in the same way as you normally would do. It works for both 'classic' Ember and Ember Octane. To indicate a unit, you can use both the full name and the abbreviation of a unit. (e.g. 'kg'/'kilograms', 'ft'/'feet')

import Model       from '@ember-data/model';
import convertUnit from 'ember-computed-convert-unit'

export default Model.extend({
  lengthInMilimeters:  attr('number'),
  lengthInCentimeters: convertUnit('lengthInMilimeters', 'milimeters', 'centimeters')
})
import Model       from '@ember-data/model';
import convertUnit from 'ember-computed-convert-unit'

export default class Paper extends Model {
  @attr('number')
  lengthInMilimeters;

  @convertUnit('lengthInMilimeters', 'milimeters', 'centimeters')
  lengthInCentimeters;
}

Available conversions

This addon uses convert-units to perform the actual conversion. Check its documentation for available conversions.

Custom conversions

It's possible to add (or "overwrite") a conversion as shown in the example below. If you add a conversion for a type that's included in the library, you must use the abbreviation. In the example below feet/ft already exists as a type and TEU doesn't.

// utils/computed-convert-unit.js
export default [
  {
    from: 'ft',
    to:   'TEU',
    convert(value) {
      return value / 20;
    }
  },
  {
    from: 'TEU',
    to:   'ft',
    convert(value) {
      return value * 20;
    }
  }
];


// models/rock.js
import Model       from '@ember-data/model';
import convertUnit from 'ember-computed-convert-unit'

export default class Rock extends Model {
  @attr('number')
  lengthInFeet;

  @convertUnit('lengthInMilimeters', 'feet', 'TEU')
  volumeInTeu;
}

Contributing

See the Contributing guide for details.

License

This project is licensed under the MIT License.

Readme

Keywords

Package Sidebar

Install

npm i ember-computed-convert-unit

Weekly Downloads

7

Version

1.1.0

License

MIT

Unpacked Size

10 kB

Total Files

10

Last publish

Collaborators

  • rolandboon
  • rick10kb
  • remco10kb
  • haz901
  • michaelw8