UNPKG

@taqueria/analytics

Version:

A TypeScript SDK submitting events for Taqueria activity

57 lines 1.79 kB
// index.ts var MEASUREMENT_ID = "G-8LSQ6J7P0Q"; var API_SECRET = "3aHoMp2USE21ZPmAVTI1Lg"; var noop = () => { }; var getCurrentTimestamp = () => { const currentTime = /* @__PURE__ */ new Date(); return currentTime.toDateString() + ", " + currentTime.toTimeString(); }; var toRequestURI = () => `https://www.google-analytics.com/mp/collect?measurement_id=${MEASUREMENT_ID}&api_secret=${API_SECRET}`; var inject = ({ taqVersion, taqBuild, fields, getMachineId, operatingSystem, fetch, ...deps }) => { let events = []; const toRequestBody = (client_id) => JSON.stringify({ client_id, events: events.map((event) => { event.params["taq_client"] = client_id; return event; }) }); const getEvents = () => [...events]; const addEvent = (name, params) => events.push({ name, params: { taq_error: false, taq_timestamp: getCurrentTimestamp(), taq_version: taqVersion, taq_build: taqBuild, taq_os: operatingSystem, ...fields, ...params } }); const empty = () => { events = []; }; const sendEvents = () => getMachineId().then(toRequestBody).then((body) => fetch(toRequestURI(), { method: "POST", body })).then(empty).catch(noop); const isTrackingAllowed = () => deps.settings.consent === "opt_in"; const track = (fn) => deps.isCICD || deps.isTesting || !isTrackingAllowed() ? Promise.resolve() : fn(); const trackEvent = (name, params) => track(() => { addEvent(name, params); return Promise.resolve(noop()); }); const sendTrackedEvents = () => track(sendEvents); return { trackEvent, sendTrackedEvents, getEvents }; }; var taqueria_analytics_default = { inject }; export { taqueria_analytics_default as default, inject }; //# sourceMappingURL=index.mjs.map