HALSON
The HAL+JSON Resource Object.
Installation
node.js
npm install halson --save
Bower
bower install halson --save
Example
var halson = ; var embed = ; var resource = ; console;console;console;console;console;
API
halson([data])
Create a new HAL+JSON Resource Object.
data
(optional): Initial data as serialized string or Object.
// empty HAL+JSON Resource Objectvar resource = ; // resource from a serialized datavar resource = ; // resource from an Objectresource = ; // resource from another resource (no-op)var resourceX = ;console; // true
HALSONResource#listLinkRels()
List all link relations.
var data = _links: self: href: '/doe' related: href: 'http://doe.com' href: 'https://twitter.com/doe' var resource = ;console; // ['self', 'related']
HALSONResource#listEmbedRels()
List all link relations.
var data = _embedded: starred: _links: self: href: '/joyent/node' title: "joyent / node" description: "evented I/O for v8 javascript" var resource = ;console; // ['starred']
HALSONResource#getLinks(rel, [filterCallback, [begin, [end]]])
Get all links with relation rel
.
rel
(required): Relation name.filterCallback
(optional): Function used to filter array of links. docbegin
,end
(optional): slice filtered links. doc
var twitterLinks = resource;
HALSONResource#getLink(rel, [filterCallback, [default]])
Get first link with relation rel
.
rel
(required): Relation name.filterCallback
(optional): Function used to filter array of links. docdefault
(optional): Default value if the link does not exist.
var firstRelatedLink = resource;
HALSONResource#getEmbeds(rel, [filterCallback, [begin, [end]]])
Get all embedded resources with relation rel
.
rel
(required): Relation name.filterCallback
(optional): Function used to filter array of embeds. docbegin
,end
(optional): slice filtered links. doc
var embeds = resource;
HALSONResource#getEmbed(rel, [filterCallback, [default]])
Get first embedded resource with relation rel
.
rel
(required): Relation name.filterCallback
(optional): Function used to filter array of embeds. docdefault
(optional): Default value if the link does not exist.
var nodeProject = resource;
HALSONResource#addLink(rel, link)
Add a link with relation rel
.
rel
(required): Relation name.link
(required): Link to be added (string or Object).
resource ;
HALSONResource#addEmbed(rel, embed)
Add a nested resource with relation rel
.
rel
(required): Relation name.embed
(required): Resource to be embedded (Object or HALSONResource).
var embed = _links: self: href: '/joyent/node' title: "joyent / node"resource;
HALSONResource#insertEmbed(rel, index, embed)
Add a nested resource with relation rel
.
rel
(required): Relation name.index
(required): Index number where embed will be insertedembed
(required): Resource to be embedded (Object or HALSONResource).
var embed = _links: self: href: '/joyent/node' title: "joyent / node";resource; // add embed var embed2 = _links: self: href: '/joyent/node' title: "joyent / node";resource; // insert new embed before first item
HALSONResource#removeLinks(rel, [filterCallback])
Remove links with relation rel
. If filterCallback
is not defined, all links with relation rel
will be removed.
rel
(required): Relation name.filterCallback
(optional): Function used to filter array of links. doc
// remove links with relation 'related' and name 'twitter'resource;
HALSONResource#removeEmbeds(rel, [filterCallback])
Remove embedded resources with relation rel
. If filterCallback
is not defined, all embeds with relation rel
will be removed.
rel
(required): Relation name.filterCallback
(optional): Function used to filter array of links. doc
// remove embedded resources with relation 'starred' and self-link '/koajs/koa'resource;