@datadog/mobile-react-native
Version:
A client-side React Native module to interact with Datadog
68 lines (63 loc) • 2.1 kB
JavaScript
;
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