@taqueria/analytics
Version:
A TypeScript SDK submitting events for Taqueria activity
57 lines • 1.79 kB
JavaScript
// 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