mirror of
https://github.com/grafana/grafana.git
synced 2025-02-13 00:55:47 -06:00
* Performance: Standardize lodash imports to use destructured members Changes lodash imports of the form `import x from 'lodash/x'` to `import { x } from 'lodash'` to reduce bundle size. * Remove unnecessary _ import from Graph component * Enforce lodash import style * Fix remaining lodash imports
22 lines
845 B
TypeScript
22 lines
845 B
TypeScript
import { last } from 'lodash';
|
|
|
|
/**
|
|
* Graphite-web before v1.6 returns HTTP 500 with full stack traces in an HTML page
|
|
* when a query fails. It results in massive error alerts with HTML tags in the UI.
|
|
* This function removes all HTML tags and keeps only the last line from the stack
|
|
* trace which should be the most meaningful.
|
|
*/
|
|
export function reduceError(error: any): any {
|
|
if (error && error.status === 500 && error.data?.message?.startsWith('<body')) {
|
|
// Remove all HTML tags and take the last line from the stack trace
|
|
const newMessage = last<string>(
|
|
error.data.message
|
|
.replace(/(<([^>]+)>)/gi, '')
|
|
.trim()
|
|
.split(/\n/)
|
|
)!.replace(/u?&#[^;]+;/g, '');
|
|
error.data.message = `Graphite encountered an unexpected error while handling your request. ${newMessage}`;
|
|
}
|
|
return error;
|
|
}
|