UNPKG

@datadog/mobile-react-native-code-push

Version:

A client-side React Native module to interact with Appcenter Codepush and Datadog

79 lines (77 loc) 3.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DatadogCodepushProvider = exports.DatadogCodepush = void 0; var _mobileReactNative = require("@datadog/mobile-react-native"); var _reactNativeCodePush = _interopRequireDefault(require("react-native-code-push")); var _utils = require("./utils"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } /* * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0. * This product includes software developed at Datadog (https://www.datadoghq.com/). * Copyright 2016-Present Datadog, Inc. */ /** * Use this class instead of DdSdkReactNative to initialize the Datadog SDK when using AppCenter CodePush. */ const DatadogCodepush = exports.DatadogCodepush = { async initialize(configuration) { const codePushUpdateMetadata = await _reactNativeCodePush.default.getUpdateMetadata(); if (codePushUpdateMetadata) { configuration.versionSuffix = `codepush.${codePushUpdateMetadata.label}`; } return _mobileReactNative.DdSdkReactNative.initialize(configuration); } }; const initializeWithCodepushVersion = async configuration => { const codePushUpdateMetadata = await _reactNativeCodePush.default.getUpdateMetadata(); if (codePushUpdateMetadata) { configuration.versionSuffix = `codepush.${codePushUpdateMetadata.label}`; } _mobileReactNative.DatadogProvider.initialize(configuration); }; const buildPartialConfiguration = configuration => { const partialConfiguration = { trackErrors: configuration.trackErrors, trackResources: configuration.trackResources, trackInteractions: configuration.trackInteractions, firstPartyHosts: configuration.firstPartyHosts, logEventMapper: configuration.logEventMapper, errorEventMapper: configuration.errorEventMapper, resourceEventMapper: configuration.resourceEventMapper, actionEventMapper: configuration.actionEventMapper, useAccessibilityLabel: configuration.useAccessibilityLabel, resourceTracingSamplingRate: configuration.resourceTracingSamplingRate, actionNameAttribute: configuration.actionNameAttribute ?? _utils.DISCARD_PROPERTY }; return (0, _utils.removeDiscardProperties)(partialConfiguration); }; const DatadogCodepushProvider = ({ configuration, ...rest }) => { // We cannot use SYNC or ASYNC initialization modes as we need to asynchronously get the CodePush version. // We turn it to partial initialization, while in parallel we get the CodePush version and initialize the SDK. if (configuration instanceof _mobileReactNative.DatadogProviderConfiguration) { initializeWithCodepushVersion(configuration); return (0, _mobileReactNative.DatadogProvider)({ configuration: buildPartialConfiguration(configuration), ...rest }); } else { return (0, _mobileReactNative.DatadogProvider)({ configuration, ...rest }); } }; exports.DatadogCodepushProvider = DatadogCodepushProvider; DatadogCodepushProvider.initialize = async configuration => { const codePushUpdateMetadata = await _reactNativeCodePush.default.getUpdateMetadata(); if (codePushUpdateMetadata) { configuration.versionSuffix = `codepush.${codePushUpdateMetadata.label}`; } _mobileReactNative.DatadogProvider.initialize(configuration); }; //# sourceMappingURL=index.js.map