Added option to exclude hash.

This commit is contained in:
Mike Cao 2024-12-25 21:01:15 -08:00
parent 2d2733387d
commit 4ddf8d0d56
2 changed files with 13 additions and 10 deletions

View file

@ -7,7 +7,6 @@ import {
methodNotAllowed,
ok,
safeDecodeURI,
send,
} from 'next-basics';
import { COLLECTION_TYPE, HOSTNAME_REGEX, IP_REGEX } from 'lib/constants';
import { secret, visitSalt, uuid } from 'lib/crypto';
@ -103,7 +102,7 @@ export default async (req: NextApiRequestCollect, res: NextApiResponse) => {
const session = req.session;
if (!session?.id) {
if (!session?.id || !session?.websiteId) {
return;
}
@ -162,9 +161,9 @@ export default async (req: NextApiRequestCollect, res: NextApiResponse) => {
});
}
const token = createToken(session, secret());
const cache = createToken(session, secret());
return send(res, token);
return ok(res, { cache });
}
return methodNotAllowed(res);

View file

@ -21,6 +21,7 @@
const tag = attr(_data + 'tag');
const autoTrack = attr(_data + 'auto-track') !== _false;
const excludeSearch = attr(_data + 'exclude-search') === _true;
const excludeHash = attr(_data + 'exclude-hash') === _true;
const domain = attr(_data + 'domains') || '';
const domains = domain.split(',').map(n => n.trim());
const host =
@ -53,13 +54,12 @@
const parseURL = url => {
try {
// use location.origin as the base to handle cases where the url is a relative path
const { pathname, search, hash } = new URL(url, location.href);
url = pathname + search + hash;
return pathname + (excludeSearch ? '' : search) + (excludeHash ? '' : hash);
} catch (e) {
/* empty */
return url;
}
return excludeSearch ? url.split('?')[0] : url;
};
const getPayload = () => ({
@ -194,6 +194,7 @@
/* Tracking functions */
const trackingDisabled = () =>
disabled ||
!website ||
(localStorage && localStorage.getItem('umami.disabled')) ||
(domain && !domains.includes(hostname));
@ -215,9 +216,11 @@
body: JSON.stringify({ type, payload }),
headers,
});
const text = await res.text();
return (cache = text);
const data = await res.json();
disabled = res.status === 429;
cache = data?.cache;
} catch (e) {
/* empty */
}
@ -264,6 +267,7 @@
let title = document.title;
let cache;
let initialized;
let disabled = false;
if (autoTrack && !trackingDisabled()) {
if (document.readyState === 'complete') {