README.md
# HATEOAS-link-resolver
![build](https://github.com/footageone/HATEOAS-link-resolver/actions/workflows/build.yml/badge.svg)
[![Maintainability](https://api.codeclimate.com/v1/badges/ef5099936ee4de8a26d4/maintainability)](https://codeclimate.com/github/footageone/HATEOAS-link-resolver/maintainability)
[![Test Coverage](https://api.codeclimate.com/v1/badges/ef5099936ee4de8a26d4/test_coverage)](https://codeclimate.com/github/footageone/HATEOAS-link-resolver/test_coverage)
Small helper library for resolving templated HATEOAS links
## Install
Use your favourite package manager
``npm i -S hateoas-link-resolver``
or
``yarn add hateoas-link-resolver``
## Usage
Just resolve templated links
````javascript
import { resolve } from 'hateoas-link-resolver';
const templatedLink = 'https://example.org/{id}/sub';
const resolvedLink = resolve(link, {id: '123'});
````
Use Link repository. Put all link into repository and then
retrieve from there and resolve
````javascript
import { LinkRepository } from 'hateoas-link-resolver';
const links = {
endpoint1: {
href: "https://example.org/{id}",
templated: true
},
endpoint2: {
href: "https://example.org/path/{id}",
templated: true
}
};
const repo = new LinkRepository(links);
// resolve
repo.resolve('endpoint1', {id: '123'});
// check existence
repo.has('endpoint1');
// get unresolved link
repo.get('endpoint1');
````
## Limitations
This helper is for rather simple link structures and does not support list of links.
## Alternatives
If you need resolving of list of links you might want to try [hateoas-hal-link-resolver](https://github.com/just-paja/hateoas-hal-link-resolver)