node-disposable

    0.2.3 • Public • Published

    # 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.

    Keywords

    Install

    npm i node-disposable

    DownloadsWeekly Downloads

    1

    Version

    0.2.3

    License

    none

    Last publish

    Collaborators

    • catwalkagogo