@objectiv/tracker-angular
Version:
Objectiv Angular framework analytics tracker for the open analytics taxonomy
35 lines • 5.87 kB
JavaScript
/*
* Copyright 2022 Objectiv B.V.
*/
import { makeBrowserTrackerDefaultPluginsList, makeBrowserTrackerDefaultQueue, makeBrowserTrackerDefaultTransport, Tracker, } from '@objectiv/tracker-browser';
import { TrackerPlatform } from '@objectiv/tracker-core';
/**
* Angular Tracker is identical to BrowserTracker, exception made for its platform.
*/
export class AngularTracker extends Tracker {
constructor(trackerConfig, ...contextConfigs) {
var _a, _b;
let config = trackerConfig;
// Set the platform
config.platform = TrackerPlatform.ANGULAR;
// Either `transport` or `endpoint` must be provided
if (!config.transport && !trackerConfig.endpoint) {
throw new Error('Either `transport` or `endpoint` must be provided');
}
// `transport` and `endpoint` must not be provided together
if (config.transport && trackerConfig.endpoint) {
throw new Error('Please provider either `transport` or `endpoint`, not both at same time');
}
// Automatically create a default Transport for the given `endpoint` with a sensible setup
if (trackerConfig.endpoint) {
config = Object.assign(Object.assign({}, config), { transport: makeBrowserTrackerDefaultTransport(), queue: (_a = config.queue) !== null && _a !== void 0 ? _a : makeBrowserTrackerDefaultQueue(config) });
}
// Add default plugins for Angular
config.plugins = [...makeBrowserTrackerDefaultPluginsList(trackerConfig), ...((_b = config.plugins) !== null && _b !== void 0 ? _b : [])];
// Initialize core Tracker
super(config, ...contextConfigs);
// Store original config for comparison with other instances of Browser Tracker
this.trackerConfig = trackerConfig;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQW5ndWxhclRyYWNrZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ab2JqZWN0aXYvdHJhY2tlci1hbmd1bGFyLyIsInNvdXJjZXMiOlsiQW5ndWxhclRyYWNrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBR0wsb0NBQW9DLEVBQ3BDLDhCQUE4QixFQUM5QixrQ0FBa0MsRUFDbEMsT0FBTyxHQUVSLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXpEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGNBQWUsU0FBUSxPQUFPO0lBSXpDLFlBQVksYUFBbUMsRUFBRSxHQUFHLGNBQWdDOztRQUNsRixJQUFJLE1BQU0sR0FBa0IsYUFBYSxDQUFDO1FBRTFDLG1CQUFtQjtRQUNuQixNQUFNLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUM7UUFFMUMsb0RBQW9EO1FBQ3BELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUNoRCxNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7U0FDdEU7UUFFRCwyREFBMkQ7UUFDM0QsSUFBSSxNQUFNLENBQUMsU0FBUyxJQUFJLGFBQWEsQ0FBQyxRQUFRLEVBQUU7WUFDOUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5RUFBeUUsQ0FBQyxDQUFDO1NBQzVGO1FBRUQsMEZBQTBGO1FBQzFGLElBQUksYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUMxQixNQUFNLG1DQUNELE1BQU0sS0FDVCxTQUFTLEVBQUUsa0NBQWtDLEVBQUUsRUFDL0MsS0FBSyxRQUFFLE1BQU0sQ0FBQyxLQUFLLG1DQUFJLDhCQUE4QixDQUFDLE1BQU0sQ0FBQyxHQUM5RCxDQUFDO1NBQ0g7UUFFRCxrQ0FBa0M7UUFDbEMsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsb0NBQW9DLENBQUMsYUFBYSxDQUFDLEVBQUUsR0FBRyxPQUFDLE1BQU0sQ0FBQyxPQUFPLG1DQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFckcsMEJBQTBCO1FBQzFCLEtBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxjQUFjLENBQUMsQ0FBQztRQUVqQywrRUFBK0U7UUFDL0UsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7SUFDckMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIyIE9iamVjdGl2IEIuVi5cbiAqL1xuXG5pbXBvcnQge1xuICBCcm93c2VyVHJhY2tlckNvbmZpZyxcbiAgQ29udGV4dHNDb25maWcsXG4gIG1ha2VCcm93c2VyVHJhY2tlckRlZmF1bHRQbHVnaW5zTGlzdCxcbiAgbWFrZUJyb3dzZXJUcmFja2VyRGVmYXVsdFF1ZXVlLFxuICBtYWtlQnJvd3NlclRyYWNrZXJEZWZhdWx0VHJhbnNwb3J0LFxuICBUcmFja2VyLFxuICBUcmFja2VyQ29uZmlnLFxufSBmcm9tICdAb2JqZWN0aXYvdHJhY2tlci1icm93c2VyJztcbmltcG9ydCB7IFRyYWNrZXJQbGF0Zm9ybSB9IGZyb20gJ0BvYmplY3Rpdi90cmFja2VyLWNvcmUnO1xuXG4vKipcbiAqIEFuZ3VsYXIgVHJhY2tlciBpcyBpZGVudGljYWwgdG8gQnJvd3NlclRyYWNrZXIsIGV4Y2VwdGlvbiBtYWRlIGZvciBpdHMgcGxhdGZvcm0uXG4gKi9cbmV4cG9ydCBjbGFzcyBBbmd1bGFyVHJhY2tlciBleHRlbmRzIFRyYWNrZXIge1xuICAvLyBBIGNvcHkgb2YgdGhlIG9yaWdpbmFsIGNvbmZpZ3VyYXRpb25cbiAgcmVhZG9ubHkgdHJhY2tlckNvbmZpZzogVHJhY2tlckNvbmZpZztcblxuICBjb25zdHJ1Y3Rvcih0cmFja2VyQ29uZmlnOiBCcm93c2VyVHJhY2tlckNvbmZpZywgLi4uY29udGV4dENvbmZpZ3M6IENvbnRleHRzQ29uZmlnW10pIHtcbiAgICBsZXQgY29uZmlnOiBUcmFja2VyQ29uZmlnID0gdHJhY2tlckNvbmZpZztcblxuICAgIC8vIFNldCB0aGUgcGxhdGZvcm1cbiAgICBjb25maWcucGxhdGZvcm0gPSBUcmFja2VyUGxhdGZvcm0uQU5HVUxBUjtcblxuICAgIC8vIEVpdGhlciBgdHJhbnNwb3J0YCBvciBgZW5kcG9pbnRgIG11c3QgYmUgcHJvdmlkZWRcbiAgICBpZiAoIWNvbmZpZy50cmFuc3BvcnQgJiYgIXRyYWNrZXJDb25maWcuZW5kcG9pbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRWl0aGVyIGB0cmFuc3BvcnRgIG9yIGBlbmRwb2ludGAgbXVzdCBiZSBwcm92aWRlZCcpO1xuICAgIH1cblxuICAgIC8vIGB0cmFuc3BvcnRgIGFuZCBgZW5kcG9pbnRgIG11c3Qgbm90IGJlIHByb3ZpZGVkIHRvZ2V0aGVyXG4gICAgaWYgKGNvbmZpZy50cmFuc3BvcnQgJiYgdHJhY2tlckNvbmZpZy5lbmRwb2ludCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdQbGVhc2UgcHJvdmlkZXIgZWl0aGVyIGB0cmFuc3BvcnRgIG9yIGBlbmRwb2ludGAsIG5vdCBib3RoIGF0IHNhbWUgdGltZScpO1xuICAgIH1cblxuICAgIC8vIEF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgZGVmYXVsdCBUcmFuc3BvcnQgZm9yIHRoZSBnaXZlbiBgZW5kcG9pbnRgIHdpdGggYSBzZW5zaWJsZSBzZXR1cFxuICAgIGlmICh0cmFja2VyQ29uZmlnLmVuZHBvaW50KSB7XG4gICAgICBjb25maWcgPSB7XG4gICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgdHJhbnNwb3J0OiBtYWtlQnJvd3NlclRyYWNrZXJEZWZhdWx0VHJhbnNwb3J0KCksXG4gICAgICAgIHF1ZXVlOiBjb25maWcucXVldWUgPz8gbWFrZUJyb3dzZXJUcmFja2VyRGVmYXVsdFF1ZXVlKGNvbmZpZyksXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIEFkZCBkZWZhdWx0IHBsdWdpbnMgZm9yIEFuZ3VsYXJcbiAgICBjb25maWcucGx1Z2lucyA9IFsuLi5tYWtlQnJvd3NlclRyYWNrZXJEZWZhdWx0UGx1Z2luc0xpc3QodHJhY2tlckNvbmZpZyksIC4uLihjb25maWcucGx1Z2lucyA/PyBbXSldO1xuXG4gICAgLy8gSW5pdGlhbGl6ZSBjb3JlIFRyYWNrZXJcbiAgICBzdXBlcihjb25maWcsIC4uLmNvbnRleHRDb25maWdzKTtcblxuICAgIC8vIFN0b3JlIG9yaWdpbmFsIGNvbmZpZyBmb3IgY29tcGFyaXNvbiB3aXRoIG90aGVyIGluc3RhbmNlcyBvZiBCcm93c2VyIFRyYWNrZXJcbiAgICB0aGlzLnRyYWNrZXJDb25maWcgPSB0cmFja2VyQ29uZmlnO1xuICB9XG59XG4iXX0=