swatchjs-utils
Version:
Utilities for SwatchJS, a framework for easily creating and exposing APIs as methods
51 lines (40 loc) • 1.48 kB
JavaScript
;
var _isNan = require('babel-runtime/core-js/number/is-nan');
var _isNan2 = _interopRequireDefault(_isNan);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var errors = require('../../errors');
var list = require('./list');
var optional = require('./optional');
// This parser is used for required number params,
// and will reject undefined or non-numeric values
function parseNumber(param) {
// Empty value should throw an error
if (param === null || param === undefined) {
throw new Error(errors.ERROR_CODE_INVALID_NUMBER);
}
var num = Number(param);
if ((0, _isNan2.default)(num)) {
throw new Error(errors.ERROR_CODE_INVALID_NUMBER);
}
return num;
}
// This parser is used for optional number params
function parseOptionalNumber(param) {
return optional.parser(parseNumber)(param);
}
// This parser is used for required list of numbers params,
// where every element in the list must be a required number
function parseNumberList(param) {
return list.parser(parseNumber)(param);
}
// This parser is used for optional list of numbers params,
// where every element in the list must be a required number
function parseOptionalNumberList(param) {
return optional.parser(parseNumberList)(param);
}
module.exports = {
parseNumber: parseNumber,
parseNumberList: parseNumberList,
parseOptionalNumber: parseOptionalNumber,
parseOptionalNumberList: parseOptionalNumberList
};