UNPKG

@yeskunall/astro-umami

Version:

Add Umami Analytics to your Astro website

28 lines (23 loc) 1.72 kB
async function f({mode:r,options:n}){let{autotrack:t=!0,beforeSendHandler:e,domains:i=[],doNotTrack:a=!1,endpointUrl:u="https://cloud.umami.is",excludeHash:o=!1,excludeSearch:s=!1,hostUrl:c="https://cloud.umami.is",id:p,trackerScriptName:l="script.js",withPartytown:m=!1}=n,b=new URL(u).hostname,h=[t?"":`script.setAttribute("data-auto-track", "${t}")`,e?`script.setAttribute("data-before-send", "${e}")`:"",i.length>0?`script.setAttribute("data-domains", "${i.join(",")}")`:"",a?`script.setAttribute("data-do-not-track", "${a}")`:"",o?`script.setAttribute("data-exclude-hash", "${o}")`:"",s?`script.setAttribute("data-exclude-search", "${s}")`:"",c!=="https://cloud.umami.is"?`script.setAttribute("data-host-url", "${c}")`:"",m?'script.setAttribute("type", "text/partytown")':""].filter(Boolean).join(`; `),d=` var script = document.createElement("script"); var viewTransitionsEnabled = document.querySelector("meta[name='astro-view-transitions-enabled']")?.content; script.setAttribute("src", "https://${b}/${l}"); script.setAttribute("defer", true); script.setAttribute("data-website-id", "${p}"); ${h}; if (!!viewTransitionsEnabled) { script.setAttribute("data-astro-rerun", true); } var head = document.querySelector("head"); head.appendChild(script); `;return r==="development"?` (function () { localStorage.setItem("umami.disabled", "1"); ${d} })() `:` (function () { ${d} })() `}function g(r){return{name:"@yeskunall/astro-umami",hooks:{"astro:config:setup":async({command:n,injectScript:t})=>{let e=await f({mode:n==="dev"?"development":"production",options:r});t("head-inline",e)}}}}export{g as default};