@objectiv/tracker-angular
Version:
Objectiv Angular framework analytics tracker for the open analytics taxonomy
45 lines • 6.35 kB
JavaScript
/*
* Copyright 2022 Objectiv B.V.
*/
import { __assign, __extends, __read, __spread } from "tslib";
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.
*/
var AngularTracker = /** @class */ (function (_super) {
__extends(AngularTracker, _super);
function AngularTracker(trackerConfig) {
var contextConfigs = [];
for (var _i = 1; _i < arguments.length; _i++) {
contextConfigs[_i - 1] = arguments[_i];
}
var _a, _b;
var _this = this;
var 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 = __assign(__assign({}, config), { transport: makeBrowserTrackerDefaultTransport(), queue: (_a = config.queue) !== null && _a !== void 0 ? _a : makeBrowserTrackerDefaultQueue(config) });
}
// Add default plugins for Angular
config.plugins = __spread(makeBrowserTrackerDefaultPluginsList(trackerConfig), ((_b = config.plugins) !== null && _b !== void 0 ? _b : []));
// Initialize core Tracker
_this = _super.apply(this, __spread([config], contextConfigs)) || this;
// Store original config for comparison with other instances of Browser Tracker
_this.trackerConfig = trackerConfig;
return _this;
}
return AngularTracker;
}(Tracker));
export { AngularTracker };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQW5ndWxhclRyYWNrZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ab2JqZWN0aXYvdHJhY2tlci1hbmd1bGFyLyIsInNvdXJjZXMiOlsiQW5ndWxhclRyYWNrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7O0FBRUgsT0FBTyxFQUdMLG9DQUFvQyxFQUNwQyw4QkFBOEIsRUFDOUIsa0NBQWtDLEVBQ2xDLE9BQU8sR0FFUixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV6RDs7R0FFRztBQUNIO0lBQW9DLGtDQUFPO0lBSXpDLHdCQUFZLGFBQW1DO1FBQUUsd0JBQW1DO2FBQW5DLFVBQW1DLEVBQW5DLHFCQUFtQyxFQUFuQyxJQUFtQztZQUFuQyx1Q0FBbUM7OztRQUFwRixpQkFpQ0M7UUFoQ0MsSUFBSSxNQUFNLEdBQWtCLGFBQWEsQ0FBQztRQUUxQyxtQkFBbUI7UUFDbkIsTUFBTSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDO1FBRTFDLG9EQUFvRDtRQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUU7WUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO1NBQ3RFO1FBRUQsMkRBQTJEO1FBQzNELElBQUksTUFBTSxDQUFDLFNBQVMsSUFBSSxhQUFhLENBQUMsUUFBUSxFQUFFO1lBQzlDLE1BQU0sSUFBSSxLQUFLLENBQUMseUVBQXlFLENBQUMsQ0FBQztTQUM1RjtRQUVELDBGQUEwRjtRQUMxRixJQUFJLGFBQWEsQ0FBQyxRQUFRLEVBQUU7WUFDMUIsTUFBTSx5QkFDRCxNQUFNLEtBQ1QsU0FBUyxFQUFFLGtDQUFrQyxFQUFFLEVBQy9DLEtBQUssUUFBRSxNQUFNLENBQUMsS0FBSyxtQ0FBSSw4QkFBOEIsQ0FBQyxNQUFNLENBQUMsR0FDOUQsQ0FBQztTQUNIO1FBRUQsa0NBQWtDO1FBQ2xDLE1BQU0sQ0FBQyxPQUFPLFlBQU8sb0NBQW9DLENBQUMsYUFBYSxDQUFDLEVBQUssT0FBQyxNQUFNLENBQUMsT0FBTyxtQ0FBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXJHLDBCQUEwQjtRQUMxQixxQ0FBTSxNQUFNLEdBQUssY0FBYyxXQUFFO1FBRWpDLCtFQUErRTtRQUMvRSxLQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQzs7SUFDckMsQ0FBQztJQUNILHFCQUFDO0FBQUQsQ0FBQyxBQXRDRCxDQUFvQyxPQUFPLEdBc0MxQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAyMiBPYmplY3RpdiBCLlYuXG4gKi9cblxuaW1wb3J0IHtcbiAgQnJvd3NlclRyYWNrZXJDb25maWcsXG4gIENvbnRleHRzQ29uZmlnLFxuICBtYWtlQnJvd3NlclRyYWNrZXJEZWZhdWx0UGx1Z2luc0xpc3QsXG4gIG1ha2VCcm93c2VyVHJhY2tlckRlZmF1bHRRdWV1ZSxcbiAgbWFrZUJyb3dzZXJUcmFja2VyRGVmYXVsdFRyYW5zcG9ydCxcbiAgVHJhY2tlcixcbiAgVHJhY2tlckNvbmZpZyxcbn0gZnJvbSAnQG9iamVjdGl2L3RyYWNrZXItYnJvd3Nlcic7XG5pbXBvcnQgeyBUcmFja2VyUGxhdGZvcm0gfSBmcm9tICdAb2JqZWN0aXYvdHJhY2tlci1jb3JlJztcblxuLyoqXG4gKiBBbmd1bGFyIFRyYWNrZXIgaXMgaWRlbnRpY2FsIHRvIEJyb3dzZXJUcmFja2VyLCBleGNlcHRpb24gbWFkZSBmb3IgaXRzIHBsYXRmb3JtLlxuICovXG5leHBvcnQgY2xhc3MgQW5ndWxhclRyYWNrZXIgZXh0ZW5kcyBUcmFja2VyIHtcbiAgLy8gQSBjb3B5IG9mIHRoZSBvcmlnaW5hbCBjb25maWd1cmF0aW9uXG4gIHJlYWRvbmx5IHRyYWNrZXJDb25maWc6IFRyYWNrZXJDb25maWc7XG5cbiAgY29uc3RydWN0b3IodHJhY2tlckNvbmZpZzogQnJvd3NlclRyYWNrZXJDb25maWcsIC4uLmNvbnRleHRDb25maWdzOiBDb250ZXh0c0NvbmZpZ1tdKSB7XG4gICAgbGV0IGNvbmZpZzogVHJhY2tlckNvbmZpZyA9IHRyYWNrZXJDb25maWc7XG5cbiAgICAvLyBTZXQgdGhlIHBsYXRmb3JtXG4gICAgY29uZmlnLnBsYXRmb3JtID0gVHJhY2tlclBsYXRmb3JtLkFOR1VMQVI7XG5cbiAgICAvLyBFaXRoZXIgYHRyYW5zcG9ydGAgb3IgYGVuZHBvaW50YCBtdXN0IGJlIHByb3ZpZGVkXG4gICAgaWYgKCFjb25maWcudHJhbnNwb3J0ICYmICF0cmFja2VyQ29uZmlnLmVuZHBvaW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VpdGhlciBgdHJhbnNwb3J0YCBvciBgZW5kcG9pbnRgIG11c3QgYmUgcHJvdmlkZWQnKTtcbiAgICB9XG5cbiAgICAvLyBgdHJhbnNwb3J0YCBhbmQgYGVuZHBvaW50YCBtdXN0IG5vdCBiZSBwcm92aWRlZCB0b2dldGhlclxuICAgIGlmIChjb25maWcudHJhbnNwb3J0ICYmIHRyYWNrZXJDb25maWcuZW5kcG9pbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUGxlYXNlIHByb3ZpZGVyIGVpdGhlciBgdHJhbnNwb3J0YCBvciBgZW5kcG9pbnRgLCBub3QgYm90aCBhdCBzYW1lIHRpbWUnKTtcbiAgICB9XG5cbiAgICAvLyBBdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIGRlZmF1bHQgVHJhbnNwb3J0IGZvciB0aGUgZ2l2ZW4gYGVuZHBvaW50YCB3aXRoIGEgc2Vuc2libGUgc2V0dXBcbiAgICBpZiAodHJhY2tlckNvbmZpZy5lbmRwb2ludCkge1xuICAgICAgY29uZmlnID0ge1xuICAgICAgICAuLi5jb25maWcsXG4gICAgICAgIHRyYW5zcG9ydDogbWFrZUJyb3dzZXJUcmFja2VyRGVmYXVsdFRyYW5zcG9ydCgpLFxuICAgICAgICBxdWV1ZTogY29uZmlnLnF1ZXVlID8/IG1ha2VCcm93c2VyVHJhY2tlckRlZmF1bHRRdWV1ZShjb25maWcpLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBBZGQgZGVmYXVsdCBwbHVnaW5zIGZvciBBbmd1bGFyXG4gICAgY29uZmlnLnBsdWdpbnMgPSBbLi4ubWFrZUJyb3dzZXJUcmFja2VyRGVmYXVsdFBsdWdpbnNMaXN0KHRyYWNrZXJDb25maWcpLCAuLi4oY29uZmlnLnBsdWdpbnMgPz8gW10pXTtcblxuICAgIC8vIEluaXRpYWxpemUgY29yZSBUcmFja2VyXG4gICAgc3VwZXIoY29uZmlnLCAuLi5jb250ZXh0Q29uZmlncyk7XG5cbiAgICAvLyBTdG9yZSBvcmlnaW5hbCBjb25maWcgZm9yIGNvbXBhcmlzb24gd2l0aCBvdGhlciBpbnN0YW5jZXMgb2YgQnJvd3NlciBUcmFja2VyXG4gICAgdGhpcy50cmFja2VyQ29uZmlnID0gdHJhY2tlckNvbmZpZztcbiAgfVxufVxuIl19