@multiplayer-app/session-recorder-common
Version:
Multiplayer Fullstack Session Recorder - opentelemetry
40 lines • 1.62 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.SessionRecorderIdGenerator = void 0;
const type_1 = require("./type");
const constants_base_1 = require("./constants/constants.base");
const sdk_1 = require("./sdk");
class SessionRecorderIdGenerator {
constructor() {
this.generateLongId = (0, sdk_1.getIdGenerator)(16);
this.generateShortId = (0, sdk_1.getIdGenerator)(8);
this.sessionShortId = '';
this.sessionType = type_1.SessionType.PLAIN;
}
generateTraceId() {
const traceId = this.generateLongId();
if (this.sessionShortId) {
let sessionTypePrefix = '';
switch (this.sessionType) {
case type_1.SessionType.CONTINUOUS:
sessionTypePrefix = constants_base_1.MULTIPLAYER_TRACE_CONTINUOUS_DEBUG_PREFIX;
break;
default:
sessionTypePrefix = constants_base_1.MULTIPLAYER_TRACE_DEBUG_PREFIX;
}
const prefix = `${sessionTypePrefix}${this.sessionShortId}`;
const sessionTraceId = `${prefix}${traceId.substring(prefix.length, traceId.length)}`;
return sessionTraceId;
}
return traceId;
}
generateSpanId() {
return this.generateShortId();
}
setSessionId(sessionShortId, sessionType = type_1.SessionType.PLAIN) {
this.sessionShortId = sessionShortId;
this.sessionType = sessionType;
}
}
exports.SessionRecorderIdGenerator = SessionRecorderIdGenerator;
//# sourceMappingURL=SessionRecorderIdGenerator.js.map
;