@edgeros/on-exit-leak-free

2.1.2 • Public • Published

on-exit-leak-free

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

/@edgeros/on-exit-leak-free/

    Package Sidebar

    Install

    npm i @edgeros/on-exit-leak-free

    Weekly Downloads

    2

    Version

    2.1.2

    License

    MIT

    Unpacked Size

    8.84 kB

    Total Files

    10

    Last publish

    Collaborators

    • clarkttfu
    • fu-starslights
    • epmbot
    • xieyuanbin
    • chengyonbin