/* * Copyright The OpenTelemetry Authors * SPDX-License-Identifier: Apache-2.0 */ export function validateTimeoutMillis(timeoutMillis) { if (Number.isFinite(timeoutMillis) && timeoutMillis > 0) { return timeoutMillis; } throw new Error(`Configuration: timeoutMillis is invalid, expected number greater than 0 (actual: '${timeoutMillis}')`); } export function wrapStaticHeadersInFunction(headers) { if (headers == null) { return undefined; } return async () => headers; } /** * @param userProvidedConfiguration Configuration options provided by the user in code. * @param fallbackConfiguration Fallback to use when the {@link userProvidedConfiguration} does not specify an option. * @param defaultConfiguration The defaults as defined by the exporter specification */ export function mergeOtlpSharedConfigurationWithDefaults(userProvidedConfiguration, fallbackConfiguration, defaultConfiguration) { return { timeoutMillis: validateTimeoutMillis(userProvidedConfiguration.timeoutMillis ?? fallbackConfiguration.timeoutMillis ?? defaultConfiguration.timeoutMillis), concurrencyLimit: userProvidedConfiguration.concurrencyLimit ?? fallbackConfiguration.concurrencyLimit ?? defaultConfiguration.concurrencyLimit, compression: userProvidedConfiguration.compression ?? fallbackConfiguration.compression ?? defaultConfiguration.compression, }; } export function getSharedConfigurationDefaults() { return { timeoutMillis: 10000, concurrencyLimit: 30, compression: 'none', }; } //# sourceMappingURL=shared-configuration.js.map