Complexity Score
Low
Open Issues
N/A
Dependent Projects
25
Weekly Downloadsglobal
7,808,531
Downloads
Readme
on-exit-leak-free
This module helps dispose of an object gracefully when the Node.js process exits.
It executes a function with a given parameter
on 'exit'
without leaking memory,
cleaning things up appropriately if the object is garbage collected.
Requires WeakRef
and FinalizationRegistry
, i.e. use Node v14+.
Install
npm i on-exit-leak-free
Example
'use strict'
const { register, unregister } = require('on-exit-leak-free')
const assert = require('assert')
function setup () {
// This object can be safely garbage collected,
// and the resulting shutdown function will not be called.
// There are no leaks.
const obj = { foo: 'bar' }
register(obj, shutdown)
// use registerBeforeExit(obj, shutdown) to execute the function only
// on beforeExit
// call unregister(obj) to remove
}
let shutdownCalled = false
// Please make sure that the function passed to register()
// does not create a closure around unnecessary objects.
function shutdown (obj, eventName) {
console.log(eventName) // beforeExit
shutdownCalled = true
assert.strictEqual(obj.foo, 'bar')
}
setup()
process.on('exit', function () {
assert.strictEqual(shutdownCalled, true)
})
License
MIT
Dependencies
No runtime dependency information found for this package.
CVE IssuesActive
0
Scorecards Score
4.20
Test Coverage
No Data
Follows Semver
Yes
Github Stars
145
Dependenciestotal
3
DependenciesOutdated
1
DependenciesDeprecated
0
Threat Modelling
No
Repo Audits
No
Learn how to distribute on-exit-leak-free in your own private NPM registry
$npm config set registry
https://npm.cloudsmith.com/owner/repo
/Processing...
✓Done
$npm install on-exit-leak-free
/Processing...
✓Done
7 Releases
NPM on Cloudsmith