Skip to content

Commit d6afb19

Browse files
committed
Fixed type assertions
1 parent 561cb75 commit d6afb19

File tree

6 files changed

+26
-12
lines changed

6 files changed

+26
-12
lines changed

packages/browser/src/plugins/BrowserErrorPlugin.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,13 @@ export class BrowserErrorPlugin implements IEventPlugin {
3030
const result = await this.parse(exception);
3131
if (result) {
3232
const exclusions = context.client.config.dataExclusions.concat(IgnoredErrorProperties);
33-
const additionalData = JSON.parse(stringify(exception, exclusions)) as unknown;
33+
const additionalData = stringify(exception, exclusions);
3434
if (!isEmpty(additionalData)) {
3535
if (!result.data) {
3636
result.data = {};
3737
}
38-
result.data["@ext"] = additionalData;
38+
39+
result.data["@ext"] = JSON.parse(additionalData);
3940
}
4041

4142
context.event.data[KnownEventDataKeys.Error] = result;

packages/core/src/EventBuilder.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -184,9 +184,10 @@ export class EventBuilder {
184184
this.target.data = {};
185185
}
186186

187-
const result = JSON.parse(stringify(value, this.client.config.dataExclusions.concat(excludedPropertyNames || []), maxDepth)) as unknown;
188-
if (!isEmpty(result)) {
189-
this.target.data[name] = result;
187+
const exclusions = this.client.config.dataExclusions.concat(excludedPropertyNames || []);
188+
const json = stringify(value, exclusions, maxDepth);
189+
if (!isEmpty(json)) {
190+
this.target.data[name] = JSON.parse(json as string);
190191
}
191192

192193
return this;

packages/core/src/Utils.ts

+5-1
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ export function isMatch(
149149
});
150150
}
151151

152-
export function isEmpty(input: Record<string, unknown> | null | undefined | unknown): boolean {
152+
export function isEmpty(input: Record<string, unknown> | null | undefined | unknown): input is null | undefined | Record<string, never> {
153153
if (input === null || input === undefined) {
154154
return true;
155155
}
@@ -356,6 +356,10 @@ export function stringify(data: unknown, exclusions?: string[], maxDepth: number
356356
});
357357
}
358358

359+
if (data === undefined) {
360+
return data;
361+
}
362+
359363
const prunedData = prune(data, maxDepth);
360364
return stringifyImpl(prunedData, exclusions || []);
361365
}

packages/core/src/plugins/default/SimpleErrorPlugin.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@ export class SimpleErrorPlugin implements IEventPlugin {
4444
}
4545

4646
const exclusions = context.client.config.dataExclusions.concat(IgnoredErrorProperties);
47-
const additionalData = JSON.parse(stringify(exception, exclusions)) as unknown;
47+
const additionalData = stringify(exception, exclusions);
4848
if (!isEmpty(additionalData)) {
49-
(error.data as Record<string, unknown>)["@ext"] = additionalData;
49+
(error.data as Record<string, unknown>)["@ext"] = JSON.parse(additionalData);
5050
}
5151

5252
context.event.data[KnownEventDataKeys.SimpleError] = error;

packages/node/src/plugins/NodeErrorPlugin.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,13 @@ export class NodeErrorPlugin implements IEventPlugin {
2626
const result = await this.parse(exception);
2727
if (result) {
2828
const exclusions = context.client.config.dataExclusions.concat(IgnoredErrorProperties);
29-
const additionalData = JSON.parse(stringify(exception, exclusions)) as unknown;
29+
const additionalData = stringify(exception, exclusions);
3030
if (!isEmpty(additionalData)) {
3131
if (!result.data) {
3232
result.data = {};
3333
}
34-
result.data["@ext"] = additionalData;
34+
35+
result.data["@ext"] = JSON.parse(additionalData);
3536
}
3637

3738
context.event.data[KnownEventDataKeys.Error] = result;

packages/node/src/plugins/NodeRequestInfoPlugin.ts

+9-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import {
22
EventPluginContext,
33
getCookies,
44
IEventPlugin,
5+
isEmpty,
56
isMatch,
67
KnownEventDataKeys,
78
RequestInfo,
@@ -74,11 +75,17 @@ export class NodeRequestInfoPlugin implements IEventPlugin {
7475
}
7576

7677
if (config.includeQueryString) {
77-
requestInfo.query_string = JSON.parse(stringify(request.params || {}, exclusions)) as Record<string, string>;
78+
const json = stringify(request.params, exclusions);
79+
if (!isEmpty(json)) {
80+
requestInfo.query_string = JSON.parse(json) as Record<string, string>;
81+
}
7882
}
7983

8084
if (config.includePostData) {
81-
requestInfo.post_data = JSON.parse(stringify(request.body || {}, exclusions)) as Record<string, unknown>;
85+
const json = stringify(request.body, exclusions);
86+
if (!isEmpty(json)) {
87+
requestInfo.post_data = JSON.parse(json) as Record<string, unknown>;
88+
}
8289
}
8390

8491
return requestInfo;

0 commit comments

Comments
 (0)