happy-dom
Happy DOM is a JavaScript implementation of a web browser without its graphical user interface. It includes many web standards from WHATWG DOM and HTML.
npm downloads npm version npm license
happy-domSimilar Packages:
Npm Package Weekly Downloads Trend
3 Years
🌟 Show real-time usage chart on happy-dom's README.md, just copy the code below.
## Usage Trend
[![Usage Trend of happy-dom](https://npm-compare.com/img/npm-trend/THREE_YEARS/happy-dom.png)](https://npm-compare.com/happy-dom#timeRange=THREE_YEARS)
Cumulative GitHub Star Trend
🌟 Show GitHub stars trend chart on happy-dom's README.md, just copy the code below.
## GitHub Stars Trend
[![GitHub Stars Trend of happy-dom](https://npm-compare.com/img/github-trend/happy-dom.png)](https://npm-compare.com/happy-dom)
Stat Detail
Package
Downloads
Stars
Size
Issues
Publish
License
happy-dom2,992,1244,0838.02 MB2602 days agoMIT
README for happy-dom

Happy DOM Logo

A JavaScript implementation of a web browser without its graphical user interface.

DOM Features

  • Custom Elements (Web Components)

  • Declarative Shadow DOM

  • Mutation Observer

  • Tree Walker

  • Fetch API

And much more..

Documentation

Documentation | Getting Started | Setup as Test Environment | GitHub

Works With

Vitest | Bun | Jest | Testing Library | Google LitElement | Vue | React | Svelte | Angular

Module Systems

ESM | CommonJS

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(':nth-child(2n+1)') | 10.4 ms | 3.8 ms |

See how the test was done here