MCPcopy Create free account
hub / github.com/backnotprop/plannotator / rewriteNodeAssetReferences

Function rewriteNodeAssetReferences

packages/shared/html-assets.ts:96–136  ·  view source on GitHub ↗
(
  node: HtmlNode,
  assetUrlFor: HtmlAssetUrlMapper,
)

Source from the content-addressed store, hash-verified

94}
95
96function 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
138function visit(node: HtmlNode, fn: (node: HtmlNode) => void): void {
139 fn(node);

Callers 1

Calls 5

rewriteStyleAttrFunction · 0.85
rewriteStyleContentFunction · 0.85
rewriteAttrFunction · 0.85
rewriteSrcsetAttrFunction · 0.85
isSupportLinkFunction · 0.85

Tested by

no test coverage detected