mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-12-23 10:51:30 +00:00
Compare commits
5 Commits
remove-jqu
...
v-yiqcao/a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
34f53709c8 | ||
|
|
ed7a8dafcf | ||
|
|
2e83adc7db | ||
|
|
bbddeddbc7 | ||
|
|
e28b6cd44a |
@@ -2,33 +2,42 @@ import * as Constants from "../../../Common/Constants";
|
||||
import * as DataModels from "../../../Contracts/DataModels";
|
||||
|
||||
export class ConnectionStringParser {
|
||||
public static parseConnectionString(connectionString: string): DataModels.AccessInputMetadata {
|
||||
public static parseConnectionString(connectionString: string): DataModels.AccessInputMetadata | undefined {
|
||||
if (!!connectionString) {
|
||||
try {
|
||||
const accessInput: DataModels.AccessInputMetadata = {} as DataModels.AccessInputMetadata;
|
||||
const connectionStringParts = connectionString.split(";");
|
||||
|
||||
connectionStringParts.forEach((connectionStringPart: string) => {
|
||||
if (RegExp(Constants.EndpointsRegex.sql).test(connectionStringPart)) {
|
||||
accessInput.accountName = connectionStringPart.match(Constants.EndpointsRegex.sql)[1];
|
||||
const sqlMatchResult = connectionStringPart.match(Constants.EndpointsRegex.sql);
|
||||
const mongoMatchResult = connectionStringPart.match(Constants.EndpointsRegex.mongo);
|
||||
const mongoComputeMatchResult = connectionStringPart.match(Constants.EndpointsRegex.mongoCompute);
|
||||
const tableMatchResult = connectionStringPart.match(Constants.EndpointsRegex.table);
|
||||
|
||||
if (sqlMatchResult && sqlMatchResult.length > 1) {
|
||||
accessInput.accountName = sqlMatchResult[1];
|
||||
accessInput.apiKind = DataModels.ApiKind.SQL;
|
||||
} else if (RegExp(Constants.EndpointsRegex.mongo).test(connectionStringPart)) {
|
||||
const matches: string[] = connectionStringPart.match(Constants.EndpointsRegex.mongo);
|
||||
accessInput.accountName = matches && matches.length > 1 && matches[2];
|
||||
} else if (mongoMatchResult && mongoMatchResult.length > 2) {
|
||||
accessInput.accountName = mongoMatchResult[2];
|
||||
accessInput.apiKind = DataModels.ApiKind.MongoDB;
|
||||
} else if (RegExp(Constants.EndpointsRegex.mongoCompute).test(connectionStringPart)) {
|
||||
const matches: string[] = connectionStringPart.match(Constants.EndpointsRegex.mongoCompute);
|
||||
accessInput.accountName = matches && matches.length > 1 && matches[2];
|
||||
} else if (mongoComputeMatchResult && mongoComputeMatchResult.length > 2) {
|
||||
accessInput.accountName = mongoComputeMatchResult[2];
|
||||
accessInput.apiKind = DataModels.ApiKind.MongoDBCompute;
|
||||
} else if (Constants.EndpointsRegex.cassandra.some(regex => RegExp(regex).test(connectionStringPart))) {
|
||||
} else if (
|
||||
Constants.EndpointsRegex.cassandra &&
|
||||
Constants.EndpointsRegex.cassandra.some(regex => RegExp(regex).test(connectionStringPart))
|
||||
) {
|
||||
Constants.EndpointsRegex.cassandra.forEach(regex => {
|
||||
if (RegExp(regex).test(connectionStringPart)) {
|
||||
accessInput.accountName = connectionStringPart.match(regex)[1];
|
||||
accessInput.apiKind = DataModels.ApiKind.Cassandra;
|
||||
const connectionMatch = connectionStringPart.match(regex);
|
||||
if (connectionMatch && connectionMatch.length > 1) {
|
||||
accessInput.accountName = connectionMatch[1];
|
||||
accessInput.apiKind = DataModels.ApiKind.Cassandra;
|
||||
}
|
||||
}
|
||||
});
|
||||
} else if (RegExp(Constants.EndpointsRegex.table).test(connectionStringPart)) {
|
||||
accessInput.accountName = connectionStringPart.match(Constants.EndpointsRegex.table)[1];
|
||||
} else if (tableMatchResult && tableMatchResult.length > 1) {
|
||||
accessInput.accountName = tableMatchResult[1];
|
||||
accessInput.apiKind = DataModels.ApiKind.Table;
|
||||
} else if (connectionStringPart.indexOf("ApiKind=Gremlin") >= 0) {
|
||||
accessInput.apiKind = DataModels.ApiKind.Graph;
|
||||
|
||||
@@ -4,7 +4,7 @@ import * as DataModels from "../Contracts/DataModels";
|
||||
import { DefaultAccountExperienceType } from "../DefaultAccountExperienceType";
|
||||
|
||||
export class DefaultExperienceUtility {
|
||||
public static getDefaultExperienceFromDatabaseAccount(databaseAccount: DataModels.DatabaseAccount): string {
|
||||
public static getDefaultExperienceFromDatabaseAccount(databaseAccount: DataModels.DatabaseAccount): string | null {
|
||||
if (!databaseAccount) {
|
||||
return null;
|
||||
}
|
||||
@@ -81,11 +81,9 @@ export class DefaultExperienceUtility {
|
||||
|
||||
private static _getDefaultExperience(kind: string, capabilities: DataModels.Capability[]): string {
|
||||
const defaultDefaultExperience: string = Constants.DefaultAccountExperience.DocumentDB;
|
||||
const defaultExperienceFromKind: string = DefaultExperienceUtility._getDefaultExperienceFromAccountKind(kind);
|
||||
const defaultExperienceFromCapabilities: string = DefaultExperienceUtility._getDefaultExperienceFromAccountCapabilities(
|
||||
capabilities
|
||||
);
|
||||
|
||||
const defaultExperienceFromKind: string = DefaultExperienceUtility._getDefaultExperienceFromAccountKind(kind) || "";
|
||||
const defaultExperienceFromCapabilities: string =
|
||||
DefaultExperienceUtility._getDefaultExperienceFromAccountCapabilities(capabilities) || "";
|
||||
if (!!defaultExperienceFromKind) {
|
||||
return defaultExperienceFromKind;
|
||||
}
|
||||
@@ -97,7 +95,7 @@ export class DefaultExperienceUtility {
|
||||
return defaultDefaultExperience;
|
||||
}
|
||||
|
||||
private static _getDefaultExperienceFromAccountKind(kind: string): string {
|
||||
private static _getDefaultExperienceFromAccountKind(kind: string): string | null {
|
||||
if (!kind) {
|
||||
return null;
|
||||
}
|
||||
@@ -113,7 +111,7 @@ export class DefaultExperienceUtility {
|
||||
return null;
|
||||
}
|
||||
|
||||
private static _getDefaultExperienceFromAccountCapabilities(capabilities: DataModels.Capability[]): string {
|
||||
private static _getDefaultExperienceFromAccountCapabilities(capabilities: DataModels.Capability[]): string | null {
|
||||
if (!capabilities) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -62,6 +62,8 @@
|
||||
"./src/GitHub/GitHubConnector.ts",
|
||||
"./src/Index.ts",
|
||||
"./src/NotebookWorkspaceManager/NotebookWorkspaceResourceProviderMockClients.ts",
|
||||
"./src/Platform/Hosted/Helpers/ConnectionStringParser.ts",
|
||||
"./src/Platform/Hosted/HostedUtils.ts",
|
||||
"./src/ReactDevTools.ts",
|
||||
"./src/ResourceProvider/IResourceProviderClient.ts",
|
||||
"./src/Shared/Constants.ts",
|
||||
|
||||
Reference in New Issue
Block a user