DailyJS

Node Roundup: npmE, Snapshot.js, dm.js

Alex R. Young

Subscribe

@dailyjs

Facebook

Google+

libraries node modules npm dependency-injection

Node Roundup: npmE, Snapshot.js, dm.js

Posted by Alex R. Young on .
Featured

libraries node modules npm dependency-injection

Node Roundup: npmE, Snapshot.js, dm.js

Posted by Alex R. Young on .

npmE

There's an open beta for npmE, the npm Enterprise programme. This allows you to sign in to a private, hosted repository, which can be used to distribute private modules. They're prefixed with your company name, like this:

npm install @myco/somepackage  

Then you can load them with the prefix as follows:

require('@myco/somepackage');  

There's a new post on the npm blog about the roadmap for npmE:

We plan on building a web-UI for controlling various aspects of an npmE installation: adding and removing packages from the whitelist, configuring authentication/authorization strategies, managing organizations and teams.

Snapshot.js

Snapshot.js (GitHub: Wildhoney/Snapshot.js, License: MIT, Demo) by Adam Timberlake is a WebSocket-based Node application for sorting, paginating, and filtering data served using WebSockets.

It uses Express and the crossfilter module, which is a multidimensional filtering library:

Crossfilter is a JavaScript library for exploring large multivariate datasets in the browser. Crossfilter supports extremely fast interaction with coordinated views, even with datasets containing a million or more records; we built it to power analytics for Square Register, allowing merchants to slice and dice their payment history fluidly.

dm.js

dm.js (GitHub: gobwas / dm.js, License: MIT, npm: dm) by Sergey Kamardin is a module for dependency injection. It's service based, so you'd have to build applications using that pattern to take advantage of it.

The dm module itself implements the "service locator" pattern. That means it knows how to find a given service and configure it. It supports asynchronous adapters, so you could use it with jQuery.Deferred, Q.js, and promises with Harmony. It can load modules with either AMD or CommonJS, so it'll work with Node modules.

This might sound like a huge amount of effort if you're not used to dependency injection, but if you come from a Java/C#/C++ background then you might find it easier to design Node applications this way.