Security News
The Unpaid Backbone of Open Source: Solo Maintainers Face Increasing Security Demands
Solo open source maintainers face burnout and security challenges, with 60% unpaid and 60% considering quitting.
@happy-dom/uncaught-exception-observer
Advanced tools
A utility for observing uncaught exceptions thrown in Happy DOM and dispatch them as events on the Happy DOM window.
:warning: This package has been deprecated. Happy DOM now supports this feature built in by setting "errorCapture" to "processLevel". :warning:
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.
The goal of Happy DOM is to emulate enough of a web browser to be useful for testing, scraping web sites and server-side rendering.
Happy DOM focuses heavily on performance and can be used as an alternative to JSDOM.
This package contains a tool that can observe uncaught exceptions and Promise rejections in Happy DOM. It will dispatch uncaught errors as events on the Happy DOM Window instance.
Uncaught exceptions and rejections must be listened to on the NodeJS process at a global level. This tool will therefore not work in all environments as there may already be listeners added by other libraries on the NodeJS process that may conflict.
Custom Elements (Web Components)
Shadow Root (Shadow DOM)
Declarative Shadow DOM
Mutation Observer
Tree Walker
Fetch
And much more..
npm install happy-dom @happy-dom/uncaught-exception-observer
import { Window } from "happy-dom";
import { UncaughtExceptionObserver } from "@happy-dom/uncaught-exception-observer";
const window = new Window();
const document = window.document;
const observer = new UncaughtExceptionObserver();
// Connects observer
observer.observe(window);
window.addEventListener((error) => {
// Do something on error
});
document.write(`
<script>
(() => {
async function main() {
await fetch('https://localhost:3000/')
throw Error('This error will be caught, but would otherwise have terminated the process.');
}
main();
})();
</script>
`);
// Disconnects observer
observer.disconnect();
Read more about how Happy DOM works in our documentation.
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
FAQs
A utility for observing uncaught exceptions thrown in Happy DOM and dispatch them as events on the Happy DOM window.
The npm package @happy-dom/uncaught-exception-observer receives a total of 13 weekly downloads. As such, @happy-dom/uncaught-exception-observer popularity was classified as not popular.
We found that @happy-dom/uncaught-exception-observer demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Solo open source maintainers face burnout and security challenges, with 60% unpaid and 60% considering quitting.
Security News
License exceptions modify the terms of open source licenses, impacting how software can be used, modified, and distributed. Developers should be aware of the legal implications of these exceptions.
Security News
A developer is accusing Tencent of violating the GPL by modifying a Python utility and changing its license to BSD, highlighting the importance of copyleft compliance.