UNPKG

@logtail/edge

Version:

Better Stack Edge runtime logger (formerly Logtail)

46 lines 1.68 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getStackContext = getStackContext; const stack_trace_1 = __importDefault(require("stack-trace")); /** * Determines the file name and the line number from which the log * was initiated (if we're able to tell). * * @returns Context The caller's filename and the line number */ function getStackContext(logtail) { const stackFrame = getCallingFrame(logtail); if (stackFrame === null) return {}; return { context: { runtime: { file: stackFrame.getFileName(), type: stackFrame.getTypeName(), method: stackFrame.getMethodName(), function: stackFrame.getFunctionName(), line: stackFrame.getLineNumber(), column: stackFrame.getColumnNumber(), }, }, }; } function getCallingFrame(logtail) { for (let fn of [logtail.warn, logtail.error, logtail.info, logtail.debug, logtail.log]) { const stack = stack_trace_1.default.get(fn); if ((stack === null || stack === void 0 ? void 0 : stack.length) > 0) return getRelevantStackFrame(stack); } return null; } function getRelevantStackFrame(frames) { let reversedFrames = frames.reverse(); let index = reversedFrames.findIndex((frame) => frame.getTypeName() === "EdgeWithExecutionContext"); if (index > 0) return reversedFrames[index - 1]; return frames[0]; } //# sourceMappingURL=context.js.map