node package manager
Painless code sharing. npm Orgs help your team discover, share, and reuse code. Create a free org »


Build Status


The library is an implementation of Hypertext Application Language for Node.js and JavaScript.

It has almost the same API as naholyr/js-hal and should be possible to drop in replace with it.

However this module differs from naholyr/js-hal in some features:

  • hal.Link and hal.Resource can be cloned using constructor: var cloned_obj = new hal.Resource(obj);
  • Both, array) and hal.Resource.embed(rel, array) can be called with an array of links or resources
  • Our library doesn't support XML (yet)
  • Our license is clearly open source (MIT)


It's open source, MIT.


You can install it simply from NPM:

npm install nor-hal


var hal = require('nor-hal');
var resource = new hal.Resource({name: "Orders"}, '/orders')
    .link('orders', '/orders/1')
    .link('orders', '/orders/2')
    .embed('orders', new hal.Resource({name:"Order 1"}, '/orders/1') )
    .embed('orders', new hal.Resource({name:"Order 2"}, '/orders/2') );

Resulting output is:

 "name": "Orders",
 "_links": {
  "self": {"href": "/orders"},
  "orders": [
   {"href": "/orders/1"},
   {"href": "/orders/2"}
 "_embedded": {
  "orders": [
    "name": "Order 1",
    "_links": {"self": {"href": "/orders/1"}}
    "name": "Order 2",
    "_links": {"self": {"href": "/orders/2"}}