Skip to content

Commit 0bff7c6

Browse files
authored
Added RudderStack Telemetry Provider (#1491)
* feat(telemetry): added rudderstack telemetry js library * feat: added rudderstack provider * chore: added field to telemetry provider config * chore: remove unused imports * feat(telemetry): added rudderstack telemetry js library * feat: added rudderstack provider * chore: added field to telemetry provider config * chore: remove unused imports * chore: updated rudderstack provider to have only named imports * fix: removed additional field from telemetry config interface * chore: remove import from config module as it's already present in root module
1 parent 4641c43 commit 0bff7c6

File tree

5 files changed

+47
-1
lines changed

5 files changed

+47
-1
lines changed

package-lock.json

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
"lodash-es": "^4.17.21",
6666
"mixpanel-browser": "^2.45.0",
6767
"ngx-color": "7.0.0",
68+
"rudder-sdk-js": "^2.3.0",
6869
"rxjs": "~6.6.7",
6970
"tslib": "^2.3.1",
7071
"uuid": "^8.3.2",

projects/common/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222
"d3-interpolate": "^2.0.1",
2323
"d3-color": "^1.4.0",
2424
"@fullstory/browser": "^1.4.9",
25-
"mixpanel-browser": "^2.41.0"
25+
"mixpanel-browser": "^2.41.0",
26+
"rudder-sdk-js": "^2.3.0"
2627
},
2728
"devDependencies": {
2829
"@hypertrace/test-utils": "^0.0.0"

projects/common/src/public-api.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ export * from './telemetry/telemetry';
107107
export { FullStoryTelemetry } from './telemetry/providers/fullstory/full-story-provider';
108108
export { FreshPaintTelemetry } from './telemetry/providers/freshpaint/freshpaint-provider';
109109
export { MixPanelTelemetry } from './telemetry/providers/mixpanel/mixpanel-provider';
110+
export { RudderStackTelemetry } from './telemetry/providers/rudderstack/rudderstack-provider';
110111
export { TrackDirective } from './telemetry/track/track.directive';
111112

112113
// Time
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import { Injectable } from '@angular/core';
2+
import { Dictionary } from '../../../utilities/types/types';
3+
4+
import { apiObject, identify, load, page, track } from 'rudder-sdk-js';
5+
import { TelemetryProviderConfig, UserTelemetryProvider, UserTraits } from '../../telemetry';
6+
7+
export interface RudderStackConfig extends TelemetryProviderConfig {
8+
writeKey: string;
9+
}
10+
11+
@Injectable({ providedIn: 'root' })
12+
export class RudderStackTelemetry implements UserTelemetryProvider<RudderStackConfig> {
13+
public initialize(config: RudderStackConfig): void {
14+
load(config.writeKey, config.orgId, { configUrl: config.orgId });
15+
}
16+
17+
public identify(userTraits: UserTraits): void {
18+
identify(undefined, userTraits as apiObject);
19+
}
20+
21+
public trackEvent(name: string, eventData: Dictionary<unknown>): void {
22+
track(name, eventData as apiObject);
23+
}
24+
25+
public trackPage(name: string, eventData: Dictionary<unknown>): void {
26+
page(name, name, eventData as apiObject);
27+
}
28+
29+
public trackError(name: string, eventData: Dictionary<unknown>): void {
30+
this.trackEvent(name, eventData);
31+
}
32+
}

0 commit comments

Comments
 (0)