UNPKG

better-analytics

Version:

Zero-dependency micro-analytics JavaScript SDK < 3KB gzipped with React/Next.js/Expo support

2 lines (1 loc) 1.83 kB
"use client";import{a as v,c as E,f as y}from"../chunk-YWCLCWRZ.mjs";import _,{useEffect as P,Suspense as S}from"react";import{usePathname as A,useParams as b,useSearchParams as B}from"next/navigation";function R(){let n=A(),e=b(),a=B();if(!n)return null;if(!e)return{route:n,path:n};let s=Object.keys(e).length?e:Object.fromEntries(a.entries());return{route:y(n,s)||n,path:n,params:s}}function h(n){let e=R(),{api:a,endpoint:s,site:l,urlEnvVar:f,siteEnvVar:d,mode:m,debug:t,beforeSend:u}=n;return P(()=>{let r=f||"NEXT_PUBLIC_BA_URL",o=d||"NEXT_PUBLIC_BA_SITE",i=c=>{switch(c){case"NEXT_PUBLIC_BA_URL":return process.env.NEXT_PUBLIC_BA_URL;case"NEXT_PUBLIC_BA_SITE":return process.env.NEXT_PUBLIC_BA_SITE;default:return process.env[c]}},p=a||s||i(r),g=l||i(o);if(g){let c={site:g,mode:m||"auto",debug:t,beforeSend:u,...p&&{endpoint:p}};v(c),t&&typeof window<"u"&&(console.log("\u{1F4E6} Next.js Analytics Sources:"),console.log(" URL:",a||s?"prop":p?`env(${r})`:"default SaaS"),console.log(" Site:",l?"prop":`env(${o})`),console.log("\u{1F50D} Environment variables:",{[r]:i(r),[o]:i(o)}),u&&console.log("\u{1F504} beforeSend middleware configured"))}else typeof window<"u"&&(process.env.NODE_ENV==="development"||t)&&(console.warn("\u26A0\uFE0F Better Analytics: No site identifier provided. Set",o,"environment variable or pass site prop."),t&&console.log("\u{1F50D} Debug env vars:",{[r]:i(r),[o]:i(o)}))},[a,s,l,f,d,m,t,u]),P(()=>{e&&(E(e.path),t&&typeof window<"u"&&(console.log("\u{1F4CA} Next.js Analytics: Page view tracked"),console.log(" \u{1F4CD} Path:",e.path),console.log(" \u{1F500} Route:",e.route),e.params&&Object.keys(e.params).length>0&&console.log(" \u{1F4CC} Params:",e.params)))},[e?.path,t]),null}function L(n={}){return _.createElement(S,{fallback:null},_.createElement(h,n))}export{L as Analytics};