UNPKG

tctx

Version:

W3C Trace Contexts made simple

1 lines 841 B
var t=class extends Map{set(t,e){if(!n(t)||!r(e))throw new TypeError("Invalid key or value");return t=t.trim(),this.has(t)?this.delete(t):this.size>=32&&this.delete([...this.keys()][0]),super.set(t,e)}toString(){let t="",e=0,i=[...this].reverse();for(;e<Math.min(32,i.length)&&(t+=`${i[e][0]}=${i[e++][1]},`););return t.slice(0,-1)}};function e(e){return new t(e)}function i(t){let i,s=0,l=[],a=t.split(",");for(;s<a.length;){i=a[s++];let t=i.indexOf("=");if(!~t)continue;let e=i.slice(0,t).toLowerCase().trim(),o=i.slice(t+1).trimRight();n(e)&&r(o)&&(l.unshift([e,o]))}return e(l)}function r(t){let e=String(t);return/^[ -~]{0,255}[!-~]$/.test(e)&&!(~e.indexOf(",")||~e.indexOf("="))}function n(t){return/^[a-z0-9][_0-9a-z-*/]{0,255}$/.test(t)||/^[a-z0-9][_0-9a-z-*/]{0,240}@[a-z][_0-9a-z-*/]{0,13}$/.test(t)}exports.make=e;exports.parse=i;