@@ -238,36 +238,39 @@ export function transformAttribute(
238
238
doc : Document ,
239
239
tagName : string ,
240
240
name : string ,
241
- value : string ,
241
+ value : string | null ,
242
242
maskAllText : boolean ,
243
243
maskTextFn : MaskTextFn | undefined ,
244
- ) : string {
244
+ ) : string | null {
245
+ if ( ! value ) {
246
+ return value ;
247
+ }
248
+
245
249
// relative path in attribute
246
- if ( name === 'src' || ( name === 'href' && value ) ) {
250
+ if ( name === 'src' || name === 'href' ) {
247
251
return absoluteToDoc ( doc , value ) ;
248
- } else if ( name === 'xlink:href' && value && value [ 0 ] !== '#' ) {
252
+ } else if ( name === 'xlink:href' && value [ 0 ] !== '#' ) {
249
253
// xlink:href starts with # is an id pointer
250
254
return absoluteToDoc ( doc , value ) ;
251
255
} else if (
252
256
name === 'background' &&
253
- value &&
254
257
( tagName === 'table' || tagName === 'td' || tagName === 'th' )
255
258
) {
256
259
return absoluteToDoc ( doc , value ) ;
257
- } else if ( name === 'srcset' && value ) {
260
+ } else if ( name === 'srcset' ) {
258
261
return getAbsoluteSrcsetString ( doc , value ) ;
259
- } else if ( name === 'style' && value ) {
262
+ } else if ( name === 'style' ) {
260
263
return absoluteToStylesheet ( value , getHref ( ) ) ;
261
- } else if ( tagName === 'object' && name === 'data' && value ) {
264
+ } else if ( tagName === 'object' && name === 'data' ) {
262
265
return absoluteToDoc ( doc , value ) ;
263
266
} else if (
264
267
maskAllText &&
265
268
[ 'placeholder' , 'title' , 'aria-label' ] . indexOf ( name ) > - 1
266
269
) {
267
270
return maskTextFn ? maskTextFn ( value ) : defaultMaskFn ( value ) ;
268
- } else {
269
- return value ;
270
271
}
272
+
273
+ return value ;
271
274
}
272
275
273
276
export function _isBlockedElement (
@@ -770,8 +773,8 @@ function serializeNode(
770
773
}
771
774
}
772
775
773
- function lowerIfExists ( maybeAttr : string | number | boolean ) : string {
774
- if ( maybeAttr === undefined ) {
776
+ function lowerIfExists ( maybeAttr : string | number | boolean | null | undefined ) : string {
777
+ if ( maybeAttr === undefined || maybeAttr === null ) {
775
778
return '' ;
776
779
} else {
777
780
return ( maybeAttr as string ) . toLowerCase ( ) ;
0 commit comments