π HTMLRewriter
packaged to work everywhere
β Perfect for transforming HTML streams
β
Works in Node.js, [Deno], [Vercel], [Netlify], and browsers
πͺ Built with [WebAssembly] for [big performance gains]
β‘ Exposes the native HTMLRewriter
in [Bun] and [Cloudflare Workers]
π Built on [cloudflare/lol-html], the HTML stream parser that powers the native HTMLRewriter
π¦ Uses new URL("big.wasm", import.meta.url)
so your bundler includes the .wasm
file
npm install @rtfill/workerd-html-rewriter
import HTMLRewriter from "npm:@rtfill/workerd-html-rewriter";
import HTMLRewriter from "https://esm.sh/@rtfill/workerd-html-rewriter";
import HTMLRewriter from "https://esm.run/@rtfill/workerd-html-rewriter";
import HTMLRewriter from "https://esm.run/@rtfill/workerd-html-rewriter";
import HTMLRewriter from "https://esm.sh/@rtfill/workerd-html-rewriter";
import HTMLRewriter from "@rtfill/workerd-html-rewriter";
const oldResponse = await fetch("https://nodejs.org/");
const newResponse = new HTMLRewriter()
.on("a", {
element(e) {
console.log(e.getAttribute("href"));
e.setAttribute("href", "https://python.org/");
},
})
.transform(oldResponse);
const text = await newResponse.text();
console.log(text);
import "@rtfill/workerd-html-rewriter/polyfill.js";
console.log(new HTMLRewriter());