UNPKG

@datadog/mobile-react-native

Version:

A client-side React Native module to interact with Datadog

68 lines (63 loc) 2.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getDatadogExpoConfig = getDatadogExpoConfig; exports.withDatadogDebugId = withDatadogDebugId; exports.withDatadogMetroConfig = withDatadogMetroConfig; var _metroSerializer = require("./metroSerializer"); var _utils = require("./utils"); /* * 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. */ /** * Custom Datadog Metro Configuration. */ /** * Extends the Metro bundler configuration to integrate with Datadog. * * *Note: If a custom serializer is used and `config.useDebugId` is set to `true` (as it is by default), * you must manually invoke `options.datadogBundleCallback` within the serializer.* */ function withDatadogMetroConfig(config) { let newConfig = config; if (config.useDebugId ?? true) { newConfig = withDatadogDebugId(config); } return { ...newConfig, transformer: { ...newConfig.transformer } }; } /** * Extends the Expo configuration to integrate with Datadog. * @param config * @returns */ function getDatadogExpoConfig(projectRoot, options = {}) { const plugins = options.unstable_beforeAssetSerializationPlugins ?? []; const datadogOptions = { ...options, unstable_beforeAssetSerializationPlugins: [...plugins, _metroSerializer.unstable_beforeAssetSerializationPlugin] }; return (options.getDefaultConfig ?? _utils.getDefaultExpoConfig)(projectRoot, datadogOptions); } /** * Extends the Metro bundler configuration by enabling Debug ID injection. * Ref: https://github.com/tc39/ecma426/blob/main/proposals/debug-id.md */ function withDatadogDebugId(config) { const customSerializer = (0, _metroSerializer.createDatadogMetroSerializer)(config.serializer?.customSerializer || undefined); return { ...config, serializer: { ...config.serializer, customSerializer } }; } //# sourceMappingURL=metroConfig.js.map