http-tracer-component
Version:
Add tracing spans to each request handler.
42 lines • 1.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseTraceParentHeader = exports.parseTraceState = void 0;
function parseTraceState(traceState) {
const convertedTraceState = traceState.split(',').reduce((acc, curr) => {
const [key, value] = curr.split('=');
if (!key || !value) {
return acc;
}
acc[key.trim()] = value.trim();
return acc;
}, {});
return Object.keys(convertedTraceState).length > 0 ? convertedTraceState : null;
}
exports.parseTraceState = parseTraceState;
function parseTraceParentHeader(traceParent) {
const traceParentProperties = traceParent.split('-');
if (!traceParentProperties[0] || !traceParentProperties[1] || !traceParentProperties[2] || !traceParentProperties[3]) {
return null;
}
const versionHasTheWrongSize = traceParentProperties[0].length !== 2;
const traceIdHasTheWrongSize = traceParentProperties[1].length !== 32;
const parentIdHasTheWrongSize = traceParentProperties[2].length !== 16;
const traceFlagsHaveTheWrongSize = traceParentProperties[3].length !== 2;
const traceIdIsInvalid = traceParentProperties[1] === '00000000000000000000000000000000';
const parentIdIsInvalid = traceParentProperties[2] === '0000000000000000';
return versionHasTheWrongSize ||
traceIdHasTheWrongSize ||
parentIdHasTheWrongSize ||
traceFlagsHaveTheWrongSize ||
traceIdIsInvalid ||
parentIdIsInvalid
? null
: {
version: traceParentProperties[0],
traceId: traceParentProperties[1],
parentId: traceParentProperties[2],
traceFlags: traceParentProperties[3]
};
}
exports.parseTraceParentHeader = parseTraceParentHeader;
//# sourceMappingURL=logic.js.map