Skip to content

Commit 7caeddd

Browse files
committed
Add type guard to avoid using any
1 parent 0d9ca74 commit 7caeddd

File tree

1 file changed

+30
-13
lines changed
  • packages/optimizely-sdk/lib/utils/event_tag_utils

1 file changed

+30
-13
lines changed

packages/optimizely-sdk/lib/utils/event_tag_utils/index.ts

Lines changed: 30 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ const MODULE_NAME = 'EVENT_TAG_UTILS';
3131
const REVENUE_EVENT_METRIC_NAME = RESERVED_EVENT_KEYWORDS.REVENUE;
3232
const VALUE_EVENT_METRIC_NAME = RESERVED_EVENT_KEYWORDS.VALUE;
3333

34+
let parsedRevenueValue;
35+
let parsedEventValue;
36+
3437
/**
3538
* Grab the revenue value from the event tags. "revenue" is a reserved keyword.
3639
* @param {EventTags} eventTags
@@ -40,14 +43,21 @@ const VALUE_EVENT_METRIC_NAME = RESERVED_EVENT_KEYWORDS.VALUE;
4043
export function getRevenueValue(eventTags: EventTags, logger: LoggerFacade): number | null {
4144
if (eventTags && eventTags.hasOwnProperty(REVENUE_EVENT_METRIC_NAME)) {
4245
const rawValue = eventTags[REVENUE_EVENT_METRIC_NAME];
43-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
44-
const parsedRevenueValue = parseInt(rawValue as any);
45-
if (isNaN(parsedRevenueValue)) {
46-
logger.log(LOG_LEVEL.INFO, sprintf(LOG_MESSAGES.FAILED_TO_PARSE_REVENUE, MODULE_NAME, rawValue));
47-
return null;
46+
if (typeof rawValue === 'string') {
47+
parsedRevenueValue = parseInt(rawValue);
48+
if (isNaN(parsedRevenueValue)) {
49+
logger.log(LOG_LEVEL.INFO, sprintf(LOG_MESSAGES.FAILED_TO_PARSE_REVENUE, MODULE_NAME, rawValue));
50+
return null;
51+
}
52+
logger.log(LOG_LEVEL.INFO, sprintf(LOG_MESSAGES.PARSED_REVENUE_VALUE, MODULE_NAME, parsedRevenueValue));
53+
return parsedRevenueValue;
54+
}
55+
if (typeof rawValue === 'number') {
56+
parsedRevenueValue = rawValue;
57+
logger.log(LOG_LEVEL.INFO, sprintf(LOG_MESSAGES.PARSED_REVENUE_VALUE, MODULE_NAME, parsedRevenueValue));
58+
return parsedRevenueValue;
4859
}
49-
logger.log(LOG_LEVEL.INFO, sprintf(LOG_MESSAGES.PARSED_REVENUE_VALUE, MODULE_NAME, parsedRevenueValue));
50-
return parsedRevenueValue;
60+
return null;
5161
}
5262
return null;
5363
}
@@ -61,14 +71,21 @@ export function getRevenueValue(eventTags: EventTags, logger: LoggerFacade): num
6171
export function getEventValue(eventTags: EventTags, logger: LoggerFacade): number | null {
6272
if (eventTags && eventTags.hasOwnProperty(VALUE_EVENT_METRIC_NAME)) {
6373
const rawValue = eventTags[VALUE_EVENT_METRIC_NAME];
64-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
65-
const parsedEventValue = parseFloat(rawValue as any);
66-
if (isNaN(parsedEventValue)) {
67-
logger.log(LOG_LEVEL.INFO, sprintf(LOG_MESSAGES.FAILED_TO_PARSE_VALUE, MODULE_NAME, rawValue));
68-
return null;
69-
}
74+
if (typeof rawValue === 'string') {
75+
parsedEventValue = parseFloat(rawValue);
76+
if (isNaN(parsedEventValue)) {
77+
logger.log(LOG_LEVEL.INFO, sprintf(LOG_MESSAGES.FAILED_TO_PARSE_VALUE, MODULE_NAME, rawValue));
78+
return null;
79+
}
7080
logger.log(LOG_LEVEL.INFO, sprintf(LOG_MESSAGES.PARSED_NUMERIC_VALUE, MODULE_NAME, parsedEventValue));
7181
return parsedEventValue;
82+
}
83+
if (typeof rawValue === 'number') {
84+
parsedEventValue = rawValue;
85+
logger.log(LOG_LEVEL.INFO, sprintf(LOG_MESSAGES.PARSED_NUMERIC_VALUE, MODULE_NAME, parsedEventValue));
86+
return parsedEventValue;
87+
}
88+
return null;
7289
}
7390
return null;
7491
}

0 commit comments

Comments
 (0)