@plushanalytics/javascript
v0.1.6
Published
Core JavaScript/TypeScript SDK for Plush Analytics (shared base for web + react-native).
Maintainers
Readme
@plushanalytics/javascript
Core JavaScript/TypeScript SDK for Plush Analytics.
Install
npm install @plushanalytics/javascriptQuick Setup
import { createPlushAnalyticsClient } from "@plushanalytics/javascript";
const analytics = createPlushAnalyticsClient({
apiKey: "plsh_...",
projectId: "backend"
});
await analytics.track("job_started", { properties: { jobId: "123" } });
await analytics.flush();Common Usage
// Track
await analytics.track("purchase", { properties: { amount: 99 } });
// Identify
await analytics.identify("user_123", { traits: { plan: "pro" } });
// Screen
await analytics.screen("Settings", { properties: { tab: "billing" } });
// Group
await analytics.group("org_456", { traits: { tier: "enterprise" } });
// Optional shared context
analytics.setContext({ appVersion: "1.2.3", build: 42 });Session Replay Upload (Optional)
This package can upload replay chunks when you provide a recorder adapter.
import type { ReplayRecorderAdapter } from "@plushanalytics/javascript";
const recorder: ReplayRecorderAdapter = {
async start({ emit, onSessionId }) {
onSessionId?.("sess_123");
// emit replay events/chunks from your recorder implementation
return () => {};
}
};
await analytics.startSessionRecording({ recorder });
await analytics.flushSessionRecording();
await analytics.stopSessionRecording();API Surface
createPlushAnalyticsClient(config)trackEvent(eventName, options?)/track(eventName, options?)identify(userId, options?)screen(screenName, options?)group(groupId, options?)flush(options?)startSessionRecording(options?)/startReplay(options?)flushSessionRecording()/flushReplay()stopSessionRecording()/stopReplay()setProject(projectId)setContext(context)getQueueSize()reset()shutdown()
