MCPcopy Index your code
hub / github.com/webpack/webpack-dev-server / openBrowser

Method openBrowser

lib/Server.js:2707–2748  ·  view source on GitHub ↗

* @private * @param {string} defaultOpenTarget default open target * @returns {Promise }

(defaultOpenTarget)

Source from the content-addressed store, hash-verified

2705 * @returns {Promise<void>}
2706 */
2707 async openBrowser(defaultOpenTarget) {
2708 const open = (await import("open")).default;
2709
2710 Promise.all(
2711 /** @type {NormalizedOpen[]} */
2712 (this.options.open).map((item) => {
2713 /**
2714 * @type {string}
2715 */
2716 let openTarget;
2717
2718 if (item.target === "<url>") {
2719 openTarget = defaultOpenTarget;
2720 } else {
2721 openTarget = Server.isAbsoluteURL(item.target)
2722 ? item.target
2723 : new URL(item.target, defaultOpenTarget).toString();
2724 }
2725
2726 return open(openTarget, item.options).catch(() => {
2727 this.logger.warn(
2728 `Unable to open "${openTarget}" page${
2729 item.options.app
2730 ? ` in "${
2731 /** @type {import("open").App} */
2732 (item.options.app).name
2733 }" app${
2734 /** @type {import("open").App} */
2735 (item.options.app).arguments
2736 ? ` with "${
2737 /** @type {import("open").App} */
2738 (item.options.app).arguments.join(" ")
2739 }" arguments`
2740 : ""
2741 }`
2742 : ""
2743 }. If you are running in a headless environment, please do not use the "open" option or related flags like "--open", "--open-target", and "--open-app-name".`,
2744 );
2745 });
2746 }),
2747 );
2748 }
2749
2750 /**
2751 * @private

Callers 1

logStatusMethod · 0.95

Calls 1

isAbsoluteURLMethod · 0.80

Tested by

no test coverage detected