UNPKG

@sentry/core

Version:
90 lines (71 loc) 2.17 kB
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); const worldwide = require('./worldwide.js'); let parsedStackResults; let lastKeysCount; let cachedFilenameDebugIds; /** * Returns a map of filenames to debug identifiers. */ function getFilenameToDebugIdMap(stackParser) { const debugIdMap = worldwide.GLOBAL_OBJ._sentryDebugIds; if (!debugIdMap) { return {}; } const debugIdKeys = Object.keys(debugIdMap); // If the count of registered globals hasn't changed since the last call, we // can just return the cached result. if (cachedFilenameDebugIds && debugIdKeys.length === lastKeysCount) { return cachedFilenameDebugIds; } lastKeysCount = debugIdKeys.length; // Build a map of filename -> debug_id. cachedFilenameDebugIds = debugIdKeys.reduce((acc, stackKey) => { if (!parsedStackResults) { parsedStackResults = {}; } const result = parsedStackResults[stackKey]; if (result) { acc[result[0]] = result[1]; } else { const parsedStack = stackParser(stackKey); for (let i = parsedStack.length - 1; i >= 0; i--) { const stackFrame = parsedStack[i]; const filename = stackFrame?.filename; const debugId = debugIdMap[stackKey]; if (filename && debugId) { acc[filename] = debugId; parsedStackResults[stackKey] = [filename, debugId]; break; } } } return acc; }, {}); return cachedFilenameDebugIds; } /** * Returns a list of debug images for the given resources. */ function getDebugImagesForResources( stackParser, resource_paths, ) { const filenameDebugIdMap = getFilenameToDebugIdMap(stackParser); if (!filenameDebugIdMap) { return []; } const images = []; for (const path of resource_paths) { if (path && filenameDebugIdMap[path]) { images.push({ type: 'sourcemap', code_file: path, debug_id: filenameDebugIdMap[path] , }); } } return images; } exports.getDebugImagesForResources = getDebugImagesForResources; exports.getFilenameToDebugIdMap = getFilenameToDebugIdMap; //# sourceMappingURL=debug-ids.js.map