UNPKG

@logtail/edge

Version:

Better Stack Edge runtime logger (formerly Logtail)

40 lines 1.39 kB
import stackTrace from "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 */ export 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 = stackTrace.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