@datataki/client
Version:
A lightweight client-side event tracking library for modern web applications. Track user sessions, page views, interactions and custom events with minimal setup.
1 lines • 906 B
JavaScript
Object.defineProperty(exports,"__esModule",{value:!0}),exports.isUrlPathExcluded=exports.normalizeUrl=exports.getApiUrl=void 0;let r=require("../validations");exports.getApiUrl=e=>{var t=new URL(window.location.href).hostname.split(".");if(0!==t.length){e=`https://${e}.`+t.slice(-2).join(".");if((0,r.isValidUrl)(e))return e}throw new Error("Invalid URL")},exports.normalizeUrl=(e,i=[])=>{try{var o=new URL(e);let t=o.searchParams,r=!1;return(i.forEach(e=>{t.has(e)&&(t.delete(e),r=!0)}),!r&&e.includes("?"))?e:(o.search=t.toString(),o.toString())}catch{return e}};exports.isUrlPathExcluded=(e,t=[])=>{if(0===t.length)return!1;let r=new URL(e,window.location.origin).pathname;return t.some(e=>{var t;return"object"==typeof(t=e)&&void 0!==t&&"function"==typeof t.test?e.test(r):e.includes("*")?new RegExp("^"+e.split("*").map(e=>e.replaceAll(/[$()*+.?[\\\]^{|}]/g,"\\$&")).join(".+")+"$").test(r):e===r})};