Repository URL to install this package:
|
Version:
0.0.7 ▾
|
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const uuid_1 = __importDefault(require("uuid"));
/**
* Trace id to pass SFO has to be in 16 digits with alpha numeric under the name
* 'x-b3-traceid' along with 'x-b3-spanid' and this 'x-b3-traceid' will pass to
* all the micro services and return back in response header as 'x-b3-traceid' and 'x-traceid'
*/
const fromUniqueIdentifierToTraceId = (uniqueId = uuid_1.default()) => uniqueId.replace(/-/g, '').substr(0, 16);
exports.TRACING_HEADERS = Object.freeze({
openTraceId: 'x-b3-traceid',
openTraceSpanId: 'x-b3-spanid',
requestId: 'x-request-id',
sessionId: 'x-sk-session-id',
});
const exotic_1 = require("exotic");
exports.fromReqToTraceIdOnly = (req) => exotic_1.isObj(req) === true
? req.get(exports.TRACING_HEADERS.openTraceId) || req.get(exports.TRACING_HEADERS.requestId) || req.get('openTraceId') || req.headers[exports.TRACING_HEADERS.requestId]
: undefined;
exports.toTraceId = (req) => {
if (exotic_1.isObj(req) === true && exotic_1.isObj(req.meta) === true) {
return req.meta.tracing[exports.TRACING_HEADERS.openTraceId];
}
const openTraceIdHeader = exports.fromReqToTraceIdOnly(req);
// @note - falsy
if (openTraceIdHeader) {
return openTraceIdHeader;
}
else {
return fromUniqueIdentifierToTraceId();
}
};
exports.toSpanId = (req) => {
const isValidReq = exotic_1.isObj(req) === true;
if (isValidReq && exotic_1.isObj(req.meta) === true) {
return req.meta.tracing[exports.TRACING_HEADERS.openTraceSpanId];
}
const spanIHeader = isValidReq && (req.get(exports.TRACING_HEADERS.openTraceSpanId) || req.headers[exports.TRACING_HEADERS.openTraceSpanId]);
const traceIdHeader = exports.fromReqToTraceIdOnly(req);
// exists, came from browser or ssr
if (spanIHeader) {
// console.info('[tracing] span id + 1')
return +(spanIHeader || 0) + 1;
}
else if (traceIdHeader) {
// console.info('[tracing] span id + 2')
// trace id, but no span id, then nginx created it and span is 2
return 2;
}
else {
// console.info('[tracing] span id = 1')
// otherwise, it's 1, which means like, browser, or graphql playground
return 1;
}
};
exports.fromReqToCookie = (request) => {
if (exotic_1.isObj(request) === false) {
return undefined;
}
else if (exotic_1.isObj(request.headers) === true && exotic_1.isFunction(request.headers.get) === true) {
return request.headers.get('Cookie');
}
else if (exotic_1.isFunction(request.get) === true) {
return request.get('Cookie');
}
else if (exotic_1.isObj(request.headers) === true && request.headers.Cookie !== undefined) {
return request.headers.Cookie;
}
else {
return undefined;
}
};
exports.fromReqToSessionId = (req) => {
const cookie = exports.fromReqToCookie(req);
const sessionIdHeader = exotic_1.isObj(req) && req.get(exports.TRACING_HEADERS.sessionId);
if (sessionIdHeader) {
return sessionIdHeader;
}
else {
return cookie;
}
};
/**
* @todo check for `req.meta` 1st...
*/
exports.toTracing = (req) => {
const openTraceIdHeader = exports.toTraceId(req);
const spanIdHeader = exports.toSpanId(req);
const sessionIdHeader = exports.fromReqToSessionId(req);
return {
// not enumerable
get openTraceSpanId() {
return spanIdHeader;
},
get openTraceId() {
return openTraceIdHeader;
},
get sessionId() {
return sessionIdHeader;
},
// same
[exports.TRACING_HEADERS.requestId]: openTraceIdHeader,
[exports.TRACING_HEADERS.openTraceId]: openTraceIdHeader,
[exports.TRACING_HEADERS.openTraceSpanId]: spanIdHeader,
[exports.TRACING_HEADERS.sessionId]: sessionIdHeader,
};
};
// export const decorateRequestWithTracing = (req?: ExpressRequest) => {}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9UcmFjaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3RvVHJhY2luZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdEQUF1QjtBQUV2Qjs7OztHQUlHO0FBQ0gsTUFBTSw2QkFBNkIsR0FBRyxDQUFDLFFBQVEsR0FBRyxjQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtBQVF4RixRQUFBLGVBQWUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQzNDLFdBQVcsRUFBRSxjQUFjO0lBQzNCLGVBQWUsRUFBRSxhQUFhO0lBQzlCLFNBQVMsRUFBRSxjQUFjO0lBQ3pCLFNBQVMsRUFBRSxpQkFBaUI7Q0FDN0IsQ0FBQyxDQUFBO0FBR0YsbUNBQTBDO0FBRTdCLFFBQUEsb0JBQW9CLEdBQUcsQ0FBQyxHQUFvQixFQUFFLEVBQUUsQ0FBQyxjQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSTtJQUMvRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyx1QkFBZSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsdUJBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsdUJBQWUsQ0FBQyxTQUFTLENBQUM7SUFDaEosQ0FBQyxDQUFDLFNBQVMsQ0FBQTtBQUVBLFFBQUEsU0FBUyxHQUFHLENBQUMsR0FBb0IsRUFBVSxFQUFFO0lBQ3hELElBQUksY0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksSUFBSSxjQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNuRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHVC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