cleanup-util

A utility for cleaning up event handlers in nodejs.

Usage no npm install needed!

<script type="module">
  import cleanupUtil from 'https://cdn.skypack.dev/cleanup-util';
</script>

README

cleanup-util · GitHub license

Utility for cleaning up event handlers

cleanup-util is a small, utility for tracking and cleaning up event handlers. I find this utility useful when I have classes derived from EventHandler that are used throughout the life of my applications and those EventHandlers frequently have event handlers added and removed. It helps me catch memory leaks from dangling event listeners early in the development process. I hope you find it useful.

Installing / Getting started

cleanup-util is installed using npm:

npm install -S cleanup-util

In the above command we install cleanup-util into the local project, updating the dependencies in the project.json file.

API

cleanupPropagationEvent

function cleanupPropagationEvent<T extends EventEmitter>(
  sender: T,
  event: string,
  listener: Listener,
  target: EventEmitter,
  reciprocal?: string,
): void;

Attaches the specified listener to the specified sender, wrapping the listener to track it's cleanup.

If reciprocal is specified, it is the name of an event on target, cleanup-util will attach an event handler to the target to cleanup in the background if necessary.

addCleanupTask

function addCleanupTask<S extends EventEmitter, T>(
  sender: S,
  target: T,
  task: Task,
): void;

Adds a task to be run when the cleanup propagation event occurs.

iid(target)

Associates an instance Id with a target object.

getIid(target)

Gets the instance Id associated with an object.

clearId

Clears the instance Id associated with an object.

Tests

Tests are built using Jest; we're near 100%!

npm test

Licensing

This project is licensed by the MIT license found in this repository's root.