UNPKG

@dotcms/analytics

Version:

Official JavaScript library for Content Analytics with DotCMS.

37 lines (36 loc) 1.18 kB
import { ANALYTICS_ENDPOINT as p } from "../constants/dot-analytics.constants.js"; import { createPluginLogger as l } from "../utils/dot-analytics.utils.js"; const m = async (n, i, c = !1) => { const e = l("HTTP", i), f = `${i.server}${p}`, g = JSON.stringify(n); e.info(`Sending ${n.events.length} event(s)${c ? " (keepalive)" : ""}`, { payload: n }); try { const r = { method: "POST", headers: { "Content-Type": "application/json" }, body: g }; if (c) return r.keepalive = !0, r.credentials = "omit", fetch(f, r).catch((o) => { e.error("Keepalive request failed (browser may have ignored it):", o); }), !0; const t = await fetch(f, r); if (!t.ok) { const o = t.statusText || "Unknown Error", a = `HTTP ${t.status}: ${o}`; try { const s = await t.json(); s.message ? e.warn(`${s.message} (${a})`) : e.warn(`${a} - No error message in response`); } catch (s) { e.warn(`${a} - Failed to parse error response:`, s); } return !1; } return !0; } catch (r) { return e.error("Error sending event:", r), !1; } }; export { m as sendAnalyticsEvent };