intl-js-sdk-dev
Version:
This is I18n level 2 common library for javascript based clients like g11n-angular-client,g11n-js-client
57 lines (56 loc) • 2.31 kB
JavaScript
;
/*
* Copyright 2020 VMware, Inc.
* SPDX-License-Identifier: EPL-2.0
*/
Object.defineProperty(exports, "__esModule", { value: true });
const exceptions_1 = require("../exceptions");
const util_1 = require("../util");
// Enum for CurrenciesDataType
var CurrenciesDataType;
(function (CurrenciesDataType) {
CurrenciesDataType["DIGIST"] = "_digits";
CurrenciesDataType["ROUNDING"] = "_rounding";
})(CurrenciesDataType = exports.CurrenciesDataType || (exports.CurrenciesDataType = {}));
// Enum for RoundingMode
var RoundingMode;
(function (RoundingMode) {
RoundingMode[RoundingMode["ROUND_UP"] = 0] = "ROUND_UP";
RoundingMode[RoundingMode["ROUND_DOWN"] = 1] = "ROUND_DOWN";
RoundingMode[RoundingMode["ROUND_CEIL"] = 2] = "ROUND_CEIL";
RoundingMode[RoundingMode["ROUND_FLOOR"] = 3] = "ROUND_FLOOR";
RoundingMode[RoundingMode["ROUND_HALF_UP"] = 4] = "ROUND_HALF_UP";
RoundingMode[RoundingMode["ROUND_HALF_DOWN"] = 5] = "ROUND_HALF_DOWN";
RoundingMode[RoundingMode["ROUND_HALF_EVEN"] = 6] = "ROUND_HALF_EVEN";
RoundingMode[RoundingMode["ROUND_HALF_CEIL"] = 7] = "ROUND_HALF_CEIL";
RoundingMode[RoundingMode["ROUND_HALF_FLOOR"] = 8] = "ROUND_HALF_FLOOR";
RoundingMode[RoundingMode["EUCLID"] = 9] = "EUCLID";
})(RoundingMode = exports.RoundingMode || (exports.RoundingMode = {}));
// Enum for NumberFormatTypes
var NumberFormatTypes;
(function (NumberFormatTypes) {
NumberFormatTypes["DECIMAL"] = "decimal";
NumberFormatTypes["PERCENT"] = "percent";
NumberFormatTypes["CURRENCIES"] = "currencies";
NumberFormatTypes["PLURAL"] = "plural";
})(NumberFormatTypes = exports.NumberFormatTypes || (exports.NumberFormatTypes = {}));
function validateNumber(value, type) {
if (!validateInput(value)) {
throw exceptions_1.invalidParamater(`Invalid number '${value}' for '${type}'`);
}
let number;
if (typeof value === 'string' && !isNaN(+value - parseFloat(value))) {
number = +value;
}
else if (typeof value !== 'number') {
throw exceptions_1.invalidParamater(`Invalid number '${value}' for '${type}'`);
}
else {
number = value;
}
return number;
}
exports.validateNumber = validateNumber;
function validateInput(value) {
return util_1.isDefined(value) && value === value;
}