@kenniy/godeye-data-contracts
Version:
Enterprise-grade base repository architecture for GOD-EYE microservices with zero overhead and maximum code reuse
43 lines (42 loc) • 1.55 kB
JavaScript
;
/**
* Shared Response Building Utility (DRY)
* Eliminates duplication in ResponseFactory time/timestamp/trace generation
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateTraceId = generateTraceId;
exports.buildBaseResponseMetadata = buildBaseResponseMetadata;
/**
* BLAZING FAST: Generate unique trace ID with optimized algorithm
* Uses high-performance random generation for maximum speed
* @returns Unique trace identifier
*/
function generateTraceId() {
const timestamp = Date.now();
// OPTIMIZATION: Use crypto.getRandomValues for better performance if available
let random;
if (typeof crypto !== 'undefined' && crypto.getRandomValues) {
// Fast crypto-based random (Node.js/Browser)
const array = new Uint32Array(2);
crypto.getRandomValues(array);
random = array[0].toString(36) + array[1].toString(36);
}
else {
// Fallback: Optimized Math.random with better entropy
random = (Math.random() * 0x1000000000000).toString(36) + (Math.random() * 0x1000000000000).toString(36);
}
return `trace_${timestamp}_${random}`;
}
/**
* Build base response metadata (DRY utility)
* @param start_time - Optional start time for duration calculation
* @returns Base response metadata object
*/
function buildBaseResponseMetadata(start_time) {
const now = Date.now();
return {
time_ms: start_time ? now - start_time : 0,
timestamp: new Date().toISOString(),
trace_id: generateTraceId(),
};
}