diff --git a/README.md b/README.md index c8cf56232..62557663f 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,10 @@ And much more.. - [Vue](https://vuejs.org/) +### Module Systems + +[Happy DOM](https://github.com/capricorn86/happy-dom) has support for both [ESM](https://nodejs.org/api/esm.html#introduction) and [CommonJS](https://nodejs.org/api/modules.html#modules-commonjs-modules). + # Packages This repository is a _Monorepo_. Each package lives under `packages/`. diff --git a/packages/global-registrator/README.md b/packages/global-registrator/README.md index 65bcf7285..99c05561a 100644 --- a/packages/global-registrator/README.md +++ b/packages/global-registrator/README.md @@ -38,6 +38,10 @@ And much more.. - [Vue](https://vuejs.org/) +### Module Systems + +[Happy DOM](https://github.com/capricorn86/happy-dom) has support for both [ESM](https://nodejs.org/api/esm.html#introduction) and [CommonJS](https://nodejs.org/api/modules.html#modules-commonjs-modules). + # Installation ```bash diff --git a/packages/happy-dom/README.md b/packages/happy-dom/README.md index 9327e7ab6..da6e6081e 100644 --- a/packages/happy-dom/README.md +++ b/packages/happy-dom/README.md @@ -36,6 +36,10 @@ And much more.. - [Vue](https://vuejs.org/) +### Module Systems + +[Happy DOM](https://github.com/capricorn86/happy-dom) has support for both [ESM](https://nodejs.org/api/esm.html#introduction) and [CommonJS](https://nodejs.org/api/modules.html#modules-commonjs-modules). + # Installation ```bash diff --git a/packages/integration-test/README.md b/packages/integration-test/README.md index 65bcf7285..6af75a522 100644 --- a/packages/integration-test/README.md +++ b/packages/integration-test/README.md @@ -1,99 +1 @@ -![Happy DOM Logo](https://github.com/capricorn86/happy-dom/raw/master/docs/happy-dom-logo.jpg) - -# About - -[Happy DOM](https://github.com/capricorn86/happy-dom) is a JavaScript implementation of a web browser without its graphical user interface. It includes many web standards from WHATWG [DOM](https://dom.spec.whatwg.org/) and [HTML](https://html.spec.whatwg.org/multipage/). - -The goal of [Happy DOM](https://github.com/capricorn86/happy-dom) is to emulate enough of a web browser to be useful for testing, scraping web sites and server-side rendering. - -[Happy DOM](https://github.com/capricorn86/happy-dom) focuses heavily on performance and can be used as an alternative to [JSDOM](https://github.com/jsdom/jsdom). - -This package contains a utility that registers [Happy DOM](https://github.com/capricorn86/happy-dom) globally, which makes it possible to use [Happy DOM](https://github.com/capricorn86/happy-dom) for testing in a Node environment. - -### DOM Features - -- Custom Elements (Web Components) - -- Shadow Root (Shadow DOM) - -- Declarative Shadow DOM - -- Mutation Observer - -- Tree Walker - -- Fetch - -And much more.. - -### Works With - -- [Google LitHTML](https://lit-html.polymer-project.org) - -- [Google LitElement](https://lit-element.polymer-project.org) - -- [React](https://reactjs.org) - -- [Angular](https://angular.io/) - -- [Vue](https://vuejs.org/) - -# Installation - -```bash -npm install @happy-dom/global-registrator --save-dev -``` - -# Usage - -## Register - -```javascript -import { GlobalRegistrator } from '@happy-dom/global-registrator'; - -GlobalRegistrator.register(); - -document.body.innerHTML = ``; - -const button = document.querySelector('button'); - -// Outputs: "My button" -console.log(button.innerText); -``` - -## Unregister - -```javascript -import { GlobalRegistrator } from '@happy-dom/global-registrator'; - -GlobalRegistrator.register(); - -GlobalRegistrator.unregister(); - -// Outputs: "undefined" -console.log(global.document); -``` - -# Documentation - -Read more about how Happy DOM works in our [documentation](https://github.com/capricorn86/happy-dom/wiki). - -# 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 | - -[See how the test was done here](https://github.com/capricorn86/happy-dom-performance-test) - -# Sponsors - -[RTVision](https://rtvision.com) +This package is used internally for testing the integration of Happy DOM in various environments. diff --git a/packages/jest-environment/README.md b/packages/jest-environment/README.md index ded15450b..a4e1328c9 100644 --- a/packages/jest-environment/README.md +++ b/packages/jest-environment/README.md @@ -38,6 +38,10 @@ And much more.. - [Vue](https://vuejs.org/) +### Module Systems + +[Happy DOM](https://github.com/capricorn86/happy-dom) has support for both [ESM](https://nodejs.org/api/esm.html#introduction) and [CommonJS](https://nodejs.org/api/modules.html#modules-commonjs-modules). However, [@happy-dom/jest-environment](https://github.com/capricorn86/happy-dom/packages/jest-environment) only has support for [CommonJS](https://nodejs.org/api/modules.html#modules-commonjs-modules) because of limitations with [Jest](https://jestjs.io/). + # Installation ```bash