( node: HtmlNode, assetUrlFor: HtmlAssetUrlMapper, )
| 94 | } |
| 95 | |
| 96 | function rewriteNodeAssetReferences( |
| 97 | node: HtmlNode, |
| 98 | assetUrlFor: HtmlAssetUrlMapper, |
| 99 | ): void { |
| 100 | const tagName = node.tagName?.toLowerCase(); |
| 101 | if (!tagName) return; |
| 102 | |
| 103 | rewriteStyleAttr(node, assetUrlFor); |
| 104 | |
| 105 | if (tagName === "style") { |
| 106 | rewriteStyleContent(node, assetUrlFor); |
| 107 | return; |
| 108 | } |
| 109 | |
| 110 | if (tagName === "img") { |
| 111 | rewriteAttr(node, "src", assetUrlFor); |
| 112 | rewriteSrcsetAttr(node, "srcset", assetUrlFor); |
| 113 | return; |
| 114 | } |
| 115 | |
| 116 | if (tagName === "source") { |
| 117 | rewriteAttr(node, "src", assetUrlFor); |
| 118 | rewriteSrcsetAttr(node, "srcset", assetUrlFor); |
| 119 | return; |
| 120 | } |
| 121 | |
| 122 | if (tagName === "video") { |
| 123 | rewriteAttr(node, "src", assetUrlFor); |
| 124 | rewriteAttr(node, "poster", assetUrlFor); |
| 125 | return; |
| 126 | } |
| 127 | |
| 128 | if (tagName === "audio" || tagName === "script") { |
| 129 | rewriteAttr(node, "src", assetUrlFor); |
| 130 | return; |
| 131 | } |
| 132 | |
| 133 | if (tagName === "link" && isSupportLink(node)) { |
| 134 | rewriteAttr(node, "href", assetUrlFor); |
| 135 | } |
| 136 | } |
| 137 | |
| 138 | function visit(node: HtmlNode, fn: (node: HtmlNode) => void): void { |
| 139 | fn(node); |
no test coverage detected