in src/tree/AttachedAccountsTreeItem.ts [321:355]
private async createTreeItem(connectionString: string, api: API, label?: string, id?: string, isEmulator?: boolean): Promise<AzExtTreeItem> {
let treeItem: AzExtTreeItem;
if (api === API.MongoDB) {
if (id === undefined) {
const parsedCS = await parseMongoConnectionString(connectionString);
id = parsedCS.fullId;
}
label = label || `${id} (${getExperienceFromApi(api).shortName})`;
treeItem = new MongoAccountTreeItem(this, id, label, connectionString, isEmulator);
} else if (api === API.PostgresSingle || api === API.PostgresFlexible) {
const parsedPostgresConnString = parsePostgresConnectionString(connectionString);
treeItem = new PostgresServerTreeItem(this, parsedPostgresConnString);
} else {
const parsedCS = parseDocDBConnectionString(connectionString);
label = label || `${parsedCS.accountId} (${getExperienceFromApi(api).shortName})`;
switch (api) {
case API.Table:
treeItem = new TableAccountTreeItem(this, parsedCS.accountId, label, parsedCS.documentEndpoint, parsedCS.masterKey, isEmulator);
break;
case API.Graph:
treeItem = new GraphAccountTreeItem(this, parsedCS.accountId, label, parsedCS.documentEndpoint, undefined, parsedCS.masterKey, isEmulator);
break;
case API.Core:
treeItem = new DocDBAccountTreeItem(this, parsedCS.accountId, label, parsedCS.documentEndpoint, parsedCS.masterKey, isEmulator);
break;
default:
throw new Error(`Unexpected defaultExperience "${api}".`);
}
}
treeItem.contextValue += AttachedAccountSuffix;
return treeItem;
}