feat: sentry frontend

This commit is contained in:
Andras Bacsai
2022-11-29 13:59:03 +01:00
parent 58447c6456
commit 3d20433ad1
5 changed files with 62 additions and 80 deletions

View File

@@ -13,6 +13,7 @@ import {
prisma,
uniqueName,
version,
sentryDSN,
} from "../../../lib/common";
import { scheduler } from "../../../lib/scheduler";
import type { FastifyReply, FastifyRequest } from "fastify";
@@ -398,7 +399,8 @@ export async function getCurrentUser(
}
const pendingInvitations = await prisma.teamInvitation.findMany({ where: { uid: request.user.userId } })
return {
settings: await prisma.setting.findFirst(),
settings: await prisma.setting.findUnique({ where: { id: "0" } }),
sentryDSN,
pendingInvitations,
token,
...request.user,

View File

@@ -42,6 +42,8 @@
},
"type": "module",
"dependencies": {
"@sentry/svelte": "7.21.1",
"@sentry/tracing": "7.21.1",
"@sveltejs/adapter-static": "1.0.0-next.48",
"@tailwindcss/typography": "0.5.8",
"cuid": "2.1.8",

View File

@@ -1,4 +1,13 @@
import * as Sentry from '@sentry/svelte';
export async function handle({ event, resolve }) {
const response = await resolve(event, { ssr: false });
return response;
}
}
export const handleError = ({ error, event }) => {
Sentry.captureException(error, { event });
return {
message: 'Whoops!',
code: error?.code ?? 'UNKNOWN'
};
};

View File

@@ -64,6 +64,8 @@
</script>
<script lang="ts">
export let settings: any;
export let sentryDSN: any;
export let baseSettings: any;
export let pendingInvitations: any = 0;
@@ -96,12 +98,23 @@
import Tooltip from '$lib/components/Tooltip.svelte';
import { onMount } from 'svelte';
import LocalePicker from '$lib/components/LocalePicker.svelte';
import * as Sentry from '@sentry/svelte';
import { BrowserTracing } from '@sentry/tracing';
import { dev } from '$app/env';
if (userId) $appSession.userId = userId;
if (teamId) $appSession.teamId = teamId;
if (permission) $appSession.permission = permission;
if (isAdmin) $appSession.isAdmin = isAdmin;
if (settings.doNotTrack === false) {
Sentry.init({
dsn: sentryDSN,
environment: dev ? 'development' : 'production',
integrations: [new BrowserTracing()],
release: $appSession.version?.toString(),
tracesSampleRate: 0.2
});
}
async function logout() {
try {
Cookies.remove('token');
@@ -137,6 +150,7 @@
<PageLoader />
</div>
{/if}
<div class="drawer">
<input id="main-drawer" type="checkbox" class="drawer-toggle" />
<div class="drawer-content">