Skip to content
This repository was archived by the owner on Nov 10, 2022. It is now read-only.

Commit 41109c8

Browse files
dyladanvmarchaud
andauthored
feat!: return boolean success value from setGlobalXXX methods (#32)
Co-authored-by: Valentin Marchaud <[email protected]>
1 parent 9df5ef8 commit 41109c8

File tree

5 files changed

+27
-21
lines changed

5 files changed

+27
-21
lines changed

src/api/context.ts

+5-6
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,12 @@ export class ContextAPI {
4444
}
4545

4646
/**
47-
* Set the current context manager. Returns the initialized context manager
47+
* Set the current context manager.
48+
*
49+
* @returns true if the context manager was successfully registered, else false
4850
*/
49-
public setGlobalContextManager(
50-
contextManager: ContextManager
51-
): ContextManager {
52-
registerGlobal(API_NAME, contextManager);
53-
return contextManager;
51+
public setGlobalContextManager(contextManager: ContextManager): boolean {
52+
return registerGlobal(API_NAME, contextManager);
5453
}
5554

5655
/**

src/api/diag.ts

+8-4
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,14 @@ export class DiagAPI implements DiagLogger {
7676
'Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation'
7777
);
7878
self.error(err.stack ?? err.message);
79-
return;
79+
return false;
8080
}
8181

82-
registerGlobal('diag', createLogLevelDiagLogger(logLevel, logger), true);
82+
return registerGlobal(
83+
'diag',
84+
createLogLevelDiagLogger(logLevel, logger),
85+
true
86+
);
8387
};
8488

8589
self.disable = () => {
@@ -99,9 +103,9 @@ export class DiagAPI implements DiagLogger {
99103
*
100104
* @param logger - [Optional] The DiagLogger instance to set as the default logger.
101105
* @param logLevel - [Optional] The DiagLogLevel used to filter logs sent to the logger. If not provided it will default to INFO.
102-
* @returns The previously registered DiagLogger
106+
* @returns true if the logger was successfully registered, else false
103107
*/
104-
public setLogger!: (logger: DiagLogger, logLevel?: DiagLogLevel) => void;
108+
public setLogger!: (logger: DiagLogger, logLevel?: DiagLogLevel) => boolean;
105109

106110
// DiagLogger implementation
107111
public verbose!: DiagLogFunction;

src/api/propagation.ts

+5-4
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,12 @@ export class PropagationAPI {
5050
}
5151

5252
/**
53-
* Set the current propagator. Returns the initialized propagator
53+
* Set the current propagator.
54+
*
55+
* @returns true if the propagator was successfully registered, else false
5456
*/
55-
public setGlobalPropagator(propagator: TextMapPropagator): TextMapPropagator {
56-
registerGlobal(API_NAME, propagator);
57-
return propagator;
57+
public setGlobalPropagator(propagator: TextMapPropagator): boolean {
58+
return registerGlobal(API_NAME, propagator);
5859
}
5960

6061
/**

src/api/trace.ts

+5-4
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,13 @@ export class TraceAPI {
4747
}
4848

4949
/**
50-
* Set the current global tracer. Returns the initialized global tracer provider
50+
* Set the current global tracer.
51+
*
52+
* @returns true if the tracer provider was successfully registered, else false
5153
*/
52-
public setGlobalTracerProvider(provider: TracerProvider): TracerProvider {
54+
public setGlobalTracerProvider(provider: TracerProvider): boolean {
5355
this._proxyTracerProvider.setDelegate(provider);
54-
registerGlobal(API_NAME, this._proxyTracerProvider);
55-
return this._proxyTracerProvider;
56+
return registerGlobal(API_NAME, this._proxyTracerProvider);
5657
}
5758

5859
/**

src/internal/global-utils.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export function registerGlobal<Type extends keyof OTelGlobalAPI>(
3434
type: Type,
3535
instance: OTelGlobalAPI[Type],
3636
allowOverride = false
37-
): void {
37+
): boolean {
3838
_global[GLOBAL_OPENTELEMETRY_API_KEY] = _global[
3939
GLOBAL_OPENTELEMETRY_API_KEY
4040
] ?? {
@@ -48,7 +48,7 @@ export function registerGlobal<Type extends keyof OTelGlobalAPI>(
4848
`@opentelemetry/api: Attempted duplicate registration of API: ${type}`
4949
);
5050
diag.error(err.stack || err.message);
51-
return;
51+
return false;
5252
}
5353

5454
if (api.version !== VERSION) {
@@ -57,10 +57,11 @@ export function registerGlobal<Type extends keyof OTelGlobalAPI>(
5757
'@opentelemetry/api: All API registration versions must match'
5858
);
5959
diag.error(err.stack || err.message);
60-
return;
60+
return false;
6161
}
6262

6363
api[type] = instance;
64+
return true;
6465
}
6566

6667
export function getGlobal<Type extends keyof OTelGlobalAPI>(

0 commit comments

Comments
 (0)