Files
dukang/apps/mini-user/src/lib/analytics.ts
T
2026-08-04 21:38:49 +08:00

38 lines
1.0 KiB
TypeScript

import Taro from '@tarojs/taro';
import { createUserTracker, getSessionId } from '@dukang/client-logging';
import { API_BASE, CLIENT_APP, getToken } from './api';
function currentPagePath(): string | undefined {
try {
const pages = Taro.getCurrentPages();
const cur = pages[pages.length - 1] as { route?: string; $taroPath?: string } | undefined;
return cur?.$taroPath || cur?.route || undefined;
} catch {
return undefined;
}
}
const tracker = createUserTracker({
apiBase: API_BASE,
clientApp: CLIENT_APP,
getToken,
getPagePath: currentPagePath,
postJson: ({ url, headers, body }) => {
void Taro.request({ url, method: 'POST', header: headers, data: body }).catch(() => {});
},
});
export { getSessionId };
export function track(eventName: string, params?: Record<string, unknown>) {
tracker.track(eventName, params);
}
export function trackPageView(eventName: string, params?: Record<string, unknown>) {
tracker.trackPageView(eventName, params);
}
export function initUserAnalytics() {
tracker.trackSessionStart();
}