UNPKG

dd-trace

Version:

Datadog APM tracing client for JavaScript

1 lines 2.24 kB
(()=>{var t={"./fast-fifo/fixed-size.js"(t){t.exports=class{constructor(t){if(!(t>0)||(t-1&t)!=0)throw Error("Max size for a FixedFIFO should be a power of two");this.buffer=Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}clear(){this.top=this.btm=0,this.next=null,this.buffer.fill(void 0)}push(t){return void 0===this.buffer[this.top]&&(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(void 0!==t)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}peek(){return this.buffer[this.btm]}isEmpty(){return void 0===this.buffer[this.btm]}}},"./fast-fifo/index.js"(t,i,e){let s=e("./fast-fifo/fixed-size.js");t.exports=class{constructor(t){this.hwm=t||16,this.head=new s(this.hwm),this.tail=this.head,this.length=0}clear(){this.head=this.tail,this.head.clear(),this.length=0}push(t){if(this.length++,!this.head.push(t)){let i=this.head;this.head=i.next=new s(2*this.head.buffer.length),this.head.push(t)}}shift(){0!==this.length&&this.length--;let t=this.tail.shift();if(void 0===t&&this.tail.next){let t=this.tail.next;return this.tail.next=null,this.tail=t,this.tail.shift()}return t}peek(){let t=this.tail.peek();return void 0===t&&this.tail.next?this.tail.next.peek():t}isEmpty(){return 0===this.length}}},"./ttl-set/index.js"(t,i,e){"use strict";let s=e("./fast-fifo/index.js");t.exports=class{constructor(t){this._ttl=t,this._list=new s,this._index=new Set,this._timer=null}add(t){this._index.add(t),this._list.push([Date.now(),t]),null===this._timer&&(this._timer=setTimeout(this._prune.bind(this),this._ttl).unref())}clear(){this._list.clear(),this._index.clear(),clearTimeout(this._timer),this._timer=null}has(t){return this._index.has(t)}get size(){return this._index.size}_prune(){for(;;){let t=this._list.peek();if(void 0===t){this._timer=null;return}if(t[0]>Date.now()-this._ttl)break;let i=this._list.shift();this._index.delete(i[1])}this._timer=setTimeout(this._prune.bind(this),Date.now()-this._list.peek()[0]).unref()}}}},i={};function __webpack_require__(e){var s=i[e];if(void 0!==s)return s.exports;var h=i[e]={exports:{}};return t[e](h,h.exports,__webpack_require__),h.exports}var e=__webpack_require__("./ttl-set/index.js");module.exports=e})();