Slightly re-factor setting of the link target
in addLinkAttributes
I happened to look at this code and the way that the link target is set seems unecessarily convoluted, since we're using `Object.values` and `Array.prototype.includes` for *every* link being parsed. Given that the number of link targets are so few, the easist solution honestly seem to be to just use a `switch` statement to do the link target mapping.
This commit is contained in:
parent
bbd2386bd9
commit
fec1f02b2a
@ -326,14 +326,6 @@ const LinkTarget = {
|
|||||||
TOP: 4,
|
TOP: 4,
|
||||||
};
|
};
|
||||||
|
|
||||||
const LinkTargetStringMap = [
|
|
||||||
'',
|
|
||||||
'_self',
|
|
||||||
'_blank',
|
|
||||||
'_parent',
|
|
||||||
'_top',
|
|
||||||
];
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef ExternalLinkParameters
|
* @typedef ExternalLinkParameters
|
||||||
* @typedef {Object} ExternalLinkParameters
|
* @typedef {Object} ExternalLinkParameters
|
||||||
@ -366,10 +358,24 @@ function addLinkAttributes(link, { url, target, rel, enabled = true, } = {}) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
const LinkTargetValues = Object.values(LinkTarget);
|
let targetStr = ''; // LinkTarget.NONE
|
||||||
const targetIndex =
|
switch (target) {
|
||||||
LinkTargetValues.includes(target) ? target : LinkTarget.NONE;
|
case LinkTarget.NONE:
|
||||||
link.target = LinkTargetStringMap[targetIndex];
|
break;
|
||||||
|
case LinkTarget.SELF:
|
||||||
|
targetStr = '_self';
|
||||||
|
break;
|
||||||
|
case LinkTarget.BLANK:
|
||||||
|
targetStr = '_blank';
|
||||||
|
break;
|
||||||
|
case LinkTarget.PARENT:
|
||||||
|
targetStr = '_parent';
|
||||||
|
break;
|
||||||
|
case LinkTarget.TOP:
|
||||||
|
targetStr = '_top';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
link.target = targetStr;
|
||||||
|
|
||||||
link.rel = (typeof rel === 'string' ? rel : DEFAULT_LINK_REL);
|
link.rel = (typeof rel === 'string' ? rel : DEFAULT_LINK_REL);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user