Skip to content

Commit 31ff97d

Browse files
committed
refactor(analytics): improve readability of UTM parameter validation and sanitization functions
1 parent 14dc023 commit 31ff97d

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/utils/analytics/utm.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@ import { UserDBScheme } from '@hawk.so/types';
66
* @returns boolean - true if valid, false if invalid
77
*/
88
export function validateUtmParams(utm: UserDBScheme['utm']): boolean {
9-
if (!utm) return true;
9+
if (!utm) {
10+
return true;
11+
}
1012

1113
// Check if utm is an object
1214
if (typeof utm !== 'object' || Array.isArray(utm)) {
@@ -40,7 +42,7 @@ export function validateUtmParams(utm: UserDBScheme['utm']): boolean {
4042
}
4143

4244
// Check for valid characters - only allow alphanumeric, spaces, hyphens, underscores, dots
43-
if (!/^[a-zA-Z0-9\s\-_\.]+$/.test(value)) {
45+
if (!/^[a-zA-Z0-9\s\-_.]+$/.test(value)) {
4446
return false;
4547
}
4648
}
@@ -55,7 +57,9 @@ export function validateUtmParams(utm: UserDBScheme['utm']): boolean {
5557
* @returns sanitized UTM parameters or undefined if invalid
5658
*/
5759
export function sanitizeUtmParams(utm: UserDBScheme['utm']): UserDBScheme['utm'] {
58-
if (!utm) return undefined;
60+
if (!utm) {
61+
return undefined;
62+
}
5963

6064
const utmKeys = ['source', 'medium', 'campaign', 'content', 'term'];
6165
const sanitized: UserDBScheme['utm'] = {};
@@ -64,7 +68,7 @@ export function sanitizeUtmParams(utm: UserDBScheme['utm']): UserDBScheme['utm']
6468
if (utmKeys.includes(key) && value && typeof value === 'string') {
6569
// Sanitize value: keep only allowed characters and limit length
6670
const cleanValue = value
67-
.replace(/[^a-zA-Z0-9\s\-_\.]/g, '')
71+
.replace(/[^a-zA-Z0-9\s\-_.]/g, '')
6872
.trim()
6973
.substring(0, 200);
7074

0 commit comments

Comments
 (0)