UNPKG

@datadog/mobile-react-native

Version:

A client-side React Native module to interact with Datadog

61 lines (56 loc) 1.91 kB
/* * 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. */ import { createDatadogMetroSerializer, unstable_beforeAssetSerializationPlugin } from './metroSerializer'; import { getDefaultExpoConfig } from './utils'; /** * 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.* */ export 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 */ export function getDatadogExpoConfig(projectRoot, options = {}) { const plugins = options.unstable_beforeAssetSerializationPlugins ?? []; const datadogOptions = { ...options, unstable_beforeAssetSerializationPlugins: [...plugins, unstable_beforeAssetSerializationPlugin] }; return (options.getDefaultConfig ?? 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 */ export function withDatadogDebugId(config) { const customSerializer = createDatadogMetroSerializer(config.serializer?.customSerializer || undefined); return { ...config, serializer: { ...config.serializer, customSerializer } }; } //# sourceMappingURL=metroConfig.js.map