async subscribeProduct()

in src/explorer.ts [370:407]


  async subscribeProduct(product: string, version: string) {
    const pontxConfig = await findAlicloudAPIConfig(this.context);
    if (
      pontxConfig.origins?.filter(
        (item) =>
          getSpecInfoFromName(item.name || "").product === product &&
          getSpecInfoFromName(item.name || "").version === version,
      )?.length
    ) {
      vscode.window.showInformationMessage(I18N.src.explorer.allreadySub);
    } else {
      pontxConfig.origins = [
        ...(pontxConfig.origins || []),
        {
          name: `${product}__${version}`,
          url: `https://api.aliyun.com/meta/v1/products/${product}/versions/${version}/api-docs.json${getCurrentLang() === "en_US" ? "?language=en_US" : ""}`,
        },
      ];
      this.rewriteConfig(pontxConfig);
      const newPontManager = await PontManager.constructorFromPontConfigAndPlugins(
        pontxConfig,
        this.context.globalStorageUri.fsPath,
        plugins as any,
        new VSCodeLogger(),
      );
      if (newPontManager) {
        const newManager = {
          ...newPontManager,
          localPontSpecs: newPontManager.remotePontSpecs,
        };

        this.updatePontManager(newManager);
        this.updateDiffs();
        vscode.window.showInformationMessage(I18N.src.explorer.subSuccess);
        this.launchExperienceQuestionnaire();
      }
    }
  }