|
|
- '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;
|