disrequire

1.1.4 • Public • Published

disrequire

Build Status Coverage Status

Same as qmock.unrequire, but available standalone.

This package exports a function to undo the side-effects of a require(). All cached copies of an external nodejs module loaded with require will be discarded. Built-in modules such as http do not have separate cached copies, and are not unloaded.

const disrequire = require('disrequire');
disrequire('config');

Api

disrequire( packageName )

Unload the named package from all require caches. The package is removed from require.cache and from every module.children[] in which it occurs. Built-in modules like http are not unloaded.

const disrequire = require('disrequire');
disrequire('config');

disrequire.quick( packageName )

Shallow unload a single copy of the named package from the require caches. The package is removed from require.cache and from the module that loaded it, ie require.cache[require.resove(packageName)].parent.children[].

If it is known that only one module loaded the package, it is much faster to not have to walk the module tree searching for other locations.

const disrequire = require('disrequire');   // now you see it
disrequire.quick('disrequire');             // now you dont

Changelog

  • 1.1.4 - fix broken stack trace capture under node v0.1x
  • 1.1.3 - fix to work under node-v0.6 which broke with 1.1.2
  • 1.1.2 - fix for use with source maps
  • 1.1.1 - fix global leak of name stack
  • 1.1.0 - new disrequire.quick() shallow unload
  • 1.0.5 - speed up disrequire() with many cross-linked modules
  • 1.0.4 - fix resolveOrSelf for anonymous functions
  • 1.0.3 - make tests create the test module, remove node_modules from repo
  • 1.0.2 - fix typo in exported resolveOrSelv
  • 1.0.1 - split out of qmock

Related Work

  • qmock - various useful mocks and stubs, including mocks for node system functions

Package Sidebar

Install

npm i disrequire

Weekly Downloads

454

Version

1.1.4

License

Apache-2.0

Unpacked Size

10 kB

Total Files

4

Last publish

Collaborators

  • andrasq