private async _handleWebviewMsg()

in apps/vs-code-designer/src/app/commands/workflows/openDesigner/openDesignerForLocalProject.ts [172:266]


  private async _handleWebviewMsg(msg: any) {
    switch (msg.command) {
      case ExtensionCommand.initialize: {
        this.sendMsgToWebview({
          command: ExtensionCommand.initialize_frame,
          data: {
            project: ProjectName.designer,
            panelMetadata: this.panelMetadata,
            connectionData: this.connectionData,
            baseUrl: this.baseUrl,
            workflowRuntimeBaseUrl: this.workflowRuntimeBaseUrl,
            apiVersion: this.apiVersion,
            apiHubServiceDetails: this.apiHubServiceDetails,
            readOnly: this.readOnly,
            isLocal: this.isLocal,
            isMonitoringView: this.isMonitoringView,
            workflowDetails: this.workflowDetails,
            oauthRedirectUrl: this.oauthRedirectUrl,
            hostVersion: ext.extensionVersion,
            isUnitTest: this.isUnitTest,
            unitTestDefinition: this.unitTestDefinition,
            runId: this.runId,
          },
        });
        if (!this.isUnitTest) {
          await this.validateWorkflow(this.panelMetadata.workflowContent);
        }
        break;
      }
      case ExtensionCommand.save: {
        await this.saveWorkflow(
          this.workflowFilePath,
          this.panelMetadata.workflowContent,
          msg,
          this.panelMetadata.parametersData,
          this.panelMetadata.azureDetails?.tenantId,
          this.panelMetadata.azureDetails?.workflowManagementBaseUrl
        );
        await this.validateWorkflow(this.panelMetadata.workflowContent);
        break;
      }
      case ExtensionCommand.saveBlankUnitTest: {
        await saveBlankUnitTest(this.context as IAzureConnectorsContext, Uri.file(this.workflowFilePath), msg.definition);
        break;
      }
      case ExtensionCommand.saveUnitTest: {
        await saveUnitTestDefinition(this.projectPath, this.workflowName, this.unitTestName, msg.definition);
        break;
      }
      case ExtensionCommand.addConnection: {
        await addConnectionData(this.context, this.workflowFilePath, msg.connectionAndSetting);
        break;
      }
      case ExtensionCommand.openOauthLoginPopup: {
        await env.openExternal(msg.url);
        break;
      }

      case ExtensionCommand.createFileSystemConnection: {
        {
          const connectionName = msg.connectionName;
          const { connection, errorMessage } = await this.createFileSystemConnection(msg.connectionInfo);
          this.sendMsgToWebview({
            command: ExtensionCommand.completeFileSystemConnection,
            data: {
              connectionName,
              connection,
              errorMessage,
            },
          });
        }
        break;
      }

      case ExtensionCommand.openRelativeLink: {
        if (msg.content === '/dataMapper') {
          createNewDataMapCmd(this.context);
        }
        break;
      }

      case ExtensionCommand.logTelemetry: {
        const eventName = msg.data.name ?? msg.data.area;
        ext.telemetryReporter.sendTelemetryEvent(eventName, { ...msg.data });
        break;
      }
      case ExtensionCommand.fileABug: {
        await openUrl('https://github.com/Azure/LogicAppsUX/issues/new?template=bug_report.yml');
        break;
      }

      default:
        break;
    }
  }