forked from supabase-community/sentry-integration-js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.d.ts
86 lines (76 loc) · 2.28 KB
/
index.d.ts
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
import { SupabaseClient } from "@supabase/supabase-js";
import type { EventProcessor, Hub, Integration } from "@sentry/types";
type IntegrationOptions = {
tracing: boolean;
errors: boolean;
breadcrumbs: boolean;
operations: ["select" | "insert" | "upsert" | "update" | "delete"][];
shouldCreateSpan: (payload: Payload) => boolean;
shouldCreateBreadcrumb: (payload: Payload) => boolean;
sanitizeBody(table: string, key: string, value: unknown): any;
};
/**
@returns Sentry JavaScript SDK v8 Integration that can be used to instrument Supabase JavaScript SDK instrumentation.
https://docs.sentry.io/platforms/javascript/configuration/integrations/
@example
```
import * as Sentry from "@sentry/browser";
import { SupabaseClient } from "@supabase/supabase-js";
import { supabaseIntegration } from "@supabase/sentry-js-integration";
Sentry.init({
dsn: SENTRY_DSN,
integrations: [
new supabaseIntegration(SupabaseClient, Sentry, {
tracing: true,
breadcrumbs: true,
errors: true,
}),
],
});
```
*/
export function supabaseIntegration(
SupabaseClient: any,
SentryNamespace: {
startInactiveSpan: (...args: any[]) => any;
captureException: (...args: any[]) => any;
addBreadcrumb: (...args: any[]) => any;
},
options?: Partial<IntegrationOptions>
);
/**
@returns Sentry JavaScript SDK v7 Integration that can be used to instrument Supabase JavaScript SDK instrumentation.
https://docs.sentry.io/platforms/javascript/configuration/integrations/
@example
```
import * as Sentry from "@sentry/browser";
import { SupabaseClient } from "@supabase/supabase-js";
import { SupabaseIntegration } from "@supabase/sentry-js-integration";
Sentry.init({
dsn: SENTRY_DSN,
integrations: [
new SupabaseIntegration(SupabaseClient, {
tracing: true,
breadcrumbs: true,
errors: true,
}),
],
});
```
*/
export class SupabaseIntegration implements Integration {
name: string;
constructor(SupabaseClient: any, options?: Partial<IntegrationOptions>);
setupOnce(): void;
setupOnce(
addGlobalEventProcessor: (callback: EventProcessor) => void,
getCurrentHub: () => Hub
): void;
}
export type Payload = {
method: "GET" | "HEAD" | "POST" | "PATCH" | "DELETE";
url: URL;
headers: Record<string, string>;
schema?: string;
body?: unknown;
};