Extract and store hal previous and next links.
npm install halster
var halster = require('halster');
var links = halster({
default: function() {
return 'http://mysite.com/api';
},
previous: function(val) {
return 'http://mysite.com/api?until=' + val;
},
next: function(val) {
return 'http://mysite.com/api?from=' + val;
},
normalize: function(val) {
return val.splice(13)[1];
}
});
links.set({
_links: {
previous: {
url: 'until=12345677'
},
next: {
url: 'from=12345677'
}
}
});
links.get({previous: true});
// => 'http://mysite.com/api?until=12345677'
Create a new halster instance. Takes an object of arguments. default is the
default link to use if no previous or next were given. If previous or
default are given the links are passed down to burl and handled
there. The normalize link functions the same as in burl, converting urls
into integers that can be compared to determine the newest / oldest link.
Optionally you can also set invert: true to flip next and previous.
var halster = require('halster');
var links = halster({
default: function() {
return 'http://mysite.com/api';
},
previous: function(val) {
return 'http://mysite.com/api?until=' + val;
},
next: function(val) {
return 'http://mysite.com/api?from=' + val;
},
normalize: function(val) {
return val.splice(13)[1];
}
});
Pass in an object with a links / _links property and save the correct link
within halster.
links.set({
_links: {
previous: {
url: 'until=12345677'
},
next: {
url: 'from=12345677'
}
}
});
Get an url. Can be passed an object with either next or previous set to true
for the corresponding link. If no argument is provided the default link will be
returned.
links.get({previous: true});
// => 'http://mysite.com/api?until=12345677'
links.get();
// => 'http://mysite.com/api'