MCPcopy
hub / github.com/vercel/next.js / Span

Class Span

packages/next/src/client/tracing/tracer.ts:26–57  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

24}
25
26class Span implements ISpan {
27 name: string
28 startTime: number
29 onSpanEnd: (span: Span) => void
30 state: SpanState
31 attributes: Record<string, unknown>
32
33 constructor(
34 name: string,
35 options: SpanOptions,
36 onSpanEnd: (span: Span) => void
37 ) {
38 this.name = name
39 this.attributes = options.attributes ?? {}
40 this.startTime = options.startTime ?? Date.now()
41 this.onSpanEnd = onSpanEnd
42 this.state = { state: 'inprogress' }
43 }
44
45 end(endTime?: number) {
46 if (this.state.state === 'ended') {
47 throw new Error('Span has already ended')
48 }
49
50 this.state = {
51 state: 'ended',
52 endTime: endTime ?? Date.now(),
53 }
54
55 this.onSpanEnd(this)
56 }
57}
58
59class Tracer {
60 _emitter: MittEmitter<string> = mitt()

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…