Node Roundup: OneJS, node-pad, CouchPress, node-linq
OneJS
OneJS (npm: one) by Azer Koculu is a command-line utility for converting CommonJS-style packages to browser-friendly JavaScript. It provides Node-compatible APIs, and the output can also be run with Node if required.
All it needs is a suitable package.json file:
$ onejs build package.json bundle.js
Some of Node’s standard library is technically supported by most browsers, and OneJS supports this by providing the install command:
$ onejs install assert
This will create a module in ./node_modules/assert/ with a package.json and a OneJS version of Node’s assert module.
Azer said he created this project for Multiplayer Chess, which is a web-based chess game that supports up to 25 players.
node-pad
Do you like video games, or at least the DualShock 3 controller? node-pad (npm: node-pad) by Andre Tangen is a game controller library that currently supports Sony’s controller:
controller.rthumb.on('move', function(event) {
player.updateCameraDirection({
x: event.x
, y: event.y
});
});
The author has included Jasmine tests, and the project depends on Andre’s node-hid fork which is built using node-waf.
CouchPress
CouchPress (GitHub: koostudios / couchpress, License: MIT, npm: couchpress) by Alexander Yuen is a CouchDB and Express-based publishing platform. It’s currently very simple, but includes a minimal administration interface, a WYSIWYG editor, and the beginnings of a theming engine.
The author is planning on adding a Markdown editor, and support for plugins. He’s very open to suggestions, so if you’re interested in supporting a Node-based CMS then try getting in touch with him. Contact details are available in his 0.1 announcement post: CouchPress: Announcing Version 0.1.
node-linq
node-linq (License: MIT, npm: node-linq) from Fractal is a LINQ implementation for node:
{LINQ} = require 'node-linq'
fs = require 'fs'
{extname} = require 'path'
files = ['test.txt', 'choni.txt', 'legacy.zip', 'secrets.txt', 'etc.rar']
arr = new LINQ(files)
.Where((file) -> extname(file) is 'txt')
.OrderBy((file) -> fs.lstatSync(file).mtime)
.ToArray()
# arr == [ 'choni.txt', 'text.txt', 'secrets.txt']
It also supports Asynchronous LINQ. The readme has examples, and there are Mocha tests.
