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.

Readme

Keywords

Package Sidebar

Install

npm i node-disposable

Weekly Downloads

0

Version

0.2.3

License

none

Last publish

Collaborators

  • catwalkagogo