Package Exports
- @happy-dom/global-registrator
- @happy-dom/global-registrator/lib/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@happy-dom/global-registrator) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
About
A JSDOM alternative with focus on performance.
Happy DOM aim to support the most common functionality of a web browser.
This package contains a utility that registers Happy DOM globally, which makes it possible to use Happy DOM for testing in a Node environment.
DOM Features
Custom Elements (Web Components)
Shadow Root (Shadow DOM)
Mutation Observer
Tree Walker
Fetch
And much more..
Works With
Installation
npm install @happy-dom/global-registrator --save-dev
Usage
Register
import { GlobalRegistrator } from '@happy-dom/global-registrator';
GlobalRegistrator.register();
document.body.innerHTML = `<button>My button</button>`;
const button = document.querySelector('button');
// Outputs: "My button"
console.log(button.innerText)
Unregister
import { GlobalRegistrator } from '@happy-dom/global-registrator';
GlobalRegistrator.register();
GlobalRegistrator.unregister();
// Outputs: "undefined"
console.log(global.document)
Performance
Operation | JSDOM | Happy DOM |
---|---|---|
Import / Require | 333 ms | 45 ms |
Parse HTML | 256 ms | 26 ms |
Serialize HTML | 65 ms | 8 ms |
Render custom element | 214 ms | 19 ms |
querySelectorAll('tagname') | 4.9 ms | 0.7 ms |
querySelectorAll('.class') | 6.4 ms | 3.7 ms |
querySelectorAll('[attribute]') | 4.0 ms | 1.7 ms |
querySelectorAll('[class~="name"]') | 5.5 ms | 2.9 ms |
querySelectorAll(':nth-child(2n+1)') | 10.4 ms | 3.8 ms |