@dysonic/web-replay-sdk-h5
v0.1.0
Published
H5 replay SDK built on the shared web replay core
Readme
@dysonic/web-replay-sdk-h5
H5/mobile replay SDK. Records user sessions using a custom event adapter pattern built on top of @dysonic/web-replay-core, and exports a ReplayEnvelope for playback and issue reporting.
Unlike the PC SDK, this package does not bundle rrweb — you supply the event source via recordEvent(). This keeps the bundle small and lets you plug in any capture mechanism suited to your H5 environment.
Installation
npm install @dysonic/web-replay-sdk-h5Quick Start
import { createWebSdk } from '@dysonic/web-replay-sdk-h5';
const sdk = createWebSdk({
appName: 'my-h5-app',
appVersion: '2.1.0',
maxMinutes: 5,
reporter: {
async report({ envelope, reason, extra }) {
await fetch('/api/replay', {
method: 'POST',
body: JSON.stringify({ envelope, reason, extra }),
});
},
},
});
sdk.init();
// Feed events from your capture mechanism:
yourCapture.on('event', (e) => sdk.recordEvent(e));
// Report an issue:
const envelope = await sdk.reportIssue('Blank screen after tap');API
createWebSdk(config)
Creates and returns a WebSdkInstance. Recording does not begin until init() is called.
interface WebSdkConfig<TEvent = unknown> {
appName: string;
appVersion: string;
maxMinutes?: number; // default: 5, max: 10
maxBytes?: number; // default: 5 MB
maskRules?: MaskRule[]; // CSS-selector-based field masking
now?: () => number; // injectable clock (useful in tests)
reporter?: Reporter<TEvent>;
}Instance methods
| Method | Description |
|---|---|
| init() | Start the session and write the initial lifecycle marker. |
| pause() | Pause buffering; events passed to recordEvent() are discarded. |
| resume() | Resume buffering. |
| recordEvent(event, timestamp?) | Push an event into the buffer. Events queued before init() are flushed automatically on start. |
| reportIssue(reason?, extra?) | Flush the buffer, call the reporter, and return the ReplayEnvelope. |
| destroy() | Stop recording and clear the buffer. |
Pre-init event queue
Events recorded via recordEvent() before init() is called are held in a queue and automatically replayed into the buffer the moment the adapter starts. This means you can safely call recordEvent() at any point during application boot.
License
MIT
