@rockpack/logger
Version:
This module can help you build error tracking & crash reporting system for your React application.
39 lines (29 loc) • 1.06 kB
text/typescript
import { LoggerTypes, CriticalError } from './types';
export const mixUrl = (props: CriticalError): CriticalError => {
const href = globalThis && globalThis.location && globalThis.location.href ? globalThis.location.href : '';
return Object.assign({}, href !== '' ? { url: href } : {}, props);
};
export const serializeError = (stack: Error, lineNumber: number): CriticalError => {
const alt = {
stack: [],
message: '',
line: lineNumber
};
Object.getOwnPropertyNames(stack).forEach(key => {
if (key === 'stack') {
alt[key] = stack[key].split('\n');
} else {
alt[key] = stack[key];
}
}, stack);
return alt;
};
const CRITICAL = 'critical';
export const isCritical = (type: string): boolean => CRITICAL === type;
export const getCritical = (): string => CRITICAL;
export const createCritical = (trace: Error, lineNumber: number): { [LoggerTypes.critical]: CriticalError } => {
const criticalError: CriticalError = serializeError(trace, lineNumber);
return {
[CRITICAL]: mixUrl(criticalError)
};
};