UNPKG

4.26 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../../telemetry/trace/autoparent.ts"],"names":["stacks","WeakMap","stoppedSpansSets","stackPush","keyObj","spanName","attrs","stack","get","span","set","undefined","parent","length","id","push","stackPop","stoppedSpans","Set","has","name","poppedSpan","pop","add","stop","indexOf"],"mappings":"2FAAA,8BACA,gCAEA,KAAMA,CAAAA,MAAM,CAAG,GAAIC,CAAAA,OAAJ,EAAf,CACA,KAAMC,CAAAA,gBAAgB,CAAG,GAAID,CAAAA,OAAJ,EAAzB,CAEO,QAASE,CAAAA,SAAT,CAAmBC,MAAnB,CAAgCC,QAAhC,CAAkDC,KAAlD,CAAqE,CAC1E,GAAIC,CAAAA,KAAK,CAAGP,MAAM,CAACQ,GAAP,CAAWJ,MAAX,CAAZ,CACA,GAAIK,CAAAA,IAAJ,CAEA,GAAI,CAACF,KAAL,CAAY,CACVA,KAAK,CAAG,EAAR,CACAP,MAAM,CAACU,GAAP,CAAWN,MAAX,CAAmBG,KAAnB,EACAE,IAAI,CAAG,iBAAMJ,QAAN,CAAgBM,SAAhB,CAA2BL,KAAK,CAAGA,KAAK,EAAR,CAAaK,SAA7C,CAAP,CACD,CAJD,IAIO,CACL,KAAMC,CAAAA,MAAM,CAAGL,KAAK,CAACA,KAAK,CAACM,MAAN,CAAe,CAAhB,CAApB,CACA,GAAID,MAAJ,CAAY,CACVH,IAAI,CAAG,iBAAMJ,QAAN,CAAgBO,MAAM,CAACE,EAAvB,CAA2BR,KAAK,CAAGA,KAAK,EAAR,CAAaK,SAA7C,CAAP,CACD,CAFD,IAEO,CACLF,IAAI,CAAG,iBAAMJ,QAAN,CAAgBM,SAAhB,CAA2BL,KAAK,CAAGA,KAAK,EAAR,CAAaK,SAA7C,CAAP,CACD,CACF,CAEDJ,KAAK,CAACQ,IAAN,CAAWN,IAAX,EACA,MAAOA,CAAAA,IAAP,CACD,CAEM,QAASO,CAAAA,QAAT,CAAkBZ,MAAlB,CAA+BK,IAA/B,CAAgD,CACrD,GAAIF,CAAAA,KAAK,CAAGP,MAAM,CAACQ,GAAP,CAAWJ,MAAX,CAAZ,CACA,GAAI,CAACG,KAAL,CAAY,CACV,qBACE,sEADF,EAGA,OACD,CAED,GAAIU,CAAAA,YAAY,CAAGf,gBAAgB,CAACM,GAAjB,CAAqBJ,MAArB,CAAnB,CACA,GAAI,CAACa,YAAL,CAAmB,CACjBA,YAAY,CAAG,GAAIC,CAAAA,GAAJ,EAAf,CACAhB,gBAAgB,CAACQ,GAAjB,CAAqBN,MAArB,CAA6Ba,YAA7B,EACD,CACD,GAAIA,YAAY,CAACE,GAAb,CAAiBV,IAAjB,CAAJ,CAA4B,CAC1B,qBACG,oEAAmEA,IAAI,CAACW,IAAK,EADhF,EAGA,OACD,CAED,MAAO,IAAP,CAAa,CACX,GAAIC,CAAAA,UAAU,CAAGd,KAAK,CAACe,GAAN,EAAjB,CAEA,GAAID,UAAU,EAAIA,UAAU,GAAKZ,IAAjC,CAAuC,CACrCQ,YAAY,CAACM,GAAb,CAAiBF,UAAjB,EACAZ,IAAI,CAACe,IAAL,GACAP,YAAY,CAACM,GAAb,CAAiBd,IAAjB,EACA,MACD,CALD,IAKO,IAAIY,UAAU,GAAKV,SAAf,EAA4BJ,KAAK,CAACkB,OAAN,CAAchB,IAAd,IAAwB,CAAC,CAAzD,CAA4D,CACjE;AACA;AACA,qBAAU,4CAA2CA,IAAI,CAACW,IAAK,EAA/D,EACAH,YAAY,CAACM,GAAb,CAAiBd,IAAjB,EACAA,IAAI,CAACe,IAAL,GACA,MACD,CAPM,IAOA,IAAIjB,KAAK,CAACkB,OAAN,CAAchB,IAAd,IAAwB,CAAC,CAA7B,CAAgC,CACrC,qBACG,2DAA0DA,IAAI,CAACW,IAAK,EADvE,EAGAH,YAAY,CAACM,GAAb,CAAiBF,UAAjB,EACAA,UAAU,CAACG,IAAX,GACD,CACF,CACF","sourcesContent":["import { trace, Span } from './trace'\nimport { debugLog } from './shared'\n\nconst stacks = new WeakMap<any, Array<Span>>()\nconst stoppedSpansSets = new WeakMap<any, Set<Span>>()\n\nexport function stackPush(keyObj: any, spanName: string, attrs?: any): Span {\n let stack = stacks.get(keyObj)\n let span\n\n if (!stack) {\n stack = []\n stacks.set(keyObj, stack)\n span = trace(spanName, undefined, attrs ? attrs() : undefined)\n } else {\n const parent = stack[stack.length - 1]\n if (parent) {\n span = trace(spanName, parent.id, attrs ? attrs() : undefined)\n } else {\n span = trace(spanName, undefined, attrs ? attrs() : undefined)\n }\n }\n\n stack.push(span)\n return span\n}\n\nexport function stackPop(keyObj: any, span: any): void {\n let stack = stacks.get(keyObj)\n if (!stack) {\n debugLog(\n 'Attempted to pop from non-existent stack. Key reference must be bad.'\n )\n return\n }\n\n let stoppedSpans = stoppedSpansSets.get(keyObj)\n if (!stoppedSpans) {\n stoppedSpans = new Set()\n stoppedSpansSets.set(keyObj, stoppedSpans)\n }\n if (stoppedSpans.has(span)) {\n debugLog(\n `Attempted to terminate tracing span that was already stopped for ${span.name}`\n )\n return\n }\n\n while (true) {\n let poppedSpan = stack.pop()\n\n if (poppedSpan && poppedSpan === span) {\n stoppedSpans.add(poppedSpan)\n span.stop()\n stoppedSpans.add(span)\n break\n } else if (poppedSpan === undefined || stack.indexOf(span) === -1) {\n // We've either reached the top of the stack or the stack doesn't contain\n // the span for another reason.\n debugLog(`Tracing span was not found in stack for: ${span.name}`)\n stoppedSpans.add(span)\n span.stop()\n break\n } else if (stack.indexOf(span) !== -1) {\n debugLog(\n `Attempted to pop span that was not at top of stack for: ${span.name}`\n )\n stoppedSpans.add(poppedSpan)\n poppedSpan.stop()\n }\n }\n}\n"]}
\No newline at end of file