UNPKG

erralytics

Version:

Lib para rastrear erros HTTP e disparar eventos para ferramentas analíticas (dataLayer ou gtag)

1 lines 1.47 kB
window.ErrAlytics=class{constructor(e={}){const a={trackingMethod:"dataLayer",events:{400:{eventName:"bad_request",data:{message:"Dados inválidos enviados"}},401:{eventName:"unauthorized",data:{message:"Acesso não autorizado"}},403:{eventName:"forbidden",data:{message:"Acesso proibido"}},404:{eventName:"page_not_found",data:{invalid_path:window.location.pathname}},408:{eventName:"request_timeout",data:{message:"Tempo de requisição excedido"}},429:{eventName:"too_many_requests",data:{message:"Muitas requisições"}},500:{eventName:"server_error",data:{message:"Erro no servidor"}},502:{eventName:"bad_gateway",data:{message:"Gateway inválido"}},503:{eventName:"service_unavailable",data:{message:"Serviço indisponível"}},504:{eventName:"gateway_timeout",data:{message:"Gateway expirou"}}}};this.config=Object.assign(a,e)}track(e=window.location.href){return fetch(e,{method:"HEAD"}).then((e=>{const a=e.status;if(this.config.events[a]){const{eventName:e,data:t}=this.config.events[a];"gtag"===this.config.trackingMethod?"undefined"!=typeof window&&window.gtag?window.gtag("event",e,t||{}):console.warn("gtag não está definido."):"dataLayer"===this.config.trackingMethod?"undefined"!=typeof window&&window.dataLayer?window.dataLayer.push({event:e,...t}):console.warn("dataLayer não está definido."):console.warn(`Método de rastreamento "${this.config.trackingMethod}" não suportado.`)}return e})).catch((e=>{console.error("Erro ao verificar a URL:",e)}))}};