nhb-toolbox
Version:
A versatile collection of smart, efficient, and reusable utility functions, classes and types for everyday development needs.
51 lines (50 loc) • 2.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.VolumeConverter = exports.TimeConverter = exports.TemperatureConverter = exports.MassConverter = exports.LengthConverter = exports.DataConverter = exports.AreaConverter = void 0;
exports.Converter = Converter;
exports.converter = Converter;
const area_1 = require("./area");
Object.defineProperty(exports, "AreaConverter", { enumerable: true, get: function () { return area_1.$Area; } });
const base_1 = require("./base");
const constants_1 = require("./constants");
const data_1 = require("./data");
Object.defineProperty(exports, "DataConverter", { enumerable: true, get: function () { return data_1.$Data; } });
const length_1 = require("./length");
Object.defineProperty(exports, "LengthConverter", { enumerable: true, get: function () { return length_1.$Length; } });
const mass_1 = require("./mass");
Object.defineProperty(exports, "MassConverter", { enumerable: true, get: function () { return mass_1.$Mass; } });
const temp_1 = require("./temp");
Object.defineProperty(exports, "TemperatureConverter", { enumerable: true, get: function () { return temp_1.$Temperature; } });
const time_1 = require("./time");
Object.defineProperty(exports, "TimeConverter", { enumerable: true, get: function () { return time_1.$Time; } });
const volume_1 = require("./volume");
Object.defineProperty(exports, "VolumeConverter", { enumerable: true, get: function () { return volume_1.$Volume; } });
function Converter(value, unit) {
const category = (() => {
if (unit) {
for (const [category, values] of Object.entries(constants_1.UNITS)) {
if ([...values].includes(unit)) {
return category;
}
}
}
})();
switch (category) {
case 'area':
return new area_1.$Area(value, unit);
case 'time':
return new time_1.$Time(value, unit);
case 'data':
return new data_1.$Data(value, unit);
case 'length':
return new length_1.$Length(value, unit);
case 'mass':
return new mass_1.$Mass(value, unit);
case 'temp':
return new temp_1.$Temperature(value, unit);
case 'volume':
return new volume_1.$Volume(value, unit);
default:
return new base_1.$BaseConverter(value, unit);
}
}