Repository navigation
Expand file tree
/
Copy pathexceptionless-browser.js
More file actions
50 lines (40 loc) · 1.64 KB
/
Copy pathexceptionless-browser.js
File metadata and controls
50 lines (40 loc) · 1.64 KB
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
import { Exceptionless, KnownEventDataKeys } from "@exceptionless/browser";
export { Exceptionless };
const DEFAULT_API_KEY = "LhhP1C9gijpSKCslHHCvwdSIz298twx271nTest";
const DEFAULT_SERVER_URL = "https://ex.dev.localhost:7111";
let startupPromise;
export function startup() {
startupPromise ??= Exceptionless.startup((config) => {
config.apiKey = (process.env.NEXT_PUBLIC_EXCEPTIONLESS_API_KEY || DEFAULT_API_KEY).trim();
config.serverUrl = (process.env.NEXT_PUBLIC_EXCEPTIONLESS_SERVER_URL || DEFAULT_SERVER_URL).trim();
if (process.env.NODE_ENV !== "production") {
config.useDebugLogger();
}
config.addDataExclusions("authorization", "cookie", "password", "set-cookie", "token");
config.defaultTags.push("Example", "nextjs", "client");
config.addPlugin({
priority: 90,
name: "NextEnvironmentInfoPlugin",
run(context) {
const eventData = context.event.data ?? {};
context.event.data = eventData;
const environment =
typeof eventData[KnownEventDataKeys.EnvironmentInfo] === "object" && eventData[KnownEventDataKeys.EnvironmentInfo] !== null
? eventData[KnownEventDataKeys.EnvironmentInfo]
: {};
const environmentData = typeof environment.data === "object" && environment.data !== null ? environment.data : {};
eventData[KnownEventDataKeys.EnvironmentInfo] = {
...environment,
data: {
...environmentData,
framework: "Next.js",
router: "App Router",
runtime: "browser"
}
};
return Promise.resolve();
}
});
});
return startupPromise;
}