https://github.com/yet3/type-safe-mixpanel
A set of utilities for defining type-safe mixpanel events
https://github.com/yet3/type-safe-mixpanel
Last synced: over 1 year ago
JSON representation
A set of utilities for defining type-safe mixpanel events
- Host: GitHub
- URL: https://github.com/yet3/type-safe-mixpanel
- Owner: yet3
- Created: 2025-03-13T16:59:49.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-13T17:02:01.000Z (over 1 year ago)
- Last Synced: 2025-03-13T18:26:04.611Z (over 1 year ago)
- Language: TypeScript
- Size: 4.88 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Type safe mixpanel
A set of utilities for safely defining mixpanel events
### Example
```ts
import { defineMpEvents, createTrackEvent, mpinf, mperr, mpwarn } from "@yet3/type-safe-mixpanel";
export const MP = defineMpEvents({
APP_MOUNT: mpinf("App has mounted"),
BTN: {
CLICKED: mpinf<{ btnId: string }>("User clicked button"),
},
INPUT_ERR: mperr<{ value: string }>("Generic error"),
});
const trackEvent = createTrackEvent();
const trackUserEvent = createTrackEvent({
baseProps: () => ({
USER_ID: "a3sd89z1kk4d1kl8",
}),
});
trackEvent(MP.APP_MOUNT);
trackUserEvent(MP.BTN.CLICKED, { btnId: "v8u7" });
try {
// ...
} catch (e) {
trackEvent(MP.INPUT_ERR, { value: "", nativeError: e });
}
```