nor-hal-self-optional
v0.0.7
Published
Hypertext Application Language Library (variant taken from nor-hal that makes self link optional) for Node.js
Downloads
3
Readme
nor-hal
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
andhal.Resource
can be cloned using constructor:var cloned_obj = new hal.Resource(obj);
- Both
hal.Resource.link(rel, array)
andhal.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)
Notice that this is a fork of sendanor/nor-hal but with the difference that self is optional
License
It's open source, MIT.
Installation
You can install it simply from NPM:
npm install nor-hal-self-optional
Usage
var hal = require('nor-hal-self-optional');
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') );
console.log(''+resource);
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"}}
}
]
}
}
And for resources without self:
var hal = require('../src/hal.js');
var resourceWithoutSelf = new hal.Resource({name: "Cats"});
Resulting output is:
{
"name": "Cats"
}