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();
}
}
}