mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2026-01-31 23:54:16 +00:00
Fix typescript strict issues for getCollectionDataUsageSize and few more
This commit is contained in:
@@ -28,10 +28,10 @@ export const getErrorMessage = (error: string | Error = ""): string => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const getErrorStack = (error: string | Error): string => {
|
export const getErrorStack = (error: string | Error): string => {
|
||||||
return typeof error === "string" ? undefined : error.stack;
|
return typeof error === "string" ? "" : error.stack === undefined ? "" : error.stack;
|
||||||
};
|
};
|
||||||
|
|
||||||
const sendNotificationForError = (errorMessage: string, errorCode: number | string): void => {
|
const sendNotificationForError = (errorMessage: string, errorCode: number | string | undefined): void => {
|
||||||
if (errorCode === HttpStatusCodes.Forbidden) {
|
if (errorCode === HttpStatusCodes.Forbidden) {
|
||||||
if (errorMessage?.toLowerCase().indexOf("sharedoffer is disabled for your account") > 0) {
|
if (errorMessage?.toLowerCase().indexOf("sharedoffer is disabled for your account") > 0) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -40,13 +40,16 @@ interface MetricsResponse {
|
|||||||
value: MetricsData[];
|
value: MetricsData[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export const getCollectionUsageSizeInKB = async (databaseName: string, containerName: string): Promise<number> => {
|
export const getCollectionUsageSizeInKB = async (
|
||||||
|
databaseName: string,
|
||||||
|
containerName: string
|
||||||
|
): Promise<number | undefined> => {
|
||||||
if (userContext.authType !== AuthType.AAD) {
|
if (userContext.authType !== AuthType.AAD) {
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
const { subscriptionId, resourceGroup, databaseAccount } = userContext;
|
const { subscriptionId, resourceGroup, databaseAccount } = userContext;
|
||||||
const accountName = databaseAccount.name;
|
const accountName = databaseAccount !== undefined ? databaseAccount.name : "";
|
||||||
|
|
||||||
const filter = `DatabaseName eq '${databaseName}' and CollectionName eq '${containerName}'`;
|
const filter = `DatabaseName eq '${databaseName}' and CollectionName eq '${containerName}'`;
|
||||||
const metricNames = "DataUsage,IndexUsage";
|
const metricNames = "DataUsage,IndexUsage";
|
||||||
|
|||||||
@@ -8,19 +8,27 @@ import { handleError } from "../ErrorHandlingUtils";
|
|||||||
export async function readMongoDBCollectionThroughRP(
|
export async function readMongoDBCollectionThroughRP(
|
||||||
databaseId: string,
|
databaseId: string,
|
||||||
collectionId: string
|
collectionId: string
|
||||||
): Promise<MongoDBCollectionResource> {
|
): Promise<MongoDBCollectionResource | undefined> {
|
||||||
if (userContext.authType !== AuthType.AAD) {
|
if (userContext.authType !== AuthType.AAD) {
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
let collection: MongoDBCollectionResource;
|
let collection: MongoDBCollectionResource | undefined;
|
||||||
|
|
||||||
const { subscriptionId, resourceGroup, databaseAccount } = userContext;
|
const { subscriptionId, resourceGroup, databaseAccount } = userContext;
|
||||||
const accountName = databaseAccount.name;
|
const accountName = databaseAccount !== undefined ? databaseAccount.name : "";
|
||||||
|
|
||||||
const clearMessage = logConsoleProgress(`Reading container ${collectionId}`);
|
const clearMessage = logConsoleProgress(`Reading container ${collectionId}`);
|
||||||
try {
|
try {
|
||||||
const response = await getMongoDBCollection(subscriptionId, resourceGroup, accountName, databaseId, collectionId);
|
const response = await getMongoDBCollection(
|
||||||
collection = response.properties.resource;
|
subscriptionId !== undefined ? subscriptionId : "",
|
||||||
|
resourceGroup !== undefined ? resourceGroup : "",
|
||||||
|
accountName,
|
||||||
|
databaseId,
|
||||||
|
collectionId
|
||||||
|
);
|
||||||
|
if (response.properties !== undefined) {
|
||||||
|
collection = response.properties.resource;
|
||||||
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
handleError(error, "ReadMongoDBCollection", `Error while reading container ${collectionId}`);
|
handleError(error, "ReadMongoDBCollection", `Error while reading container ${collectionId}`);
|
||||||
throw error;
|
throw error;
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ import * as React from "react";
|
|||||||
import * as Constants from "../../../Common/Constants";
|
import * as Constants from "../../../Common/Constants";
|
||||||
|
|
||||||
interface AccessibleElementProps extends React.HtmlHTMLAttributes<HTMLElement> {
|
interface AccessibleElementProps extends React.HtmlHTMLAttributes<HTMLElement> {
|
||||||
as: string; // tag element name
|
as?: string; // tag element name
|
||||||
onActivated: (event: React.SyntheticEvent<HTMLElement>) => void;
|
onActivated?: (event: React.SyntheticEvent<HTMLElement>) => void;
|
||||||
"aria-label": string;
|
"aria-label"?: string;
|
||||||
tabIndex?: number;
|
tabIndex?: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -16,7 +16,9 @@ export class AccessibleElement extends React.Component<AccessibleElementProps> {
|
|||||||
if (event.charCode === Constants.KeyCodes.Space || event.charCode === Constants.KeyCodes.Enter) {
|
if (event.charCode === Constants.KeyCodes.Space || event.charCode === Constants.KeyCodes.Enter) {
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
this.props.onActivated(event);
|
if (this.props.onActivated !== undefined) {
|
||||||
|
this.props.onActivated(event);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -27,11 +29,15 @@ export class AccessibleElement extends React.Component<AccessibleElementProps> {
|
|||||||
|
|
||||||
const tabIndex = this.props.tabIndex === undefined ? 0 : this.props.tabIndex;
|
const tabIndex = this.props.tabIndex === undefined ? 0 : this.props.tabIndex;
|
||||||
|
|
||||||
return React.createElement(this.props.as, {
|
return this.props.as !== undefined ? (
|
||||||
...elementProps,
|
React.createElement(this.props.as, {
|
||||||
onKeyPress: this.onKeyPress,
|
...elementProps,
|
||||||
onClick: this.props.onActivated,
|
onKeyPress: this.onKeyPress,
|
||||||
tabIndex,
|
onClick: this.props.onActivated,
|
||||||
});
|
tabIndex,
|
||||||
|
})
|
||||||
|
) : (
|
||||||
|
<></>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ export class LeftPaneComponent extends React.Component<LeftPaneComponentProps> {
|
|||||||
className={className}
|
className={className}
|
||||||
as="tr"
|
as="tr"
|
||||||
aria-label={node.caption}
|
aria-label={node.caption}
|
||||||
onActivated={(e) => this.props.onRootNodeSelected(node.id)}
|
onActivated={() => this.props.onRootNodeSelected(node.id)}
|
||||||
key={node.id}
|
key={node.id}
|
||||||
>
|
>
|
||||||
<td className="resultItem">
|
<td className="resultItem">
|
||||||
|
|||||||
@@ -139,7 +139,11 @@
|
|||||||
"./src/userContext.test.ts",
|
"./src/userContext.test.ts",
|
||||||
"src/Common/EntityValue.tsx",
|
"src/Common/EntityValue.tsx",
|
||||||
"./src/Platform/Hosted/Components/SwitchAccount.tsx",
|
"./src/Platform/Hosted/Components/SwitchAccount.tsx",
|
||||||
"./src/Platform/Hosted/Components/SwitchSubscription.tsx"
|
"./src/Platform/Hosted/Components/SwitchSubscription.tsx",
|
||||||
|
"./src/Common/dataAccess/getCollectionDataUsageSize.ts",
|
||||||
|
"./src/Common/dataAccess/readMongoDBCollection.tsx",
|
||||||
|
"./src/Explorer/Controls/CollapsiblePanel/CollapsiblePanel.tsx",
|
||||||
|
"./src/Explorer/Graph/GraphExplorerComponent/LeftPaneComponent.tsx"
|
||||||
],
|
],
|
||||||
"include": [
|
"include": [
|
||||||
"src/CellOutputViewer/transforms/**/*",
|
"src/CellOutputViewer/transforms/**/*",
|
||||||
|
|||||||
Reference in New Issue
Block a user