From 2eaa2d568fbec20a055850412101476128c19abe Mon Sep 17 00:00:00 2001 From: Nev <54870357+MSNev@users.noreply.github.com> Date: Wed, 20 Mar 2024 10:21:11 -0700 Subject: [PATCH] [BUG] Circular dependencies #2306 (#2310) --- .../src/JavaScriptSDK/HelperFuncs.ts | 33 +---------------- .../src/JavaScriptSDK/ResponseHelpers.ts | 36 +++++++++++++++++++ .../src/applicationinsights-core-js.ts | 3 +- 3 files changed, 39 insertions(+), 33 deletions(-) create mode 100644 shared/AppInsightsCore/src/JavaScriptSDK/ResponseHelpers.ts diff --git a/shared/AppInsightsCore/src/JavaScriptSDK/HelperFuncs.ts b/shared/AppInsightsCore/src/JavaScriptSDK/HelperFuncs.ts index dbfa522b2..9cc61a904 100644 --- a/shared/AppInsightsCore/src/JavaScriptSDK/HelperFuncs.ts +++ b/shared/AppInsightsCore/src/JavaScriptSDK/HelperFuncs.ts @@ -8,11 +8,7 @@ import { import { FeatureOptInMode } from "../JavaScriptSDK.Enums/FeatureOptInEnums"; import { TransportType } from "../JavaScriptSDK.Enums/SendRequestReason"; import { IConfiguration } from "../JavaScriptSDK.Interfaces/IConfiguration"; -import { IDiagnosticLogger } from "../JavaScriptSDK.Interfaces/IDiagnosticLogger"; -import { IBackendResponse, IXDomainRequest } from "../JavaScriptSDK.Interfaces/IXDomainRequest"; -import { _eInternalMessageId, eLoggingSeverity } from "../applicationinsights-core-js"; -import { _throwInternal } from "./DiagnosticLogger"; -import { getJSON } from "./EnvUtils"; +import { IXDomainRequest } from "../JavaScriptSDK.Interfaces/IXDomainRequest"; import { STR_EMPTY } from "./InternalConstants"; // RESTRICT and AVOID circular dependencies you should not import other contained modules or export the contents of this file directly @@ -404,33 +400,6 @@ export function prependTransports(theTransports: TransportType[], newTransports: return theTransports; } -/** - * Parses the response from the backend. - * @param response - XMLHttpRequest or XDomainRequest response - */ -export function parseResponse(response: any, diagLog?: IDiagnosticLogger): IBackendResponse { - try { - if (response && response !== "") { - const result = getJSON().parse(response); - - if (result && result.itemsReceived && result.itemsReceived >= result.itemsAccepted && - result.itemsReceived - result.itemsAccepted === result.errors.length) { - return result; - } - } - } catch (e) { - _throwInternal(diagLog, - eLoggingSeverity.CRITICAL, - _eInternalMessageId.InvalidBackendResponse, - "Cannot parse the response. " + getExceptionName(e), - { - response - }); - } - - return null; -} - const strDisabledPropertyName: string = "Microsoft_ApplicationInsights_BypassAjaxInstrumentation"; const strWithCredentials: string = "withCredentials"; const strTimeout: string = "timeout"; diff --git a/shared/AppInsightsCore/src/JavaScriptSDK/ResponseHelpers.ts b/shared/AppInsightsCore/src/JavaScriptSDK/ResponseHelpers.ts new file mode 100644 index 000000000..46190deda --- /dev/null +++ b/shared/AppInsightsCore/src/JavaScriptSDK/ResponseHelpers.ts @@ -0,0 +1,36 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +import { dumpObj } from "@nevware21/ts-utils"; +import { _eInternalMessageId, eLoggingSeverity } from "../JavaScriptSDK.Enums/LoggingEnums"; +import { IDiagnosticLogger } from "../JavaScriptSDK.Interfaces/IDiagnosticLogger"; +import { IBackendResponse } from "../JavaScriptSDK.Interfaces/IXDomainRequest"; +import { _throwInternal } from "./DiagnosticLogger"; +import { getJSON } from "./EnvUtils"; + +/** + * Parses the response from the backend. + * @param response - XMLHttpRequest or XDomainRequest response + */ +export function parseResponse(response: any, diagLog?: IDiagnosticLogger): IBackendResponse { + try { + if (response && response !== "") { + const result = getJSON().parse(response); + + if (result && result.itemsReceived && result.itemsReceived >= result.itemsAccepted && + result.itemsReceived - result.itemsAccepted === result.errors.length) { + return result; + } + } + } catch (e) { + _throwInternal(diagLog, + eLoggingSeverity.CRITICAL, + _eInternalMessageId.InvalidBackendResponse, + "Cannot parse the response. " + (e.name || dumpObj(e)), + { + response + }); + } + + return null; +} diff --git a/shared/AppInsightsCore/src/applicationinsights-core-js.ts b/shared/AppInsightsCore/src/applicationinsights-core-js.ts index 7b4e06429..176653564 100644 --- a/shared/AppInsightsCore/src/applicationinsights-core-js.ts +++ b/shared/AppInsightsCore/src/applicationinsights-core-js.ts @@ -27,9 +27,10 @@ export { runTargetUnload, doUnloadAll } from "./JavaScriptSDK/AsyncUtils"; export { normalizeJsName, toISOString, getExceptionName, strContains, setValue, getSetValue, proxyAssign, proxyFunctions, proxyFunctionAs, createClassFromInterface, optimizeObject, - isNotUndefined, isNotNullOrUndefined, objExtend, isFeatureEnabled, getResponseText, formatErrorMessageXdr, formatErrorMessageXhr, prependTransports, parseResponse, + isNotUndefined, isNotNullOrUndefined, objExtend, isFeatureEnabled, getResponseText, formatErrorMessageXdr, formatErrorMessageXhr, prependTransports, openXhr, _appendHeader, _getAllResponseHeaders, convertAllHeadersToMap } from "./JavaScriptSDK/HelperFuncs"; +export { parseResponse } from "./JavaScriptSDK/ResponseHelpers"; export { IXDomainRequest, IBackendResponse } from "./JavaScriptSDK.Interfaces/IXDomainRequest"; export { _ISenderOnComplete, _ISendPostMgrConfig, _ITimeoutOverrideWrapper, _IInternalXhrOverride } from "./JavaScriptSDK.Interfaces/ISenderPostManager"; export { SenderPostManager } from "./JavaScriptSDK/SenderPostManager";