UNPKG

swatchjs-utils

Version:

Utilities for SwatchJS, a framework for easily creating and exposing APIs as methods

51 lines (40 loc) 1.48 kB
'use strict'; 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 };