UNPKG

@sentry/core

Version:
87 lines (69 loc) 2.03 kB
import { GLOBAL_OBJ } from './worldwide.js'; let parsedStackResults; let lastKeysCount; let cachedFilenameDebugIds; /** * Returns a map of filenames to debug identifiers. */ function getFilenameToDebugIdMap(stackParser) { const debugIdMap = 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; } export { getDebugImagesForResources, getFilenameToDebugIdMap }; //# sourceMappingURL=debug-ids.js.map