UNPKG

@aws-amplify/analytics

Version:

Analytics category of aws-amplify

39 lines (37 loc) • 1.76 kB
'use strict'; // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 Object.defineProperty(exports, "__esModule", { value: true }); exports.configureAutoTrack = configureAutoTrack; const utils_1 = require("../../../utils"); const record_1 = require("./record"); // Configured Tracker instances for Pinpoint const configuredTrackers = {}; function configureAutoTrack(...args) { // Peek the optional leading context WITHOUT falling back to the global // context. The context is only needed when events are emitted; resolving it // eagerly would (a) throw when trackers are configured before // `Amplify.configure()` and (b) pin auto-tracked events to the configuration // snapshot captured at setup time after a later `configure()` call. const { ctx, input } = (0, utils_1.peekCtxArgs)(args); (0, utils_1.validateTrackerConfiguration)(input); // Callback that will emit an appropriate event to Pinpoint when required by the Tracker. // When no explicit context was supplied, `record` resolves the global context // lazily at emit time, so auto-tracked events follow the live configuration // and trackers can be set up before `Amplify.configure()` is called. const emitTrackingEvent = (eventName, attributes) => { const recordInput = { name: eventName, attributes, }; if (ctx) { (0, record_1.record)(ctx, recordInput); } else { (0, record_1.record)(recordInput); } }; // Initialize or update this provider's trackers (0, utils_1.updateProviderTrackers)(input, emitTrackingEvent, configuredTrackers); } //# sourceMappingURL=configureAutoTrack.js.map