mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-02-13 11:45:15 +00:00
56 lines
1.3 KiB
TypeScript
56 lines
1.3 KiB
TypeScript
export default class UrlUtility {
|
|
public static parseDocumentsPath(resourcePath: string): any {
|
|
if (typeof resourcePath !== "string") {
|
|
return {};
|
|
}
|
|
|
|
if (resourcePath.length === 0) {
|
|
return {};
|
|
}
|
|
|
|
if (resourcePath[resourcePath.length - 1] !== "/") {
|
|
resourcePath = resourcePath + "/";
|
|
}
|
|
|
|
if (resourcePath[0] !== "/") {
|
|
resourcePath = "/" + resourcePath;
|
|
}
|
|
|
|
var id: string;
|
|
var type: string;
|
|
var pathParts = resourcePath.split("/");
|
|
|
|
if (pathParts.length % 2 === 0) {
|
|
id = pathParts[pathParts.length - 2];
|
|
type = pathParts[pathParts.length - 3];
|
|
} else {
|
|
id = pathParts[pathParts.length - 3];
|
|
type = pathParts[pathParts.length - 2];
|
|
}
|
|
|
|
var result = {
|
|
type: type,
|
|
objectBody: {
|
|
id: id,
|
|
self: resourcePath
|
|
}
|
|
};
|
|
|
|
return result;
|
|
}
|
|
|
|
public static createUri(baseUri: string, relativeUri: string): string {
|
|
if (!baseUri) {
|
|
throw new Error("baseUri is null or empty");
|
|
}
|
|
|
|
var slashAtEndOfUriRegex = /\/$/,
|
|
slashAtStartOfUriRegEx = /^\//;
|
|
|
|
var normalizedBaseUri = baseUri.replace(slashAtEndOfUriRegex, "") + "/",
|
|
normalizedRelativeUri = (relativeUri && relativeUri.replace(slashAtStartOfUriRegEx, "")) || "";
|
|
|
|
return normalizedBaseUri + normalizedRelativeUri;
|
|
}
|
|
}
|