UNPKG

@iotile/iotile-cloud

Version:

A typescript library for interfacing with the IOTile Cloud API

93 lines 3.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var mdo_1 = require("./mdo"); var Unit = /** @class */ (function () { function Unit(data) { if (data === void 0) { data = {}; } this.mdo = new mdo_1.Mdo(data); this.fullName = data.unit_full; this.shortName = data.unit_short; this.slug = data.slug; if ('decimal_places' in data) { this.decimalPlaces = data.decimal_places; } if ('derived_units' in data) { this.derivedUnits = {}; for (var key in data['derived_units']) { this.derivedUnits[key] = {}; for (var name_1 in data['derived_units'][key]) { this.derivedUnits[key][name_1] = new mdo_1.Mdo(data['derived_units'][key][name_1]); } } } } Unit.prototype.initFromJSON = function (data) { this.mdo = new mdo_1.Mdo(data); this.fullName = data.unit_full; this.shortName = data.unit_short; this.slug = data.slug; if ('decimal_places' in data) { this.decimalPlaces = data.decimal_places; } if ('derived_units' in data) { this.derivedUnits = {}; for (var key in data['derived_units']) { this.derivedUnits[key] = {}; for (var name_2 in data['derived_units'][key]) { this.derivedUnits[key][name_2] = new mdo_1.Mdo(data['derived_units'][key][name_2]); } } } }; Unit.prototype.toJson = function () { var obj = { slug: this.slug, unit_full: this.fullName, unit_short: this.shortName, m: this.mdo.m, d: this.mdo.d, o: this.mdo.o, }; if (this.decimalPlaces !== undefined) { obj.decimal_places = this.decimalPlaces; } if (this.derivedUnits !== undefined) { obj.derived_units = {}; for (var key in this.derivedUnits) { obj.derived_units[key] = {}; for (var name_3 in this.derivedUnits[key]) { obj.derived_units[key][name_3] = this.derivedUnits[key][name_3].toJson(false); } } } return obj; }; Unit.prototype.setFromUnit = function (src) { this.initFromJSON(src.toJson()); }; Unit.prototype.deriveUnitTypes = function () { var keySet = []; if (this.derivedUnits) { for (var prop in this.derivedUnits) { if (this.derivedUnits.hasOwnProperty(prop)) { keySet.push(prop); } } } return keySet; }; Unit.prototype.deriveUnitsByType = function (type) { var keySet = []; if (this.derivedUnits) { for (var prop in this.derivedUnits[type]) { if (this.derivedUnits[type].hasOwnProperty(prop)) { keySet.push(prop); } } } return keySet; }; return Unit; }()); exports.Unit = Unit; //# sourceMappingURL=unit.js.map