nd

node-disposable

IDisposable for Node.js

Showing:

Popularity

Downloads/wk

3

GitHub Stars

2

Maintenance

Last Commit

7yrs ago

Contributors

0

Package

Dependencies

1

Size (min+gzip)

1.9KB

License

Type Definitions

Tree-Shakeable

No?

Categories

Readme

node-disposable

Overview

This module provides an object with finalizer and IDisposable interface via .Net for NodeJS.

Usage

Create a class with finalizer

// TypeScript
import Disposable = require('node-disposable');

class Object extends Disposable.Object {
    public invoke() {
        this.__throwIfDisposed();
        
        console.log('invoke');
    }
    
    public __finalize(disposing) {
        console.log('finalize: ' + (disposing ? 'dispose' : 'exit'));
    }
}

export = Object;
  • Import 'node-disposable' module.
  • Extend 'node-disposable'.Object class.
  • Override __finalize method and implement resource disposing codes in it.

__finalize method is called on either calling dispose method, object is GC'd or process.exit event is fired.

Dispose

var obj = new Object();
obj.dispose(); // __finalize will be called.

Using

import Disposable = require('node-disposable');

Disposable.using(new Object(), obj => {
    // codes using Object
});
// Object is disposed.

Note

Finalizer won't run when the node process is terminated by SIGINT. To handle this problem, call finalize method on SIGINT.

import Disposable = require('node-disposable');
process.on('SIGINT', function(){
    Disposable.finalize();
    process.exit(-1);
});

API

class Object

function dispose

Dispose object.

function __finalize(disposing: boolean)

Finalizer method.

disposing:true Dispose method called. disposing:false process.exit.

function __throwIfDisposed

Throws an error if object is disposed.

property isDisposed: boolean

ture if object is disposed.

function using(obj: IDisposable, callback: obj => any)

Execute callback with an obj. The obj will be disposed after the callback.

function finalize()

Execute finalizers of all objects allocated.

function register(obj:IDisposable)

Register IDisposable object that will be handled as a disposable object.

interface IDisposable

function dispose

Changelog

0.2.3

  • Fix bugs on finalize.

0.2.2

  • Fix bugs.

0.2.1

  • Fix npm repositry

0.2.0

  • Add register function.

0.1.0

  • Finalizer will be called when the object is GC'd.
  • Add finalize function.

0.0.0

  • initial release.

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100