@yeskunall/astro-umami
Version:
Add Umami Analytics to your Astro website
37 lines (29 loc) • 1.89 kB
JavaScript
async function u({mode:i,options:r}){let{autotrack:t=!0,domains:e=[],endpointUrl:d="https://cloud.umami.is",hostUrl:n="https://cloud.umami.is",id:a,trackerScriptName:s="script.js",withPartytown:p=!1}=r,o=new URL(d).hostname,c=[t?"":`script.setAttribute("data-auto-track", "${t}")`,e.length>0?`script.setAttribute("data-domains", "${e.join(",")}")`:"",n!=="https://cloud.umami.is"?`script.setAttribute("data-host-url", "${n}")`:"",p?'script.setAttribute("type", "text/partytown")':""].filter(Boolean).join(`;
`);return i==="development"?`
localStorage.setItem("umami.disabled", "1");
var script = document.createElement("script");
var viewTransitionsEnabled = document.querySelector("meta[name='astro-view-transitions-enabled']")?.content;
script.setAttribute("src", "https://${o}/${s}");
script.setAttribute("defer", true);
script.setAttribute("data-website-id", "${a}");
${c};
if (!!viewTransitionsEnabled) {
script.setAttribute("data-astro-rerun", true);
}
var head = document.querySelector("head");
head.appendChild(script);
`:`
(function () {
var script = document.createElement("script");
var viewTransitionsEnabled = document.querySelector("meta[name='astro-view-transitions-enabled']")?.content;
script.setAttribute("src", "https://${o}/${s}");
script.setAttribute("defer", true);
script.setAttribute("data-website-id", "${a}");
${c};
if (!!viewTransitionsEnabled) {
script.setAttribute("data-astro-rerun", true);
}
var head = document.querySelector("head");
head.appendChild(script);
})()
`}function m(i){return{name:"@yeskunall/astro-umami",hooks:{"astro:config:setup":async({command:r,injectScript:t})=>{let e=await u({mode:r==="dev"?"development":"production",options:i});t("head-inline",e)}}}}export{m as default};