anonymous-student
Version:
Anonymous student is used to retrieve and save information from our website users.
58 lines (48 loc) • 1.26 kB
text/typescript
import config from '../config/dev';
export function CatchReportAsyncException(
target: object,
propertyName: string,
propertyDescriptor: PropertyDescriptor,
): PropertyDescriptor {
const originalMethod = propertyDescriptor.value;
propertyDescriptor.value = async function(...args: any[]): Promise<any> {
try {
// @ts-ignore
return await originalMethod.apply(this, args);
} catch (error) {
if (rollbar) {
rollbar.error(error, args);
}
throw error;
}
};
return propertyDescriptor;
}
export function CatchReportException(
target: object,
propertyName: string,
propertyDescriptor: PropertyDescriptor,
): PropertyDescriptor {
const originalMethod = propertyDescriptor.value;
propertyDescriptor.value = function(...args: any[]): any {
try {
// @ts-ignore
return originalMethod.apply(this, args);
} catch (error) {
if (rollbar) {
rollbar.error(error, args);
}
throw error;
}
};
return propertyDescriptor;
}
const rollbarConfig = {
accessToken: '6c4041c05630454d89eef023ecc5e834',
captureUncaught: false,
captureUnhandledRejections: false,
payload: {
environment: config.environment
}
};
const rollbar: any = (global && global['rollbar']) ? new global['rollbar'](rollbarConfig) : null;