ae-biu
Version:
Born For AE, Born To Do
76 lines (65 loc) • 2.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = getUrls;
var _address = require('address');
var _address2 = _interopRequireDefault(_address);
var _url = require('url');
var _url2 = _interopRequireDefault(_url);
var _chalk = require('chalk');
var _chalk2 = _interopRequireDefault(_chalk);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function getUrls(host, port) {
var urls = prepareUrls('http', host, port);
return {
local: urls.localUrlForTerminal,
network: urls.lanUrlForTerminal
};
}
function prepareUrls(protocol, host, port, pathname) {
var formatUrl = function formatUrl(hostname) {
return _url2.default.format({
protocol: protocol,
hostname: hostname,
port: port,
pathname: pathname || '/'
});
};
var prettyPrintUrl = function prettyPrintUrl(hostname) {
return _url2.default.format({
protocol: protocol,
hostname: hostname,
port: _chalk2.default.bold(port),
pathname: pathname || '/'
});
};
var isUnspecifiedHost = host === '0.0.0.0' || host === '::';
var prettyHost = void 0,
lanUrlForConfig = void 0,
lanUrlForTerminal = void 0;
if (isUnspecifiedHost) {
prettyHost = 'localhost';
try {
lanUrlForConfig = _address2.default.ip();
if (lanUrlForConfig) {
if (/^10[.]|^172[.](1[6-9]|2[0-9]|3[0-1])[.]|^192[.]168[.]/.test(lanUrlForConfig)) {
lanUrlForTerminal = prettyPrintUrl(lanUrlForConfig);
} else {
lanUrlForConfig = undefined;
}
}
} catch (_e) {}
} else {
prettyHost = host;
}
var localUrlForTerminal = prettyPrintUrl(prettyHost);
var localUrlForBrowser = formatUrl(prettyHost);
return {
lanUrlForConfig: lanUrlForConfig,
lanUrlForTerminal: lanUrlForTerminal,
localUrlForTerminal: localUrlForTerminal,
localUrlForBrowser: localUrlForBrowser
};
}
module.exports = exports['default'];