UNPKG

@netlify/content-engine

Version:
61 lines 2.25 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.prepareUrls = prepareUrls; const address_1 = __importDefault(require("address")); const chalk_1 = __importDefault(require("chalk")); const url_1 = __importDefault(require("url")); function prepareUrls(protocol, host, port) { const formatUrl = (hostname) => url_1.default.format({ protocol, hostname, port, pathname: `/`, }); const prettyPrintUrl = (hostname) => url_1.default.format({ protocol, hostname, port: chalk_1.default.bold(String(port)), pathname: `/`, }); const isUnspecifiedHost = host === `0.0.0.0` || host === `::`; let prettyHost = host; let lanUrlForConfig; let lanUrlForTerminal; if (isUnspecifiedHost) { prettyHost = `localhost`; try { // This can only return an IPv4 address lanUrlForConfig = address_1.default.ip(); if (lanUrlForConfig) { // Check if the address is a private ip // https://en.wikipedia.org/wiki/Private_network#Private_IPv4_address_spaces if (/^10[.]|^172[.](1[6-9]|2[0-9]|3[0-1])[.]|^192[.]168[.]/.test(lanUrlForConfig)) { // Address is private, format it for later use lanUrlForTerminal = prettyPrintUrl(lanUrlForConfig); } else { // Address is not private, so we will discard it lanUrlForConfig = undefined; } } } catch (_e) { // ignored } } // TODO collect errors (GraphQL + Webpack) in Redux so we // can clear terminal and print them out on every compile. // Borrow pretty printing code from webpack plugin. const localUrlForTerminal = prettyPrintUrl(prettyHost); const localUrlForBrowser = formatUrl(prettyHost); return { lanUrlForConfig, lanUrlForTerminal, localUrlForTerminal, localUrlForBrowser, }; } //# sourceMappingURL=prepare-urls.js.map