Files
cosmos-explorer/src/Platform/Hosted/Helpers/ResourceTokenUtils.ts
Armando Trejo Oliver ceed162491 Add Sample Data to Resource Tree (#1499)
* Add Sample Data to Resource Tree

* Format

* Fix strict build

* Fix lint

* Fixed implementation to show Sample data container

* Udated logic based on TokenCollection

* Re-configure copilot flag

---------

Co-authored-by: Predrag Klepic <v-prklepic@microsoft.com>
2023-06-29 17:47:46 +02:00

45 lines
1.4 KiB
TypeScript

export interface ParsedResourceTokenConnectionString {
accountEndpoint?: string;
collectionId?: string;
databaseId?: string;
partitionKey?: string;
resourceToken?: string;
}
export function parseResourceTokenConnectionString(connectionString: string): ParsedResourceTokenConnectionString {
let accountEndpoint: string | undefined;
let collectionId: string | undefined;
let databaseId: string | undefined;
let partitionKey: string | undefined;
let resourceToken: string | undefined;
const connectionStringParts = connectionString.split(";");
connectionStringParts.forEach((part: string) => {
if (part.startsWith("type=resource")) {
resourceToken = part + ";";
} else if (part.startsWith("AccountEndpoint=")) {
accountEndpoint = part.substring(16);
} else if (part.startsWith("DatabaseId=")) {
databaseId = part.substring(11);
} else if (part.startsWith("CollectionId=")) {
collectionId = part.substring(13);
} else if (part.startsWith("PartitionKey=")) {
partitionKey = part.substring(13);
} else if (part !== "") {
resourceToken += part + ";";
}
});
return {
accountEndpoint,
collectionId,
databaseId,
partitionKey,
resourceToken,
};
}
export function isResourceTokenConnectionString(connectionString: string): boolean {
return !!connectionString && connectionString.includes("type=resource");
}