observablehq / htl

A tagged template literal that allows safe interpolation of values into HTML, following the HTML5 spec
https://observablehq.com/@observablehq/htl
ISC License
305 stars 24 forks source link

Allow subbing in JSDOM for use in node #43

Open lajoiemedia opened 2 years ago

lajoiemedia commented 2 years ago

Exports a new function called setWindowObject which sets a singleton windowObject.

All references to window are now replaced with this windowObject, e.g. windowObject.document or windowObject.NodeList.

That way we can do setWindowObject(new JSDOM("").window) after import so that htl can be used in node.

windowObject defaults to globalThis.window, so no code changes will be needed for browser usage.