@forge/cli

12.10.1-next.4-experimental-2969aa012.10.1-next.4-experimental-e14a289
out/command-line/controller/settings-controller.js
~out/command-line/controller/settings-controller.jsModified
+25−1
Index: package/out/command-line/controller/settings-controller.js
===================================================================
--- package/out/command-line/controller/settings-controller.js
+++ package/out/command-line/controller/settings-controller.js
@@ -3,9 +3,9 @@
 exports.SettingsController = exports.ALLOWED_SETTINGS = void 0;
 const cli_shared_1 = require("@forge/cli-shared");
 const manifest_1 = require("@forge/manifest");
 const environment_1 = require("../environment");
-exports.ALLOWED_SETTINGS = ['usage-analytics', 'default-environment', 'seasonal-effects'];
+exports.ALLOWED_SETTINGS = ['usage-analytics', 'default-environment', 'seasonal-effects', 'global-proxy'];
 class SettingsController {
     settingsView;
     cachedConfigService;
     getAppConfig;
@@ -61,8 +61,18 @@
             set: async (value) => {
                 const parsedValue = this.parseBoolean(value);
                 this.cachedConfigService.setSeasonalEffects(parsedValue);
             }
+        },
+        'global-proxy': {
+            description: cli_shared_1.Text.settings.globalProxy.description,
+            get: async () => this.cachedConfigService.getGlobalProxy(),
+            set: async (value) => {
+                this.cachedConfigService.setGlobalProxy(value);
+            },
+            delete: async () => {
+                this.cachedConfigService.deleteGlobalProxy();
+            }
         }
     };
     parseBoolean(value) {
         switch (value) {
@@ -76,16 +86,30 @@
     }
     isAllowedSetting(preference) {
         return exports.ALLOWED_SETTINGS.includes(preference);
     }
+    isAllowedDeletingSetting(preference) {
+        return preference === 'global-proxy';
+    }
     async showSettings(json) {
         const settings = [];
         for (const settingName of exports.ALLOWED_SETTINGS) {
             const setting = this.SETTINGS_MAP[settingName];
             settings.push([settingName, setting.description, await setting.get()]);
         }
         this.settingsView.showSettings(settings, json);
     }
+    async deleteSetting(preference) {
+        if (!this.isAllowedDeletingSetting(preference)) {
+            throw new cli_shared_1.ValidationError(cli_shared_1.Text.settings.delete.invalidSetting);
+        }
+        const setting = this.SETTINGS_MAP[preference];
+        if (!setting.delete) {
+            throw new cli_shared_1.ValidationError(cli_shared_1.Text.settings.delete.invalidSetting);
+        }
+        await setting.delete();
+        this.settingsView.deleteSuccess(preference);
+    }
     async setSetting(preference, value) {
         if (!this.isAllowedSetting(preference)) {
             throw new cli_shared_1.ValidationError(cli_shared_1.Text.settings.set.invalidSetting(exports.ALLOWED_SETTINGS));
         }