chore: make userAgent optional in OtlpNodeHttpConfiguration

This commit is contained in:
David Luna 2025-09-17 16:36:34 +02:00
parent 78667e4a85
commit d36ea599ca
4 changed files with 7 additions and 7 deletions

View File

@ -56,7 +56,7 @@ export function convertLegacyHttpOptions(
signalIdentifier: string,
signalResourcePath: string,
requiredHeaders: Record<string, string>
): OtlpNodeHttpConfiguration {
): Required<OtlpNodeHttpConfiguration> {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
if ((config as any).metadata) {
diag.warn('Metadata cannot be set when using http');

View File

@ -46,7 +46,7 @@ export interface OtlpNodeHttpConfiguration extends OtlpHttpConfiguration {
* Ref: https://github.com/open-telemetry/opentelemetry-specification/pull/4654
* Ref: https://opentelemetry.io/docs/specs/otel/protocol/exporter/#user-agent
*/
userAgent: string;
userAgent?: string;
}
export function httpAgentFactoryFromOptions(
@ -67,8 +67,8 @@ export function httpAgentFactoryFromOptions(
export function mergeOtlpNodeHttpConfigurationWithDefaults(
userProvidedConfiguration: Partial<OtlpNodeHttpConfiguration>,
fallbackConfiguration: Partial<OtlpNodeHttpConfiguration>,
defaultConfiguration: OtlpNodeHttpConfiguration
): OtlpNodeHttpConfiguration {
defaultConfiguration: Required<OtlpNodeHttpConfiguration>
): Required<OtlpNodeHttpConfiguration> {
let userAgent = defaultConfiguration.userAgent;
if (userProvidedConfiguration.userAgent) {
userAgent = `${userProvidedConfiguration.userAgent} ${userAgent}`;
@ -90,7 +90,7 @@ export function mergeOtlpNodeHttpConfigurationWithDefaults(
export function getNodeHttpConfigurationDefaults(
requiredHeaders: Record<string, string>,
signalResourcePath: string
): OtlpNodeHttpConfiguration {
): Required<OtlpNodeHttpConfiguration> {
return {
...getHttpConfigurationDefaults(requiredHeaders, signalResourcePath),
agentFactory: httpAgentFactoryFromOptions({ keepAlive: true }),

View File

@ -24,7 +24,7 @@ import { createRetryingTransport } from './retrying-transport';
import { OtlpNodeHttpConfiguration } from './configuration/otlp-node-http-configuration';
export function createOtlpHttpExportDelegate<Internal, Response>(
options: OtlpNodeHttpConfiguration,
options: Required<OtlpNodeHttpConfiguration>,
serializer: ISerializer<Internal, Response>
): IOtlpExportDelegate<Internal> {
return createOtlpExportDelegate(

View File

@ -18,7 +18,7 @@ import { mergeOtlpNodeHttpConfigurationWithDefaults } from '../../../src/configu
import { OtlpNodeHttpConfiguration } from '../../../src/configuration/otlp-node-http-configuration';
describe('mergeOtlpNodeHttpConfigurationWithDefaults', function () {
const testDefaults: OtlpNodeHttpConfiguration = {
const testDefaults: Required<OtlpNodeHttpConfiguration> = {
url: 'http://default.example.test',
timeoutMillis: 1,
compression: 'none',