Micro-sentry module
npm install @tramvai/module-micro-sentryIntegration with micro-sentry.
You need to install @tramvai/module-micro-sentry:
``bash`
yarn add @tramvai/module-micro-sentry
And connect to the project: TramvaiMicroSentryModule:
`tsx
import { TramvaiMicroSentryModule } from '@tramvai/module-micro-sentry';
createApp({
modules: [TramvaiMicroSentryModule],
});
`
And make sure to add SENTRY_DSN environment on deployed stands. Otherwise module will not work.
Micro-sentry itself does not have the proper logic to intercept global unhandlerejection and error events. In this case, @tramvai/module-micro-sentry adds an inline script with custom logic for the unhandledrejection and error events. Before the micro-sentry package is initialized, all errors are added to an errorQueue, and when micro-sentry is initialized, this queue is cleared, and all caught errors are sent to the SENTRY_DSN URL. To create your custom global error handler, you can use the MICRO_SENTRY_INLINE_ERROR_INTERCEPTOR_TOKEN. For example:
`ts
// createErrorInterceptor.inline.ts
export function createErrorInterceptor() {
window.onerror = function () {
// your custom logic
};
window.onunhandledrejection = function () {
// your custom logic
};
}
`
`ts
import { createApp } from '@tramvai/core';
import { TramvaiMicroSentryModule } from '@tramvai/module-micro-sentry';
import { createErrorInterceptor } from './createErrorInterceptor.inline';
createApp({
name: 'sample-application',
modules: [
TramvaiMicroSentryModule,
provide({
provide: MICRO_SENTRY_INLINE_ERROR_INTERCEPTOR_TOKEN,
useFactory: ({ microSentryInlineErrorInterceptorKey }) => {
return (${createErrorInterceptor})();`
},
}),
],
});
Required:
- SENTRY_DSN - DSN of the app
`tsx
import { declareAction } from '@tramvai/core';
import { SENTRY_TOKEN } from '@tramvai/module-micro-sentry';
import { loadUsers } from './users';
export default declareAction({
name: 'loadUsers',
async fn() {
try {
await loadUsers();
} catch (e) {
microSentryClient.report(e);
throw e;
}
},
deps: {
microSentryClient: MICRO_SENTRY_INSTANCE_TOKEN,
},
});
`
- SENTRY_RELEASE - application release version. The value is inserted into the release field for all errorsSENTRY_ENVIRONMENT
- - the application environment where the error occurred. If the variable is not specified, then process.env.NODE_ENV is used
#### MICRO_SENTRY_INSTANCE_TOKEN`
Ready to use instance of micro-sentry
Configuration options for micro-sentry
Key value for ErrorInterceptor script. This key will be used to save custom logiс to window object.
Script for inline error interceptor