@ttt-productions/monitoring-core 0.9.0 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sentry-node.d.ts","sourceRoot":"","sources":["../../src/adapters/sentry-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"sentry-node.d.ts","sourceRoot":"","sources":["../../src/adapters/sentry-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AA0BvD,eAAO,MAAM,iBAAiB,EAAE,iBA8H/B,CAAC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
let sentryNodePromise = null;
|
|
2
|
+
let sentryNodeInstance = null;
|
|
2
3
|
function getSentryNode() {
|
|
3
4
|
if (!sentryNodePromise) {
|
|
4
|
-
sentryNodePromise = import("@sentry/node").then((m) =>
|
|
5
|
+
sentryNodePromise = import("@sentry/node").then((m) => {
|
|
6
|
+
sentryNodeInstance = m;
|
|
7
|
+
return sentryNodeInstance;
|
|
8
|
+
});
|
|
5
9
|
}
|
|
6
10
|
return sentryNodePromise;
|
|
7
11
|
}
|
|
@@ -19,6 +23,20 @@ export const SentryNodeAdapter = {
|
|
|
19
23
|
});
|
|
20
24
|
},
|
|
21
25
|
captureException(error, context) {
|
|
26
|
+
if (sentryNodeInstance) {
|
|
27
|
+
if (context) {
|
|
28
|
+
sentryNodeInstance.withScope((scope) => {
|
|
29
|
+
for (const [k, v] of Object.entries(context)) {
|
|
30
|
+
if (typeof scope?.setExtra === "function")
|
|
31
|
+
scope.setExtra(k, v);
|
|
32
|
+
}
|
|
33
|
+
sentryNodeInstance.captureException(error);
|
|
34
|
+
});
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
sentryNodeInstance.captureException(error);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
22
40
|
void (async () => {
|
|
23
41
|
const S = await getSentryNode();
|
|
24
42
|
if (context) {
|
|
@@ -35,24 +53,51 @@ export const SentryNodeAdapter = {
|
|
|
35
53
|
})();
|
|
36
54
|
},
|
|
37
55
|
captureMessage(message, level) {
|
|
56
|
+
if (sentryNodeInstance) {
|
|
57
|
+
sentryNodeInstance.captureMessage(message, level);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
38
60
|
void (async () => {
|
|
39
61
|
const S = await getSentryNode();
|
|
40
62
|
S.captureMessage(message, level);
|
|
41
63
|
})();
|
|
42
64
|
},
|
|
43
65
|
setUser(user) {
|
|
66
|
+
if (sentryNodeInstance) {
|
|
67
|
+
sentryNodeInstance.setUser(user);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
44
70
|
void (async () => {
|
|
45
71
|
const S = await getSentryNode();
|
|
46
72
|
S.setUser(user);
|
|
47
73
|
})();
|
|
48
74
|
},
|
|
49
75
|
setTag(key, value) {
|
|
76
|
+
if (sentryNodeInstance) {
|
|
77
|
+
sentryNodeInstance.setTag(key, value);
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
50
80
|
void (async () => {
|
|
51
81
|
const S = await getSentryNode();
|
|
52
82
|
S.setTag(key, value);
|
|
53
83
|
})();
|
|
54
84
|
},
|
|
85
|
+
// NOTE: withScope calls `fn` exactly once. When Sentry is already loaded
|
|
86
|
+
// (the expected steady state — `init()` awaits the dynamic import, and
|
|
87
|
+
// callers must await `initMonitoring()` before serving traffic), it runs
|
|
88
|
+
// synchronously through the real Sentry scope. Only during the narrow
|
|
89
|
+
// pre-load race window (a call that races the very first `getSentryNode()`
|
|
90
|
+
// resolution) does it fall back to a synchronous no-op-scope call plus an
|
|
91
|
+
// async replay against the real scope — mirroring the browser adapter's
|
|
92
|
+
// same accepted tradeoff for that same race window.
|
|
55
93
|
withScope(fn) {
|
|
94
|
+
if (sentryNodeInstance) {
|
|
95
|
+
let result;
|
|
96
|
+
sentryNodeInstance.withScope((scope) => {
|
|
97
|
+
result = fn(scope);
|
|
98
|
+
});
|
|
99
|
+
return result;
|
|
100
|
+
}
|
|
56
101
|
const minimalScope = {
|
|
57
102
|
setTag: () => { },
|
|
58
103
|
setUser: () => { },
|
|
@@ -66,6 +111,10 @@ export const SentryNodeAdapter = {
|
|
|
66
111
|
return fn(minimalScope);
|
|
67
112
|
},
|
|
68
113
|
addBreadcrumb(breadcrumb) {
|
|
114
|
+
if (sentryNodeInstance) {
|
|
115
|
+
sentryNodeInstance.addBreadcrumb(breadcrumb);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
69
118
|
void (async () => {
|
|
70
119
|
const S = await getSentryNode();
|
|
71
120
|
S.addBreadcrumb(breadcrumb);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sentry-node.js","sourceRoot":"","sources":["../../src/adapters/sentry-node.ts"],"names":[],"mappings":"AAaA,IAAI,iBAAiB,GAAmC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"sentry-node.js","sourceRoot":"","sources":["../../src/adapters/sentry-node.ts"],"names":[],"mappings":"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"}
|