Comparing version 0.2.3 to 0.3.0
var Benchmark = require('benchmark').Benchmark; | ||
var suite = new Benchmark.Suite; | ||
candle = require('..').candle; | ||
Candle = require('..').Candle; | ||
//function noop() {}; | ||
noop = function() {}; | ||
var setup = function() { var c = new candle; }; | ||
noop = function() {} | ||
var setup = function() { var c = new Candle; }; | ||
var teardown = function() { console.log(c.id, Object.keys(c.callbacks).length); }; | ||
@@ -25,3 +24,3 @@ var options = { | ||
.add('1000*add + 1000*resolve', function() { | ||
var c = new candle; | ||
var c = new Candle; | ||
var ids = new Array(1000); | ||
@@ -37,3 +36,3 @@ for (var i = 0; i < 1000; i++) { | ||
.add('1000*add + 1000*resolve(1)', function() { | ||
var c = new candle; | ||
var c = new Candle; | ||
var ids = new Array(1000); | ||
@@ -49,3 +48,3 @@ for (var i = 0; i < 1000; i++) { | ||
.add('1000*add + 1000*resolve(1, 2)', function() { | ||
var c = new candle; | ||
var c = new Candle; | ||
var ids = new Array(1000); | ||
@@ -61,3 +60,3 @@ for (var i = 0; i < 1000; i++) { | ||
.add('1000*add + 1000*resolve(1, 2, 3, 4, 5)', function() { | ||
var c = new candle; | ||
var c = new Candle; | ||
var ids = new Array(1000); | ||
@@ -78,3 +77,3 @@ for (var i = 0; i < 1000; i++) { | ||
.add('1000*add + 1000*setTimeout + 1000*resolve', function() { | ||
var c = new candle; | ||
var c = new Candle; | ||
var ids = new Array(1000); | ||
@@ -93,3 +92,3 @@ for (var i = 0; i < 1000; i++) { | ||
.add('1000*(add + setTimeout) + 1000*timeout', function(deferred) { | ||
var c = new candle; | ||
var c = new Candle; | ||
var n = 0; | ||
@@ -96,0 +95,0 @@ var ITERATIONS = 1000; |
@@ -17,3 +17,3 @@ var Benchmark = require('benchmark').Benchmark; | ||
suite | ||
.add('warmup', function() { | ||
/*.add('warmup', function() { | ||
var d = Date.now(); | ||
@@ -68,3 +68,3 @@ }) | ||
} | ||
}) | ||
})*/ | ||
.add('add + setTimeout + resolve', function() { | ||
@@ -71,0 +71,0 @@ var id = c.add(noop); |
@@ -1,4 +0,4 @@ | ||
var candle = require('..').candle; | ||
var Candle = require('..').Candle; | ||
var c = new candle(); | ||
var c = new Candle(); | ||
@@ -5,0 +5,0 @@ var n = 0; |
@@ -1,4 +0,4 @@ | ||
var candle = require('..').candle; | ||
var Candle = require('..').Candle; | ||
var c = new candle(); | ||
var c = new Candle(); | ||
@@ -5,0 +5,0 @@ var n = 0; |
@@ -1,4 +0,4 @@ | ||
var candle = require('..').candle; | ||
var Candle = require('..').Candle; | ||
var c = new candle(); | ||
var c = new Candle(); | ||
@@ -5,0 +5,0 @@ var n = 0; |
@@ -6,3 +6,6 @@ /*jslint indent: 4 */ | ||
var debug = require('debug')('candle'); | ||
var candle = function () { | ||
var TimeoutError = function () {}; | ||
var Candle = function () { | ||
"use strict"; | ||
@@ -13,3 +16,3 @@ this.callbacks = Object.create(null); | ||
}; | ||
candle.prototype.add = function (callback) { | ||
Candle.prototype.add = function (callback) { | ||
"use strict"; | ||
@@ -21,3 +24,3 @@ var id = ++this.id; | ||
}; | ||
candle.prototype.resolve = function (id, err, result) { | ||
Candle.prototype.resolve = function (id, err, result) { | ||
"use strict"; | ||
@@ -41,3 +44,3 @@ debug('resolve(' + id + ', ...)'); | ||
}; | ||
candle.prototype.remove = function (id) { | ||
Candle.prototype.remove = function (id) { | ||
"use strict"; | ||
@@ -48,3 +51,3 @@ debug('remove(' + id + ')'); | ||
}; | ||
candle.prototype.setTimeout = function (id, timeout) { | ||
Candle.prototype.setTimeout = function (id, timeout) { | ||
"use strict"; | ||
@@ -56,3 +59,3 @@ debug('setTimeout(' + id + ')'); | ||
}; | ||
candle.prototype.clearTimeout = function (id) { | ||
Candle.prototype.clearTimeout = function (id) { | ||
"use strict"; | ||
@@ -65,3 +68,3 @@ debug('clearTimeout(' + id + ')'); | ||
}; | ||
candle.prototype.getTimeout = function (id) { | ||
Candle.prototype.getTimeout = function (id) { | ||
"use strict"; | ||
@@ -71,3 +74,3 @@ var self = this; | ||
}; | ||
candle.prototype.onTimeout = function (id) { | ||
Candle.prototype.onTimeout = function (id) { | ||
"use strict"; | ||
@@ -78,9 +81,19 @@ debug('onTimeout(' + id + ')'); | ||
} else { | ||
this.resolve(id, 'timeout'); | ||
this.resolve(id, new TimeoutError()); | ||
} | ||
}; | ||
candle.prototype.setTimeoutResolver = function (callback) { | ||
Candle.prototype.setTimeoutResolver = function (callback) { | ||
"use strict"; | ||
this.timeoutResolver = callback; | ||
}; | ||
module.exports.candle = candle; | ||
Candle.prototype.isTimeoutError = function (obj) { | ||
"use strict"; | ||
return obj instanceof TimeoutError; | ||
}; | ||
module.exports.Candle = Candle; | ||
var create = function () { | ||
"use strict"; | ||
return new Candle(); | ||
}; | ||
module.exports.create = create; |
@@ -1,5 +0,5 @@ | ||
var candle = require('..').candle; | ||
var Candle = require('..').Candle; | ||
// Create a new candle, usually you will need only one since it can handle many callbacks. | ||
var c = new candle(); | ||
var c = new Candle(); | ||
@@ -6,0 +6,0 @@ // Usually on timeout it calls callback with an arguments 'error'. |
@@ -5,3 +5,3 @@ // socket imitation compatible with socket.io :) | ||
// server2 | ||
socket.on('myrequest', function(payload, id) { | ||
socket.on('myrequest', function(id, payload) { | ||
// dont send anything at all about 'r3' | ||
@@ -18,4 +18,4 @@ if (payload == 'r3') return; | ||
// server1 | ||
var candle = require('..').candle; | ||
var c = new candle(); | ||
var Candle = require('..').Candle; | ||
var c = new Candle(); | ||
var start = Date.now(); | ||
@@ -26,3 +26,3 @@ socket.on('myresponse', function(id, response) { | ||
var doSmthWithRequest = function(err, request) { | ||
console.log('got', err, request, 'on', Date.now() - start, 'th ms'); | ||
console.log('got', err, request, 'on', (Date.now() - start) + 'th ms'); | ||
}; | ||
@@ -32,8 +32,8 @@ var id; | ||
c.setTimeout(id, 100); | ||
socket.emit('myrequest', 'r1', id); | ||
socket.emit('myrequest', id, 'r1'); | ||
id = c.add(doSmthWithRequest); | ||
c.setTimeout(id, 100); | ||
socket.emit('myrequest', 'r2', id); | ||
socket.emit('myrequest', id, 'r2'); | ||
id = c.add(doSmthWithRequest); | ||
c.setTimeout(id, 100); | ||
socket.emit('myrequest', 'r3', id); | ||
socket.emit('myrequest', id, 'r3'); |
@@ -1,5 +0,5 @@ | ||
var candle = require('..').candle; | ||
var Candle = require('..').Candle; | ||
// Create a new candle, usually you will need only one since it can handle many callbacks. | ||
var c = new candle(); | ||
var c = new Candle(); | ||
@@ -6,0 +6,0 @@ // Add a callback to it |
@@ -1,4 +0,4 @@ | ||
var candle = require('..').candle; | ||
var Candle = require('..').Candle; | ||
var c = new candle(), id; | ||
var c = new Candle(), id; | ||
@@ -5,0 +5,0 @@ id = c.add(function(err, result) { console.log('cb1', err, result); }); |
{ | ||
"name": "candle", | ||
"version": "0.2.3", | ||
"version": "0.3.0", | ||
"description": "A module for weak referenced callbacks with timeouts.", | ||
@@ -5,0 +5,0 @@ "main": "candle.js", |
@@ -19,6 +19,6 @@ node-candle | ||
```javascript | ||
var candle = require('candle').candle; | ||
var Candle = require('candle').Candle; | ||
// Create a new candle, usually you will need only one since it can handle many callbacks. | ||
var c = new candle(); | ||
var c = new Candle(); | ||
@@ -54,5 +54,5 @@ // Add a callback to it | ||
```javascript | ||
var candle = require('candle').candle; | ||
var Candle = require('candle').Candle; | ||
var c = new candle(); | ||
var c = new Candle(); | ||
@@ -93,6 +93,6 @@ var start = Date.now(); | ||
* `c = new candle` - create a new candle | ||
* `c = new Candle` - create a new candle | ||
* `id = c.add(callback)` - add a callback to the candle. Assigned id is returned. | ||
* `c.resolve(id, [args, ...])` - resolve a callback identified by id and pass custom args to it. | ||
* `c.delete(id)` - completely remove the callback. | ||
* `c.remove(id)` - completely remove the callback. | ||
* `c.setTimeout(id, timeout)` - add a timeout `timeout` ms to a callback by id. | ||
@@ -99,0 +99,0 @@ * `c.clearTimeout(id)` - remove a timeout from a callback by id. |
var assert = require("assert") | ||
var candle = require('..').candle; | ||
var Candle = require('..').Candle; | ||
@@ -7,3 +7,3 @@ describe('candle', function(){ | ||
it('should return numeric id', function(){ | ||
var c = new candle; | ||
var c = new Candle; | ||
var id = c.add(function() {}); | ||
@@ -13,3 +13,3 @@ assert.ok(id > 0); | ||
it('should return different ids', function(){ | ||
var c = new candle; | ||
var c = new Candle; | ||
var id1 = c.add(function() {}); | ||
@@ -22,3 +22,3 @@ var id2 = c.add(function() {}); | ||
it('should call callback', function(done){ | ||
var c = new candle; | ||
var c = new Candle; | ||
var id = c.add(function() { | ||
@@ -31,3 +31,3 @@ assert.equal(arguments.length, 0); | ||
it('should pass args into callback', function(done){ | ||
var c = new candle; | ||
var c = new Candle; | ||
var id = c.add(function(a, b, c) { | ||
@@ -42,3 +42,3 @@ assert.equal(arguments.length, 2); | ||
it('should resolve only once', function(){ | ||
var c = new candle; | ||
var c = new Candle; | ||
var sum = 0; | ||
@@ -55,3 +55,3 @@ var id = c.add(function(x) { | ||
it('should remove callback', function(){ | ||
var c = new candle; | ||
var c = new Candle; | ||
var id = c.add(function() { | ||
@@ -66,5 +66,5 @@ assert.fail(); | ||
it('should resolve callback', function(done){ | ||
var c = new candle; | ||
var c = new Candle; | ||
var id = c.add(function(err) { | ||
assert.equal(err, 'timeout'); | ||
assert.ok(c.isTimeoutError(err)); | ||
done(); | ||
@@ -74,4 +74,4 @@ }); | ||
}); | ||
it('should resolve callback', function(done){ | ||
var c = new candle; | ||
it('should not resolve callback if it has been resolved', function(done){ | ||
var c = new Candle; | ||
var n = 0; | ||
@@ -93,3 +93,3 @@ var id = c.add(function(err) { | ||
it('should not resolve callback', function(done){ | ||
var c = new candle; | ||
var c = new Candle; | ||
var id = c.add(function(err, response) { | ||
@@ -109,3 +109,3 @@ assert.equal(err, null); | ||
it('should then resolve callbacks', function(done){ | ||
var c = new candle; | ||
var c = new Candle; | ||
var id = c.add(function(err, response) { | ||
@@ -112,0 +112,0 @@ assert.equal(err, null); |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
313464
26
1063