DailyJS

Node Roundup: 0.4.10, Geocoding, Bunker

Alex R. Young

Subscribe

@dailyjs

Facebook

Google+

testing node modules geo

Node Roundup: 0.4.10, Geocoding, Bunker

Posted by Alex R. Young on .
Featured

testing node modules geo

Node Roundup: 0.4.10, Geocoding, Bunker

Posted by Alex R. Young on .
You can send your node modules and articles in for review through our [contact form](/contact.html) or [@dailyjs](http://twitter.com/dailyjs).

Node 0.4.10

Node 0.4.10 has been released. This version mainly contains bug fixes:

  • #394 Fix Buffer drops last null character in UTF-8
  • #829 Backport r8577 from V8 (Ben Noordhuis)
  • #877 Don't wait for HTTP Agent socket pool to establish connections
  • #915 Find kqueue on FreeBSD correctly (Brett Kiefer)
  • #1085 HTTP: Fix race in abort/dispatch code (Stefan Rusu)
  • #1274 debugger improvement (Yoshihiro Kikuchi)
  • #1291 Properly respond to HEAD during end(body) hot path (Reid Burke)
  • #1304 TLS: Fix race in abort/connection code (Stefan Rusu)
  • #1360 Allow _ in url hostnames
  • Revert 37d529f8 - unbreaks debugger command parsing.
  • Bring back global execScript (it was removed from v8)

Geocoder

Geocoder (GitHub: wyattdanger / geocoder,
License, npm: geocoder) by Stephen Wyatt Bush is a module for using Google's
geocoding and reverse geocoding services:

var geocoder = require('geocoder');

geocoder.geocode("Atlanta, GA", function(data) {
  // do stuff with data
});

// Reverse Geocoding
geocoder.reverseGeocode(33.7489, -84.3789, function(data) {
  // do stuff with data
});

He's planning to add error handling support, although I'd have expected
the callback signature to be err, data rather than
data, err.

Bunker

Bunker (npm: bunker, License: MIT/X11) by James Halliday generates code coverage reports
using the author's burrito
library.

There's a simple example that demonstrates the project's event-based
API:

var bunker = require('bunker');
var b = bunker('var x = 0; for (var i = 0; i < 30; i++) { x++ }');

var counts = {};

b.on('node', function (node) {
    if (!counts[node.id]) {
        counts[node.id] = { times : 0, node : node };
    }
    counts[node.id].times ++;
});

b.run();

Object.keys(counts).forEach(function (key) {
    var count = counts[key];
    console.log(count.times + ' : ' + count.node.source());
});

This is actually a native JavaScript parser based on AST data generated
by UglifyJS. Bunker doesn't
currently provide a generalised script for analysing your project's test
coverage; for something like that TJ Holowaychuk's
node-jscoverage can work in conjunction with a test framework like
Expresso.