Updated .track method functionality.

This commit is contained in:
Mike Cao 2023-04-21 15:55:52 -07:00
parent 80438bf84c
commit 71fcad26a5
2 changed files with 14 additions and 8 deletions

View File

@ -1,6 +1,6 @@
{
"name": "umami",
"version": "2.0.2",
"version": "2.1.0",
"description": "A simple, fast, privacy-focused alternative to Google Analytics.",
"author": "Mike Cao <mike@mikecao.com>",
"license": "MIT",

View File

@ -169,7 +169,7 @@
const send = payload => {
if (trackingDisabled()) return;
const headers = {
'Content-Type': 'application/json'
'Content-Type': 'application/json',
};
if (typeof cache !== 'undefined') {
headers['x-umami-cache'] = cache;
@ -177,17 +177,23 @@
return fetch(endpoint, {
method: 'POST',
body: JSON.stringify({ type: 'event', payload }),
headers: headers
headers,
})
.then(res => res.text())
.then(text => (cache = text));
};
const track = (name = {}, data = {}) => {
if (typeof name === 'string') {
return send({ ...getPayload(), ...data, name });
} else if (typeof name === 'object') {
return send({ ...getPayload(), ...name });
const track = (obj, data) => {
if (typeof obj === 'string') {
return send({
...getPayload(),
name: obj,
data: typeof data === 'object' ? data : undefined,
});
} else if (typeof obj === 'object') {
return send(obj);
} else if (typeof obj === 'function') {
return send(obj(getPayload()));
}
return Promise.reject();
};