@tracelog/lib 2.2.1 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -2
- package/dist/browser/tracelog.esm.js +163 -147
- package/dist/browser/tracelog.esm.js.map +1 -1
- package/dist/browser/tracelog.js +1 -1
- package/dist/browser/tracelog.js.map +1 -1
- package/dist/public-api.cjs +28 -8
- package/dist/public-api.cjs.map +1 -1
- package/dist/public-api.d.mts +19 -3
- package/dist/public-api.d.ts +19 -3
- package/dist/public-api.js +28 -8
- package/dist/public-api.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -28,10 +28,11 @@ npm install @tracelog/lib
|
|
|
28
28
|
import { tracelog } from '@tracelog/lib';
|
|
29
29
|
|
|
30
30
|
// Standalone mode (no backend)
|
|
31
|
-
await tracelog.init();
|
|
31
|
+
const { sessionId } = await tracelog.init();
|
|
32
|
+
console.log('Session:', sessionId);
|
|
32
33
|
|
|
33
34
|
// With TraceLog SaaS
|
|
34
|
-
await tracelog.init({
|
|
35
|
+
const { sessionId } = await tracelog.init({
|
|
35
36
|
integrations: {
|
|
36
37
|
tracelog: { projectId: 'your-project-id' }
|
|
37
38
|
}
|
|
@@ -415,6 +416,50 @@ Transform events dynamically at runtime before they're sent to integrations. Use
|
|
|
415
416
|
- Custom backend receives **transformed events**
|
|
416
417
|
- Independent error handling and retry per integration
|
|
417
418
|
|
|
419
|
+
**Event Listeners and Transformers:**
|
|
420
|
+
|
|
421
|
+
Event listeners (`tracelog.on('event', ...)`) receive **original events**, not transformed events. Transformers only affect data sent to backends.
|
|
422
|
+
|
|
423
|
+
```typescript
|
|
424
|
+
tracelog.setTransformer('beforeSend', (data) => {
|
|
425
|
+
if ('type' in data) {
|
|
426
|
+
return { ...data, enrichedField: 'value' };
|
|
427
|
+
}
|
|
428
|
+
return data;
|
|
429
|
+
});
|
|
430
|
+
|
|
431
|
+
tracelog.on('event', (ev) => {
|
|
432
|
+
console.log(ev.enrichedField); // undefined - listeners receive original events
|
|
433
|
+
});
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
**Workaround for GTM/Third-Party Relay:**
|
|
437
|
+
|
|
438
|
+
If you need to forward enriched events to GTM or other systems, apply the transformation in your listener:
|
|
439
|
+
|
|
440
|
+
```typescript
|
|
441
|
+
// Define enrichment function once
|
|
442
|
+
const enrichEvent = (event) => ({
|
|
443
|
+
...event,
|
|
444
|
+
appVersion: '1.0.0',
|
|
445
|
+
environment: 'production'
|
|
446
|
+
});
|
|
447
|
+
|
|
448
|
+
// Use in transformer (for backend)
|
|
449
|
+
tracelog.setTransformer('beforeSend', (data) => {
|
|
450
|
+
if ('type' in data) {
|
|
451
|
+
return enrichEvent(data);
|
|
452
|
+
}
|
|
453
|
+
return data;
|
|
454
|
+
});
|
|
455
|
+
|
|
456
|
+
// Use in listener (for GTM relay)
|
|
457
|
+
tracelog.on('event', (event) => {
|
|
458
|
+
const enrichedEvent = enrichEvent(event);
|
|
459
|
+
window.dataLayer?.push({ event: 'tracelog_event', ...enrichedEvent });
|
|
460
|
+
});
|
|
461
|
+
```
|
|
462
|
+
|
|
418
463
|
### Available Hooks
|
|
419
464
|
|
|
420
465
|
#### `beforeSend` - Per-Event Transformation
|