Browser TypeScript Example
import { AnalyticsBrowser, Analytics } from '@zixflow/analytics-browser'
const analytics: Analytics = AnalyticsBrowser.load({
apiKey: 'YOUR_API_KEY'
})
interface UserTraits {
email: string
first_name: string
last_name: string
plan: 'free' | 'premium' | 'enterprise'
}
interface PurchaseProperties {
product_id: string
price: number
currency: string
}
// Type-safe identify
analytics.identify('user@example.com', {
email: 'user@example.com',
first_name: 'John',
last_name: 'Doe',
plan: 'premium'
} as UserTraits)
// Type-safe track
analytics.track('purchase_completed', {
product_id: '123',
price: 29.99,
currency: 'USD'
} as PurchaseProperties)
Node.js TypeScript Example
import { Analytics, AnalyticsSettings } from '@zixflow/analytics-node'
const settings: AnalyticsSettings = {
writeKey: 'YOUR_API_KEY',
maxEventsInBatch: 20,
flushInterval: 10000
}
const analytics = new Analytics(settings)
interface UserTraits {
email: string
first_name: string
last_name: string
}
analytics.identify({
userId: 'user@example.com',
traits: {
email: 'user@example.com',
first_name: 'John',
last_name: 'Doe'
} as UserTraits
})
// Flush before exit
process.on('SIGTERM', async () => {
await analytics.closeAndFlush()
process.exit(0)
})