@@ -55,57 +55,60 @@ function addLog(log: Log): void {
55
55
client . sendEnvelope ( envelope ) . then ( null , ex => console . error ( ex ) ) ;
56
56
}
57
57
58
+ function valueToAttribute ( key : string , value : unknown ) : LogAttribute {
59
+ if ( typeof value === 'number' ) {
60
+ if ( Number . isInteger ( value ) ) {
61
+ return {
62
+ key,
63
+ value : {
64
+ intValue : value
65
+ }
66
+ }
67
+ }
68
+ return {
69
+ key,
70
+ value : {
71
+ doubleValue : value
72
+ }
73
+ }
74
+ } else if ( typeof value === 'boolean' ) {
75
+ return {
76
+ key,
77
+ value : {
78
+ boolValue : value
79
+ }
80
+ }
81
+ } else if ( typeof value === 'string' ) {
82
+ return {
83
+ key,
84
+ value : {
85
+ stringValue : value
86
+ }
87
+ }
88
+ } else {
89
+ return {
90
+ key,
91
+ value : {
92
+ stringValue : JSON . stringify ( value )
93
+ }
94
+ }
95
+ }
96
+ }
97
+
58
98
/**
59
- * A utility function to be able to create methods like Sentry.info( ...)
99
+ * A utility function to be able to create methods like Sentry.info` ...`
60
100
*
61
101
* The first parameter is bound with, e.g., const info = captureLog.bind(null, 'info')
62
102
* The other parameters are in the format to be passed a template, Sentry.info`hello ${world}`
63
103
*/
64
- export function captureLog ( level : LogSeverityLevel , strings : string [ ] , ...values : unknown [ ] ) : void {
104
+ export function captureLog ( level : LogSeverityLevel , messages : string [ ] | string , ...values : unknown [ ] ) : void {
105
+ const message = Array . isArray ( messages ) ? messages . reduce ( ( acc , str , i ) => acc + str + ( values [ i ] ?? '' ) , '' ) : messages ;
106
+
65
107
addLog ( {
66
108
severityText : level ,
67
109
body : {
68
- stringValue : strings . reduce ( ( acc , str , i ) => acc + str + ( values [ i ] ?? '' ) , '' ) ,
110
+ stringValue : message ,
69
111
} ,
70
- attributes : values . map < LogAttribute > ( ( value , index ) => {
71
- const key = `param${ index } ` ;
72
- if ( typeof value === 'number' ) {
73
- if ( Number . isInteger ( value ) ) {
74
- return {
75
- key,
76
- value : {
77
- intValue : value
78
- }
79
- }
80
- }
81
- return {
82
- key,
83
- value : {
84
- doubleValue : value
85
- }
86
- }
87
- } else if ( typeof value === 'boolean' ) {
88
- return {
89
- key,
90
- value : {
91
- boolValue : value
92
- }
93
- }
94
- } else if ( typeof value === 'string' ) {
95
- return {
96
- key,
97
- value : {
98
- stringValue : value
99
- }
100
- }
101
- } else {
102
- return {
103
- key,
104
- value : {
105
- stringValue : JSON . stringify ( value )
106
- }
107
- }
108
- }
109
- } , { } )
112
+ attributes : values . map < LogAttribute > ( ( value , index ) => valueToAttribute ( `param${ index } ` , value ) ) ,
110
113
} )
111
114
}
0 commit comments