Skip to content
This repository was archived by the owner on Mar 13, 2025. It is now read-only.

Commit 4409897

Browse files
committed
Update html-rewriter-wasm to 0.3.2, fix cloudflare/html-rewriter-wasm#1
1 parent 9f1d725 commit 4409897

File tree

3 files changed

+36
-9
lines changed

3 files changed

+36
-9
lines changed

package-lock.json

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
"dotenv": "^8.2.0",
4545
"env-paths": "^2.2.1",
4646
"formdata-node": "^2.4.0",
47-
"html-rewriter-wasm": "^0.3.1",
47+
"html-rewriter-wasm": "^0.3.2",
4848
"http-cache-semantics": "^4.1.0",
4949
"ioredis": "^4.27.6",
5050
"micromatch": "^4.0.4",

test/modules/rewriter.spec.ts

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import {
1616
HTMLRewriterModule,
1717
transformToArray,
1818
} from "../../src/modules/rewriter";
19-
import { getObjectProperties, wait } from "../helpers";
19+
import { getObjectProperties, runInWorker, wait } from "../helpers";
2020

2121
// TODO: (low priority) remove most of these tests, they're now in html-rewriter-wasm
2222
// TODO: (low priority) debug why removing .serial breaks some of these tests
@@ -712,6 +712,33 @@ test.serial(
712712
t.deepEqual(texts, ["<p>new 3</p>", "<p>new 4</p>"]);
713713
}
714714
);
715+
test("HTMLRewriter: handles async handlers in worker sandbox", async (t) => {
716+
const res = await runInWorker<string>({}, async () => {
717+
const sandbox = self as any;
718+
const res = new sandbox.HTMLRewriter()
719+
.on("h1", {
720+
// Test async functions
721+
async element(element: Element) {
722+
await new Promise((resolve) => setTimeout(resolve));
723+
element.after("after h1");
724+
},
725+
})
726+
.on("p", {
727+
// Test returning promise
728+
element(element: Element) {
729+
return new Promise<void>((resolve) =>
730+
setTimeout(() => {
731+
element.before("before p");
732+
resolve();
733+
})
734+
);
735+
},
736+
})
737+
.transform(new sandbox.Response("<h1>title</h1><p>body</p>"));
738+
return await res.text();
739+
});
740+
t.is(res, ["<h1>title</h1>", "after h1", "before p", "<p>body</p>"].join(""));
741+
});
715742

716743
test("HTMLRewriter: hides implementation details", (t) => {
717744
const rewriter = new HTMLRewriter();

0 commit comments

Comments
 (0)