Socket
Socket
Sign inDemoInstall

@happy-dom/uncaught-exception-observer

Package Overview
Dependencies
Maintainers
1
Versions
57
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@happy-dom/uncaught-exception-observer

A utility for observing uncaught exceptions thrown in Happy DOM and dispatch them as events on the Happy DOM window.


Version published
Weekly downloads
15
decreased by-65.12%
Maintainers
1
Weekly downloads
 
Created
Source

:warning: This package has been deprecated. Happy DOM now supports this feature built in by setting "errorCapture" to "processLevel". :warning:

Happy DOM Logo

About

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.

DOM Features

  • Custom Elements (Web Components)

  • Shadow Root (Shadow DOM)

  • Declarative Shadow DOM

  • Mutation Observer

  • Tree Walker

  • Fetch

And much more..

Works With

Module Systems

Installation

npm install happy-dom @happy-dom/uncaught-exception-observer

Usage

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();

Documentation

Read more about how Happy DOM works in our documentation.

Performance

OperationJSDOMHappy DOM
Import / Require333 ms45 ms
Parse HTML256 ms26 ms
Serialize HTML65 ms8 ms
Render custom element214 ms19 ms
querySelectorAll('tagname')4.9 ms0.7 ms
querySelectorAll('.class')6.4 ms3.7 ms
querySelectorAll('[attribute]')4.0 ms1.7 ms
querySelectorAll('[class~="name"]')5.5 ms2.9 ms
querySelectorAll(':nth-child(2n+1)')10.4 ms3.8 ms

See how the test was done here

Sponsors

RTVision

FAQs

Package last updated on 24 Jan 2024

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc