1export function formatProjectFilePath(projectRoot, file) { 2 if (file == null) { 3 return '<unknown>'; 4 } 5 return pathRelativeToPath(file.replace(/\\/g, '/'), projectRoot.replace(/\\/g, '/')).replace(/\?.*$/, ''); 6} 7function pathRelativeToPath(path, relativeTo, sep = '/') { 8 const relativeToParts = relativeTo.split(sep); 9 const pathParts = path.split(sep); 10 let i = 0; 11 while (i < relativeToParts.length && i < pathParts.length) { 12 if (relativeToParts[i] !== pathParts[i]) { 13 break; 14 } 15 i++; 16 } 17 return pathParts.slice(i).join(sep); 18} 19export function getStackFormattedLocation(projectRoot, frame) { 20 const column = frame.column != null && parseInt(String(frame.column), 10); 21 const location = formatProjectFilePath(projectRoot, frame.file) + 22 (frame.lineNumber != null 23 ? ':' + frame.lineNumber + (column && !isNaN(column) ? ':' + (column + 1) : '') 24 : ''); 25 return location; 26} 27//# sourceMappingURL=formatProjectFilePath.js.map