@iotile/iotile-cloud
Version:
A typescript library for interfacing with the IOTile Cloud API
93 lines • 3.2 kB
JavaScript
"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