UNPKG

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
"use strict"; 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); } }