Skip to content

Commit 51aee15

Browse files
authored
🤖 Merge PR DefinitelyTyped#71767 [@types/umami-browser] update definitions to umami ver 2.13.0 by @ari-party
1 parent c0b6e6c commit 51aee15

File tree

3 files changed

+58
-22
lines changed

3 files changed

+58
-22
lines changed
Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,47 @@
11
declare var umami: umami.umami;
22

3+
type WithRequired<T, K extends keyof T> = T & { [P in K]-?: T[P] };
4+
5+
/**
6+
* @see {@link https://umami.is/docs/tracker-functions|Umami Docs}
7+
*/
38
declare namespace umami {
4-
interface TrackPayload {
9+
interface PageViewProperties {
510
website: string;
6-
hostname?: string;
7-
language?: string;
8-
referrer?: string;
9-
screen?: string;
10-
title?: string;
11-
url?: string;
11+
hostname: string;
12+
language: string;
13+
referrer: string;
14+
screen: string;
15+
title: string;
16+
url: string;
17+
}
18+
19+
interface EventData {
20+
[key: string]:
21+
| number
22+
| string
23+
| EventData
24+
| number[]
25+
| string[]
26+
| EventData[];
27+
}
28+
29+
interface CustomPayload extends WithRequired<Partial<PageViewProperties>, "website"> {
30+
name?: string;
31+
data?: EventData;
1232
}
1333

1434
interface umami {
15-
track(payloadOrCallback?: TrackPayload | ((properties: TrackPayload) => TrackPayload)): void;
16-
track(eventName?: string, eventData?: Record<string, unknown>): void;
35+
track: {
36+
(): Promise<string>;
37+
(eventName: string): Promise<string>;
38+
(eventName: string, eventData: EventData): Promise<string>;
39+
(props: CustomPayload): Promise<string>;
40+
(
41+
callback: (props: PageViewProperties) => CustomPayload,
42+
): Promise<string>;
43+
};
44+
45+
identify(data: EventData): Promise<string>;
1746
}
1847
}

‎types/umami-browser/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"private": true,
33
"name": "@types/umami-browser",
4-
"version": "2.3.9999",
4+
"version": "2.13.9999",
55
"nonNpm": true,
66
"nonNpmDescription": "umami-browser",
77
"projects": [
Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,24 @@
11
umami.track();
22

3-
umami.track({ website: "" });
4-
umami.track({ website: "", hostname: "" });
5-
umami.track({ website: "", language: "" });
6-
umami.track({ website: "", referrer: "" });
7-
umami.track({ website: "", screen: "" });
8-
umami.track({ website: "", title: "" });
9-
umami.track({ website: "", url: "" });
10-
11-
umami.track(properties => {
12-
return { ...properties, url: "", title: "" };
3+
umami.track({
4+
website: "e676c9b4-11e4-4ef1-a4d7-87001773e9f2",
5+
url: "/home",
6+
title: "Home page",
137
});
148

15-
umami.track("custom_event");
9+
umami.track((props) => ({ ...props, url: "/home", title: "Home page" }));
10+
11+
umami.track("signup-button");
12+
13+
umami.track("signup-button", { name: "newsletter", id: 123 });
14+
15+
umami.track((props) => ({
16+
...props,
17+
name: "signup-button",
18+
data: {
19+
name: "newsletter",
20+
id: 123,
21+
},
22+
}));
1623

17-
umami.track("custom_event", { name: "newsletter", id: 123 });
24+
umami.identify({ email: "[email protected]" });

0 commit comments

Comments
 (0)