Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/tracing / dist / toTracing.js
Size: Mime:
"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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