Skip to content

Commit

Permalink
chore: function overloads
Browse files Browse the repository at this point in the history
Signed-off-by: naseemkullah <naseem@transit.app>

Co-authored-by: Daniel Dyla <dyladan@users.noreply.github.com>
  • Loading branch information
naseemkullah and dyladan committed May 21, 2021
1 parent 136a1c1 commit 869a3d2
Showing 1 changed file with 25 additions and 2 deletions.
27 changes: 25 additions & 2 deletions packages/opentelemetry-tracing/src/Tracer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -176,15 +176,38 @@ export class Tracer implements api.Tracer {
): ReturnType<F>;
startActiveSpan<F extends (span: api.Span) => ReturnType<F>>(
name: string,
options: api.SpanOptions,
options?: api.SpanOptions,
fn: F
): ReturnType<F>;
startActiveSpan<F extends (span: api.Span) => ReturnType<F>>(
name: string,
options: api.SpanOptions,
context: api.Context,
fn: F
): ReturnType<F> {
): ReturnType<F>;
startActiveSpan<F extends (span: api.Span) => ReturnType<F>>(
name: string,
arg2?: F | api.SpanOptions,
arg3?: F | api.Context,
arg4?: F
): ReturnType<F> | undefined {
let options: api.SpanOptions | undefined;
let context: api.Context | undefined;
let fn: F;

if (arguments.length < 2) {
return;
} else if (arguments.length === 2) {
fn = arg2 as F;
} else if (arguments.length === 3) {
options = arg2 as api.SpanOptions | undefined;
fn = arg3 as F;
} else {
options = arg2 as api.SpanOptions | undefined;
context = arg3 as api.Context | undefined;
fn = arg4 as F;
}

const parentContext = context ?? api.context.active();
const span = this.startSpan(name, options, parentContext);
const contextWithSpanSet = api.setSpan(parentContext, span);
Expand Down

0 comments on commit 869a3d2

Please sign in to comment.