@technoapple/ga4
Version:
TypeScript Node.js library to support GA4 analytics.
40 lines (35 loc) • 1.21 kB
text/typescript
const SESSION_KEY_PREFIX = 'ga4_session_';
export function isSessionExpired(key: string, timeoutMinutes: number): boolean {
try {
const stored = sessionStorage.getItem(SESSION_KEY_PREFIX + key);
if (!stored) return true;
const timestamp = parseInt(stored, 10);
if (isNaN(timestamp)) return true;
return (Date.now() - timestamp) > timeoutMinutes * 60 * 1000;
} catch {
return true;
}
}
export function updateSessionTimestamp(key: string): void {
try {
sessionStorage.setItem(SESSION_KEY_PREFIX + key, String(Date.now()));
} catch {
// sessionStorage may be unavailable or full
}
}
export function getSessionValue<T>(key: string): T | null {
try {
const stored = sessionStorage.getItem(SESSION_KEY_PREFIX + key);
if (stored === null) return null;
return JSON.parse(stored) as T;
} catch {
return null;
}
}
export function setSessionValue(key: string, value: unknown): void {
try {
sessionStorage.setItem(SESSION_KEY_PREFIX + key, JSON.stringify(value));
} catch {
// sessionStorage may be unavailable or full
}
}