feat(tracker): remove tags key

This commit is contained in:
sylenien 2022-09-07 14:32:49 +02:00 committed by Delirium
parent 7f0fe77f16
commit c7fa1e7fa5
11 changed files with 13 additions and 45 deletions

View file

@ -3011,18 +3011,16 @@ type ExceptionWithMeta struct {
Name string
Message string
Payload string
Tags string
Metadata string
}
func (msg *ExceptionWithMeta) Encode() []byte {
buf := make([]byte, 51+len(msg.Name)+len(msg.Message)+len(msg.Payload)+len(msg.Tags)+len(msg.Metadata))
buf := make([]byte, 41+len(msg.Name)+len(msg.Message)+len(msg.Payload)+len(msg.Metadata))
buf[0] = 78
p := 1
p = WriteString(msg.Name, buf, p)
p = WriteString(msg.Message, buf, p)
p = WriteString(msg.Payload, buf, p)
p = WriteString(msg.Tags, buf, p)
p = WriteString(msg.Metadata, buf, p)
return buf[:p]
}

View file

@ -1303,9 +1303,6 @@ func DecodeExceptionWithMeta(reader io.Reader) (Message, error) {
if msg.Payload, err = ReadString(reader); err != nil {
return nil, err
}
if msg.Tags, err = ReadString(reader); err != nil {
return nil, err
}
if msg.Metadata, err = ReadString(reader); err != nil {
return nil, err
}

View file

@ -738,11 +738,10 @@ class AdoptedSSRemoveOwner(Message):
class ExceptionWithMeta(Message):
__id__ = 78
def __init__(self, name, message, payload, tags, metadata):
def __init__(self, name, message, payload, metadata):
self.name = name
self.message = message
self.payload = payload
self.tags = tags
self.metadata = metadata

View file

@ -660,7 +660,6 @@ class MessageCodec(Codec):
name=self.read_string(reader),
message=self.read_string(reader),
payload=self.read_string(reader),
tags=self.read_string(reader),
metadata=self.read_string(reader)
)

View file

@ -388,7 +388,6 @@ type TrExceptionWithMeta = [
name: string,
message: string,
payload: string,
tags: string,
metadata: string,
]

View file

@ -476,7 +476,6 @@ message 78, 'ExceptionWithMeta', :replayer => false do
string 'Name'
string 'Message'
string 'Payload'
string 'Tags'
string 'Metadata'
end

View file

@ -446,7 +446,6 @@ export type ExceptionWithMeta = [
/*name:*/ string,
/*message:*/ string,
/*payload:*/ string,
/*tags:*/ string,
/*metadata:*/ string,
]

View file

@ -712,7 +712,6 @@ export function ExceptionWithMeta(
name: string,
message: string,
payload: string,
tags: string,
metadata: string,
): Messages.ExceptionWithMeta {
return [
@ -720,7 +719,6 @@ export function ExceptionWithMeta(
name,
message,
payload,
tags,
metadata,
]
}

View file

@ -285,13 +285,13 @@ export default class API {
return
}
if (e instanceof Error) {
const msg = getExceptionMessage(e, [], tags, metadata)
const msg = getExceptionMessage(e, [], metadata)
this.app.send(msg)
} else if (
e instanceof ErrorEvent ||
('PromiseRejectionEvent' in window && e instanceof PromiseRejectionEvent)
) {
const msg = getExceptionMessageFromEvent(e, undefined, tags, metadata)
const msg = getExceptionMessageFromEvent(e, undefined, metadata)
if (msg != null) {
this.app.send(msg)
}

View file

@ -30,52 +30,38 @@ function getDefaultStack(e: ErrorEvent): Array<StackFrame> {
export function getExceptionMessage(
error: Error,
fallbackStack: Array<StackFrame>,
tags?: string[],
metadata?: Record<string, any>,
): Message {
let stack = fallbackStack
try {
stack = ErrorStackParser.parse(error)
} catch (e) {}
const metaPresent = metadata || tags
const metaPresent = !!metadata
const method = metaPresent ? ExceptionWithMeta : JSException
return method(
error.name,
error.message,
JSON.stringify(stack),
JSON.stringify(tags),
JSON.stringify(metadata),
)
return method(error.name, error.message, JSON.stringify(stack), JSON.stringify(metadata))
}
export function getExceptionMessageFromEvent(
e: ErrorEvent | PromiseRejectionEvent,
context: typeof globalThis = window,
tags?: string[],
metadata?: Record<string, any>,
): Message | null {
if (e instanceof ErrorEvent) {
if (e.error instanceof Error) {
return getExceptionMessage(e.error, getDefaultStack(e), tags, metadata)
return getExceptionMessage(e.error, getDefaultStack(e), metadata)
} else {
let [name, message] = e.message.split(':')
if (!message) {
name = 'Error'
message = e.message
}
const metaPresent = metadata || tags
const metaPresent = !!metadata
const method = metaPresent ? ExceptionWithMeta : JSException
return method(
name,
message,
JSON.stringify(getDefaultStack(e)),
JSON.stringify(tags),
JSON.stringify(metadata),
)
return method(name, message, JSON.stringify(getDefaultStack(e)), JSON.stringify(metadata))
}
} else if ('PromiseRejectionEvent' in context && e instanceof context.PromiseRejectionEvent) {
if (e.reason instanceof Error) {
return getExceptionMessage(e.reason, [], tags, metadata)
return getExceptionMessage(e.reason, [], metadata)
} else {
let message: string
try {
@ -83,15 +69,9 @@ export function getExceptionMessageFromEvent(
} catch (_) {
message = String(e.reason)
}
const metaPresent = metadata || tags
const metaPresent = !!metadata
const method = metaPresent ? ExceptionWithMeta : JSException
return method(
'Unhandled Promise Rejection',
message,
'[]',
JSON.stringify(tags),
JSON.stringify(metadata),
)
return method('Unhandled Promise Rejection', message, '[]', JSON.stringify(metadata))
}
}
return null

View file

@ -231,7 +231,7 @@ export default class MessageEncoder extends PrimitiveEncoder {
break
case Messages.Type.ExceptionWithMeta:
return this.string(msg[1]) && this.string(msg[2]) && this.string(msg[3]) && this.string(msg[4]) && this.string(msg[5])
return this.string(msg[1]) && this.string(msg[2]) && this.string(msg[3]) && this.string(msg[4])
break
case Messages.Type.Zustand: