UNPKG

@aws-amplify/analytics

Version:

Analytics category of aws-amplify

1 lines 3.49 kB
{"version":3,"file":"trackerHelpers.mjs","sources":["../../../src/utils/trackerHelpers.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { EventTracker, PageViewTracker, SessionTracker } from '../trackers';\n/**\n * Updates a provider's trackers as appropriate for the provided auto-track configuration.\n *\n * @remark\n * This utility will mutate the provider's configured trackers via `providerTrackers`.\n *\n * @param namespace - Optional provider identifier used to namespace shared page-view\n * tracking state (the `sessionStorage` key). Providers that can be enabled alongside\n * another provider's `pageView` auto-track (e.g. Kinesis, Kinesis Firehose) must pass a\n * unique value so each provider records page views independently instead of clobbering a\n * shared key.\n */\nexport const updateProviderTrackers = (input, providerEventRecorder, providerTrackers, namespace) => {\n let trackerInstance;\n const trackerType = input.type;\n const currentTracker = providerTrackers[trackerType];\n // Check if the tracker was disabled & should be cleaned up\n if (!input.enable) {\n if (currentTracker) {\n currentTracker.cleanup();\n delete providerTrackers[trackerType];\n }\n return;\n }\n // Re-configure the existing tracker, or create & configure an instance if it doesn't exist yet\n if (currentTracker) {\n currentTracker.configure(providerEventRecorder, input.options);\n return;\n }\n // Create a new tracker instance for the type\n if (trackerType === 'event') {\n trackerInstance = new EventTracker(providerEventRecorder, input.options);\n }\n else if (trackerType === 'pageView') {\n // Only forward the namespace when a provider supplies one, so providers that\n // don't (e.g. Pinpoint) keep the original two-argument construction.\n trackerInstance = namespace\n ? new PageViewTracker(providerEventRecorder, input.options, namespace)\n : new PageViewTracker(providerEventRecorder, input.options);\n }\n else if (trackerType === 'session') {\n trackerInstance = new SessionTracker(providerEventRecorder, input.options);\n }\n if (trackerInstance) {\n providerTrackers[trackerType] = trackerInstance;\n }\n};\n"],"names":[],"mappings":";;;;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,sBAAsB,GAAG,CAAC,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,SAAS,KAAK;AACrG,IAAI,IAAI,eAAe;AACvB,IAAI,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI;AAClC,IAAI,MAAM,cAAc,GAAG,gBAAgB,CAAC,WAAW,CAAC;AACxD;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACvB,QAAQ,IAAI,cAAc,EAAE;AAC5B,YAAY,cAAc,CAAC,OAAO,EAAE;AACpC,YAAY,OAAO,gBAAgB,CAAC,WAAW,CAAC;AAChD,QAAQ;AACR,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,IAAI,cAAc,EAAE;AACxB,QAAQ,cAAc,CAAC,SAAS,CAAC,qBAAqB,EAAE,KAAK,CAAC,OAAO,CAAC;AACtE,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,IAAI,WAAW,KAAK,OAAO,EAAE;AACjC,QAAQ,eAAe,GAAG,IAAI,YAAY,CAAC,qBAAqB,EAAE,KAAK,CAAC,OAAO,CAAC;AAChF,IAAI;AACJ,SAAS,IAAI,WAAW,KAAK,UAAU,EAAE;AACzC;AACA;AACA,QAAQ,eAAe,GAAG;AAC1B,cAAc,IAAI,eAAe,CAAC,qBAAqB,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS;AACjF,cAAc,IAAI,eAAe,CAAC,qBAAqB,EAAE,KAAK,CAAC,OAAO,CAAC;AACvE,IAAI;AACJ,SAAS,IAAI,WAAW,KAAK,SAAS,EAAE;AACxC,QAAQ,eAAe,GAAG,IAAI,cAAc,CAAC,qBAAqB,EAAE,KAAK,CAAC,OAAO,CAAC;AAClF,IAAI;AACJ,IAAI,IAAI,eAAe,EAAE;AACzB,QAAQ,gBAAgB,CAAC,WAAW,CAAC,GAAG,eAAe;AACvD,IAAI;AACJ;;;;"}