packages/pixel/src/lib/Tracking/Referrer.ts
export class Referrer {
private static storageId = '_coin_referrer'
local: string
session: string
constructor() {
this.session = this.getFromSession() ?? document.referrer
sessionStorage.setItem(Referrer.storageId, this.session)
this.local = this.getFromLocal() ?? document.referrer
localStorage.setItem(Referrer.storageId, this.local)
}
toJson() {
if ((this.local && this.local.length > 0) || (this.session && this.session.length > 0)) {
return {
local: this.local,
session: this.session,
}
}
}
private getFromLocal() {
const value = localStorage.getItem(Referrer.storageId)
if (value && value.length > 0) {
return value
}
}
private getFromSession() {
const value = sessionStorage.getItem(Referrer.storageId)
if (value && value.length > 0) {
return value
}
}
}