normalize-port.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. /**
  2. * Module dependencies
  3. */
  4. var util = require('util');
  5. var assert = require('assert');
  6. var _ = require('@sailshq/lodash');
  7. var flaverr = require('flaverr');
  8. /**
  9. * normalizePort()
  10. *
  11. * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  12. * @param {Ref} port
  13. * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  14. * @returns {Number}
  15. * The normalized value.
  16. * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  17. * @throws {E_BAD_CONFIG} If cannot be normalized.
  18. * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  19. */
  20. module.exports = function normalizePort (port) {
  21. assert(!_.isUndefined(port), 'Should be defined');
  22. if (_.isString(port)) {
  23. port = +port;
  24. }//>-
  25. if (!_.isNumber(port) || _.isNaN(port) || port < 1 || Math.floor(port) !== port) {
  26. throw flaverr('E_BAD_CONFIG', new Error('Invalid port (`'+util.inspect(port)+'`). Must be a positive number.'));
  27. }
  28. return port;
  29. };