| 1234567891011121314151617181920212223242526272829 | 'use strict';const url = require('url');const ip = require('internal-ip');function createDomain(options, server) {  const protocol = options.https ? 'https' : 'http';  const hostname = options.useLocalIp    ? ip.v4.sync() || 'localhost'    : options.host || 'localhost';  // eslint-disable-next-line no-nested-ternary  const port = options.socket ? 0 : server ? server.address().port : 0;  // use explicitly defined public url  // (prefix with protocol if not explicitly given)  if (options.public) {    return /^[a-zA-Z]+:\/\//.test(options.public)      ? `${options.public}`      : `${protocol}://${options.public}`;  }  // the formatted domain (url without path) of the webpack server  return url.format({    protocol,    hostname,    port,  });}module.exports = createDomain;
 |