Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | 3x 3x 3x 3x 3x 20x 20x 20x 20x 2x 18x 2x 2x 2x 2x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | import { Inject, Injectable, Logger, Optional } from '@nestjs/common';
import { Options, Client } from '@sentry/types';
import * as Sentry from '@sentry/node';
import { SENTRY_MODULE_OPTIONS } from '../common/sentry.constants';
import { SentryModuleOptions } from '../interfaces/sentry-options.interface';
export abstract class SentryBaseService extends Logger {}
@Injectable()
export class SentryService extends Logger {
app: string = '@ntegral/nestjs-sentry: ';
constructor(
@Inject(SENTRY_MODULE_OPTIONS)
private readonly options?: SentryModuleOptions,
@Optional() prior?: SentryService
) {
super();
if (!(options && options.dsn)) {
// console.log('options not found. Did you use SentryModule.forRoot?');
return;
}
Sentry.init({
dsn: options.dsn,
debug: options.debug === true ? false : options.debug,
environment: options.environment,
release: options.release,
logLevel: options.logLevel,
integrations: [
new Sentry.Integrations.OnUncaughtException({
onFatalError: (async (err) => {
// console.error('uncaughtException, not cool!')
// console.error(err);
if (err.name === 'SentryError') { console.log(err); } else { (Sentry.getCurrentHub().getClient<Client<Options>>() as Client<Options>).captureException(err); process.exit(1); }
}),
}),
new Sentry.Integrations.OnUnhandledRejection({mode: 'warn'})
]
});
}
log(message: string, context?: string) {
message = `${this.app} ${message}`;
try {
Sentry.captureMessage(message, Sentry.Severity.Log);
super.log(message, context);
} catch (err) { }
}
error(message: string, trace?: string, context?: string) {
message = `${this.app} ${message}`;
try {
Sentry.captureMessage(message, Sentry.Severity.Error);
super.error(message, trace, context);
} catch (err) { }
}
warn(message: string, context?: string) {
message = `${this.app} ${message}`;
try {
Sentry.captureMessage(message, Sentry.Severity.Warning);
super.warn(message, context);
} catch (err) { }
}
debug(message: string, context?: string) {
message = `${this.app} ${message}`;
try {
Sentry.captureMessage(message, Sentry.Severity.Debug);
super.debug(message, context);
} catch (err) { }
}
verbose(message: string, context?: string) {
message = `${this.app} ${message}`;
try {
Sentry.captureMessage(message, Sentry.Severity.Info);
super.verbose(message, context);
} catch (err) { }
}
instance() {
return Sentry;
}
} |