Skip to content

Commit

Permalink
feat: add lazy load umami
Browse files Browse the repository at this point in the history
  • Loading branch information
yjl9903 committed Mar 22, 2024
1 parent 0d0cd95 commit 18c3304
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 6 deletions.
14 changes: 10 additions & 4 deletions packages/unplugin-analytics/client.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,19 @@ declare module '~analytics/umami' {

export const umami: {
track: {
(): void;
(): Promise<string>;

(payload: Payload): void;
(payload: Payload): Promise<string>;

(payload: (props: Payload) => Payload & Record<string, any>): void;
(
payload: (
props: Payload
) =>
| (Payload & { name: string; data: Record<string, any> })
| (Payload & Record<string, any>)
): Promise<string>;

(event: string, data?: Record<string, any>): void;
(event: string, data?: Record<string, any>): Promise<string>;
};
};
}
13 changes: 11 additions & 2 deletions packages/unplugin-analytics/src/plugin/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,19 @@ export interface Options {
export const UnpluginAnalyticsRuntime = createUnplugin<Options | undefined>((options = {}) => {
const scripts: Record<string, () => string> = {
clarity() {
return [`export const clarity = window.clarity;`].join('\n');
return [`export let clarity = window.clarity;`].join('\n');
},
umami() {
return [`export const umami = window.umami;`].join('\n');
return [
`export let umami = window.umami;`,
`
if (!umami) {
window.addEventListener("load", (event) => {
umami = window.umami
console.log("Load umami:", umami)
});
}`
].join('\n');
}
};
const moduleNames = Object.keys(scripts).map((s) => `~analytics/${s}`);
Expand Down

0 comments on commit 18c3304

Please sign in to comment.