Skip to content

πŸš€ HTMLRewriter packaged to work everywhere

Notifications You must be signed in to change notification settings

jcbhmr/workerd-html-rewriter

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cloudflare Workers HTMLRewriter polyfill

πŸš€ 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

Installation

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";

Usage

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());

About

πŸš€ HTMLRewriter packaged to work everywhere

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 72.7%
  • TypeScript 18.6%
  • JavaScript 8.7%