@forge/cli

12.22.0-experimental-04cc2b912.23.0-next.7-experimental-44b7a12
out/command-line/controller/tunnel-controller.js
~out/command-line/controller/tunnel-controller.jsModified
+18−1
Index: package/out/command-line/controller/tunnel-controller.js
===================================================================
--- package/out/command-line/controller/tunnel-controller.js
+++ package/out/command-line/controller/tunnel-controller.js
@@ -1,10 +1,18 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
-exports.TunnelController = void 0;
+exports.TunnelController = exports.isValidHost = void 0;
+const net_1 = require("net");
 const cli_shared_1 = require("@forge/cli-shared");
 const tunnel_service_1 = require("../../service/tunnel-service");
 const graphql_client_1 = require("../../environment/graphql-client");
+function isValidHost(host) {
+    if (!host) {
+        return false;
+    }
+    return (0, net_1.isIP)(host) !== 0;
+}
+exports.isValidHost = isValidHost;
 class TunnelController {
     nodeTunnelService;
     tunnelView;
     configFile;
@@ -58,8 +66,9 @@
         const assistantName = this.cachedConfigService.getAssistantName();
         const options = {
             ...tunnelOptions,
             debugStartingPort: cli_shared_1.defaultDebugStartingPort,
+            debugHost: cli_shared_1.defaultDebugHost,
             assistantName
         };
         if (tunnelOptions.debug) {
             if (!tunnelOptions.debugFunctionHandlers?.length) {
@@ -75,8 +84,16 @@
             if (isNaN(port) || port < 0 || port > 65535) {
                 throw new tunnel_service_1.InvalidDebugStartingPortNumber(tunnelOptions.debugStartingPort);
             }
             options.debugStartingPort = port;
+            if (tunnelOptions.debugHost) {
+                if (isValidHost(tunnelOptions.debugHost)) {
+                    options.debugHost = tunnelOptions.debugHost;
+                }
+                else {
+                    throw new tunnel_service_1.InvalidDebugHost(tunnelOptions.debugHost);
+                }
+            }
         }
         return options;
     }
 }