Skip to content

Commit db8c0c5

Browse files
committed
SCAL-269016 : smal
1 parent 3de2ba2 commit db8c0c5

File tree

3 files changed

+34
-15
lines changed

3 files changed

+34
-15
lines changed

src/api-intercept.ts

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { getEmbedConfig } from "./embed/embedConfig";
33
import { InterceptedApiType, BaseViewConfig, EmbedConfig, InterceptV2Flags, EmbedEvent } from "./types";
44
import { logger } from "./utils/logger";
55

6-
76
const defaultUrls: Record<Exclude<InterceptedApiType, InterceptedApiType.ALL>, string[]> = {
87
[InterceptedApiType.METADATA]: [
98
'/prism/?op=CreateAnswerSession',
@@ -43,8 +42,8 @@ const processInterceptUrls = (interceptUrls: (string | InterceptedApiType)[]) =>
4342
})
4443
return processedUrls.map(url => formatInterceptUrl(url));
4544
}
46-
export const getInterceptInitData = (embedConfig: EmbedConfig, viewConfig: BaseViewConfig): InterceptV2Flags => {
47-
45+
export const getInterceptInitData = (viewConfig: BaseViewConfig): InterceptV2Flags => {
46+
const embedConfig = getEmbedConfig();
4847
const enableApiIntercept = (embedConfig.enableApiIntercept || viewConfig.enableApiIntercept) && (viewConfig.enableApiIntercept !== false);
4948

5049
if (!enableApiIntercept) return {
@@ -69,16 +68,33 @@ export const getInterceptInitData = (embedConfig: EmbedConfig, viewConfig: BaseV
6968
};
7069
}
7170

71+
const parseJson = (jsonString: string): [any, Error | null] => {
72+
try {
73+
const json = JSON.parse(jsonString);
74+
return [json, null];
75+
} catch (error) {
76+
return [null, error];
77+
}
78+
}
79+
7280
/**
7381
*
7482
* @param fetchInit
7583
*/
7684
const parseInterceptData = (eventDataString: any) => {
7785

7886
try {
79-
const { input, init } = JSON.parse(eventDataString);
87+
const [parsedData, error] = parseJson(eventDataString);
88+
if (error) {
89+
return [null, error];
90+
}
91+
92+
const { input, init } = parsedData;
8093

81-
init.body = JSON.parse(init.body);
94+
const [parsedBody, bodyParseError] = parseJson(init.body);
95+
if (!bodyParseError) {
96+
init.body = parsedBody;
97+
}
8298

8399
const parsedInit = { input, init };
84100
return [parsedInit, null];
@@ -87,7 +103,12 @@ const parseInterceptData = (eventDataString: any) => {
87103
}
88104
}
89105

90-
export const handleInterceptEvent = async (params: { eventData: any, executeEvent: (eventType: EmbedEvent, data: any) => void, embedConfig: EmbedConfig, viewConfig: BaseViewConfig, getUnsavedAnswerTml: (props: { sessionId?: string, vizId?: string }) => Promise<{ tml: string }> }) => {
106+
export const handleInterceptEvent = async (params: {
107+
eventData: any,
108+
executeEvent: (eventType: EmbedEvent, data: any) => void,
109+
viewConfig: BaseViewConfig,
110+
getUnsavedAnswerTml: (props: { sessionId?: string, vizId?: string }) => Promise<{ tml: string }>
111+
}) => {
91112

92113
const { eventData, executeEvent, viewConfig, getUnsavedAnswerTml } = params;
93114

src/embed/ts-embed.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -349,16 +349,15 @@ export class TsEmbed {
349349
this.isPreRendered ? this.preRenderWrapper : this.el,
350350
);
351351

352-
const executeEvent = (_eventType: EmbedEvent, data: any) => {
353-
this.executeCallbacks(_eventType, data, eventPort);
354-
}
355-
356352
if (eventType === EmbedEvent.ApiIntercept && this.viewConfig.enableApiIntercept) {
353+
const executeEvent = (_eventType: EmbedEvent, data: any) => {
354+
this.executeCallbacks(_eventType, data, eventPort);
355+
}
357356
const getUnsavedAnswerTml = async (props: { sessionId?: string, vizId?: string }) => {
358357
const response = await this.triggerUIPassThrough(UIPassthroughEvent.GetUnsavedAnswerTML, props);
359358
return response[0]?.value;
360359
}
361-
handleInterceptEvent({ eventData: processedEventData, executeEvent, embedConfig: this.embedConfig, viewConfig: this.viewConfig, getUnsavedAnswerTml });
360+
handleInterceptEvent({ eventData: processedEventData, executeEvent, viewConfig: this.viewConfig, getUnsavedAnswerTml });
362361
return;
363362
}
364363

@@ -464,7 +463,7 @@ export class TsEmbed {
464463
this.embedConfig.customVariablesForThirdPartyTools || {},
465464
hiddenListColumns: this.viewConfig.hiddenListColumns || [],
466465
customActions: customActionsResult.actions,
467-
...getInterceptInitData(this.embedConfig, this.viewConfig),
466+
...getInterceptInitData(this.viewConfig),
468467
};
469468

470469
return baseInitData;
@@ -1047,7 +1046,7 @@ export class TsEmbed {
10471046

10481047
protected createEmbedEventResponder = (eventPort: MessagePort | void, eventType: EmbedEvent) => {
10491048

1050-
const { enableApiIntercept } = getInterceptInitData(this.embedConfig, this.viewConfig);
1049+
const { enableApiIntercept } = getInterceptInitData(this.viewConfig);
10511050
if (eventType === EmbedEvent.OnBeforeGetVizDataIntercept && enableApiIntercept) {
10521051
return (payload: any) => {
10531052
const payloadToSend = processLegacyInterceptResponse(payload);

src/utils/logger.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { isUndefined } from '../utils';
21
import { LogLevel } from '../types';
32

43
const logFunctions: {
@@ -42,7 +41,7 @@ class Logger {
4241

4342
public canLog(logLevel: LogLevel): boolean {
4443
if (logLevel === LogLevel.SILENT) return false;
45-
if (!isUndefined(globalLogLevelOverride)) {
44+
if (globalLogLevelOverride !== undefined) {
4645
return compareLogLevels(globalLogLevelOverride, logLevel) >= 0;
4746
}
4847
return compareLogLevels(this.logLevel, logLevel) >= 0;

0 commit comments

Comments
 (0)