Back to Explore

othiym23/shimmer

GitHub
1 watchersOpen source

Last release:

Shimmer is a Node.js utility for safer monkeypatching, letting you wrap existing methods on objects or required modules with your own wrapper functions. It’s useful when you need to add behavior around built-in or third-party functions without fully replacing them, and includes helpers to wrap or unwrap single or multiple methods (for restoring the original behavior later).

Project status

  • Actively maintained: No clear evidence of active maintenance as of 2026-08-13. The last upstream push is 2024-05-31, but the provided package updates/release notes stop in 2017, suggesting the project is likely quiet/dormant rather than actively maintained.
  • Update cadence: From the available history, updates are infrequent with very long gaps (for example, 2017, then prior releases stretching back to 2013), and no near-term updates appear in the provided data.

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v1.2.0

    This release (v1.2.0) introduces a new helper, shimmer.massUnwrap, to unwrap multiple patched methods across one or more modules. The change is accompanied by new README documentation, a new test file, and updates to development tooling (notably the standard linter).

    Features
  • v1.1.1

    Release v1.1.1 has no published release notes in the provided data. The code changes focus on how shimmer wraps methods, specifically preserving property descriptors and enumerability when patching objects.

  • v1.1.0

    Release v1.1.0 was published on 2015-10-31, but no release notes were provided by the publisher. As a result, there is no documented information about new features, fixes, breaking changes, or migration steps for developers in this release.

  • v1.0.0

    Release v1.0.0 bumps the package version from 0.9.2 to 1.0.0 but provides no release notes. The code diff shows a major API surface change: the `wrapEmitter` implementation and its export were removed, along with its dedicated test file.

  • v0.9.2

    Release v0.9.2 updates shimmer's wrapping behavior to support calling wrapEmitter multiple times on the same EventEmitter. The core EventEmitter methods are wrapped only once, while multiple onAddListener callbacks are stacked and invoked for each newly added listener.

    Features
  • v0.9.1

    Release v0.9.1 contains a small internal refactor around the shimmer emitter monkeypatching wrapper. The release notes are empty, so the only observable changes come from the code diff and related test expectation updates.

  • v0.9.0

    Release v0.9.0 includes internal changes to shimmer.wrapEmitter listener wrapping behavior and updates to README and tests. The code change is significant: wrapEmitter now normalizes how it passes listeners to the user-provided prepare function, handling both single-listener and array-listener cases directly.

    Breaking
  • v0.8.1

    This release (v0.8.1) contains no provided release notes. The only changes in the diff are a version bump in package.json and an addition to README.md documenting shimmer.wrapEmitter.

  • v0.8.0

    Release v0.8.0 introduces a new helper, shimmer.wrapEmitter, intended for safe monkeypatching of Node.js EventEmitter instances. No release notes were provided for this version, so the main changes should be inferred directly from the code diff.

    Features
  • v0.7.3

    Release v0.7.3 was published on 2013-10-03, but no release notes or change log details were provided in the supplied data. Because the publisher notes are missing, this release cannot be reliably analyzed for API changes, fixes, or migrations based on the provided information.