From e842196df9a8e71a38b46853480979310088b031 Mon Sep 17 00:00:00 2001 From: Chuck Skelton Date: Wed, 27 May 2026 18:24:46 -0700 Subject: [PATCH] Moved stringifyError into its own file as it was causing strict compile issues in ErrorHandlingUtils --- package-lock.json | 1 - src/Common/ErrorHandlingUtils.ts | 9 +-------- src/Common/dataAccess/readDatabases.ts | 3 ++- src/Common/stringifyError.ts | 7 +++++++ src/Explorer/Explorer.tsx | 3 ++- src/Explorer/Tables/TableDataClient.ts | 3 ++- src/Utils/AuthorizationUtils.ts | 2 +- src/Utils/arm/generatedClients/cosmos/sqlResources.ts | 2 +- src/Utils/arm/request.ts | 2 +- src/hooks/useAADAuth.ts | 2 +- 10 files changed, 18 insertions(+), 16 deletions(-) create mode 100644 src/Common/stringifyError.ts diff --git a/package-lock.json b/package-lock.json index 89686f572..b3c3e7779 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15908,7 +15908,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, "hasInstallScript": true, "optional": true, "os": [ diff --git a/src/Common/ErrorHandlingUtils.ts b/src/Common/ErrorHandlingUtils.ts index e58810f8d..0f205eebc 100644 --- a/src/Common/ErrorHandlingUtils.ts +++ b/src/Common/ErrorHandlingUtils.ts @@ -1,3 +1,4 @@ +import { stringifyError } from "Common/stringifyError"; import { MessageTypes } from "../Contracts/ExplorerContracts"; import { SubscriptionType } from "../Contracts/SubscriptionType"; import { isExpectedError } from "../Metrics/ErrorClassification"; @@ -14,14 +15,6 @@ export interface HandleErrorOptions { redactedError?: string | ARMError | Error; } -export const stringifyError = (error: unknown): string => { - const plainObject: Record = {}; - Object.getOwnPropertyNames(error as object).forEach((key) => { - plainObject[key] = (error as Record)[key]; - }); - return JSON.stringify(plainObject, null, "\r\n"); -}; - export const handleError = ( error: string | ARMError | Error, area: string, diff --git a/src/Common/dataAccess/readDatabases.ts b/src/Common/dataAccess/readDatabases.ts index f460d5546..ace64c058 100644 --- a/src/Common/dataAccess/readDatabases.ts +++ b/src/Common/dataAccess/readDatabases.ts @@ -1,3 +1,4 @@ +import { stringifyError } from "Common/stringifyError"; import { CosmosDbArtifactType } from "Contracts/FabricMessagesContract"; import { isFabric, isFabricMirroredKey, isFabricNative } from "Platform/Fabric/FabricUtil"; import { AuthType } from "../../AuthType"; @@ -11,7 +12,7 @@ import { listGremlinDatabases } from "../../Utils/arm/generatedClients/cosmos/gr import { listMongoDBDatabases } from "../../Utils/arm/generatedClients/cosmos/mongoDBResources"; import { listSqlDatabases } from "../../Utils/arm/generatedClients/cosmos/sqlResources"; import { client } from "../CosmosClient"; -import { handleError, stringifyError } from "../ErrorHandlingUtils"; +import { handleError } from "../ErrorHandlingUtils"; export async function readDatabases(): Promise { let databases: DataModels.Database[]; diff --git a/src/Common/stringifyError.ts b/src/Common/stringifyError.ts new file mode 100644 index 000000000..e248a380f --- /dev/null +++ b/src/Common/stringifyError.ts @@ -0,0 +1,7 @@ +export const stringifyError = (error: unknown): string => { + const plainObject: Record = {}; + Object.getOwnPropertyNames(error as object).forEach((key) => { + plainObject[key] = (error as Record)[key]; + }); + return JSON.stringify(plainObject, null, "\r\n"); +}; diff --git a/src/Explorer/Explorer.tsx b/src/Explorer/Explorer.tsx index 223609d2b..03e5e72cd 100644 --- a/src/Explorer/Explorer.tsx +++ b/src/Explorer/Explorer.tsx @@ -2,6 +2,7 @@ import * as msal from "@azure/msal-browser"; import { Link } from "@fluentui/react/lib/Link"; import { isPublicInternetAccessAllowed } from "Common/DatabaseAccountUtility"; import { sendMessage } from "Common/MessageHandler"; +import { stringifyError } from "Common/stringifyError"; import { Platform, configContext } from "ConfigContext"; import { MessageTypes } from "Contracts/ExplorerContracts"; import { useDataPlaneRbac } from "Explorer/Panes/SettingsPane/SettingsPane"; @@ -23,7 +24,7 @@ import { AuthType } from "../AuthType"; import { BindingHandlersRegisterer } from "../Bindings/BindingHandlersRegisterer"; import * as Constants from "../Common/Constants"; import { Areas, ConnectionStatusType, HttpStatusCodes, Notebook } from "../Common/Constants"; -import { getErrorMessage, getErrorStack, handleError, stringifyError } from "../Common/ErrorHandlingUtils"; +import { getErrorMessage, getErrorStack, handleError } from "../Common/ErrorHandlingUtils"; import * as Logger from "../Common/Logger"; import { QueriesClient } from "../Common/QueriesClient"; import { readCollection } from "../Common/dataAccess/readCollection"; diff --git a/src/Explorer/Tables/TableDataClient.ts b/src/Explorer/Tables/TableDataClient.ts index 955f6a2c7..ed9992af5 100644 --- a/src/Explorer/Tables/TableDataClient.ts +++ b/src/Explorer/Tables/TableDataClient.ts @@ -1,10 +1,11 @@ import { FeedOptions } from "@azure/cosmos"; +import { stringifyError } from "Common/stringifyError"; import * as ko from "knockout"; import Q from "q"; import { AuthType } from "../../AuthType"; import * as Constants from "../../Common/Constants"; import { CassandraProxyAPIs } from "../../Common/Constants"; -import { handleError, stringifyError } from "../../Common/ErrorHandlingUtils"; +import { handleError } from "../../Common/ErrorHandlingUtils"; import * as HeadersUtility from "../../Common/HeadersUtility"; import { createDocument } from "../../Common/dataAccess/createDocument"; import { deleteDocument } from "../../Common/dataAccess/deleteDocument"; diff --git a/src/Utils/AuthorizationUtils.ts b/src/Utils/AuthorizationUtils.ts index b28336626..92b6b4a53 100644 --- a/src/Utils/AuthorizationUtils.ts +++ b/src/Utils/AuthorizationUtils.ts @@ -1,6 +1,6 @@ import * as msal from "@azure/msal-browser"; import { getEnvironmentScopeEndpoint } from "Common/EnvironmentUtility"; -import { stringifyError } from "Common/ErrorHandlingUtils"; +import { stringifyError } from "Common/stringifyError"; import { Action, ActionModifiers } from "Shared/Telemetry/TelemetryConstants"; import { hasProxyServer, isDataplaneRbacSupported } from "Utils/APITypeUtils"; import { AuthType } from "../AuthType"; diff --git a/src/Utils/arm/generatedClients/cosmos/sqlResources.ts b/src/Utils/arm/generatedClients/cosmos/sqlResources.ts index a78fe5664..2e1677950 100644 --- a/src/Utils/arm/generatedClients/cosmos/sqlResources.ts +++ b/src/Utils/arm/generatedClients/cosmos/sqlResources.ts @@ -6,7 +6,7 @@ Generated from: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/DocumentDB/preview/2025-11-01-preview/cosmos-db.json */ -import { stringifyError } from "Common/ErrorHandlingUtils"; +import { stringifyError } from "Common/stringifyError"; import { configContext } from "../../../../ConfigContext"; import { armRequest } from "../../request"; import * as Types from "./types"; diff --git a/src/Utils/arm/request.ts b/src/Utils/arm/request.ts index d4b233bc7..f76665585 100644 --- a/src/Utils/arm/request.ts +++ b/src/Utils/arm/request.ts @@ -5,7 +5,7 @@ Instead, generate ARM clients that consume this function with stricter typing. */ -import { stringifyError } from "Common/ErrorHandlingUtils"; +import { stringifyError } from "Common/stringifyError"; import promiseRetry, { AbortError } from "p-retry"; import { HttpHeaders } from "../../Common/Constants"; import { configContext } from "../../ConfigContext"; diff --git a/src/hooks/useAADAuth.ts b/src/hooks/useAADAuth.ts index c98a6e8b5..dff8cb11b 100644 --- a/src/hooks/useAADAuth.ts +++ b/src/hooks/useAADAuth.ts @@ -1,6 +1,6 @@ import * as msal from "@azure/msal-browser"; import { useBoolean } from "@fluentui/react-hooks"; -import { stringifyError } from "Common/ErrorHandlingUtils"; +import { stringifyError } from "Common/stringifyError"; import * as React from "react"; import { ConfigContext } from "../ConfigContext"; import {