@jalik/hal
Version:
Hypertext Application Language toolbox
99 lines • 1.91 kB
JavaScript
/*
* The MIT License (MIT)
* Copyright (c) 2024 Karl STEIN
*/
/**
* Creates a paged HAL resource.
* @param embedded
* @param page
* @param links
*/
export function createHalPagedResource(embedded, page, links) {
const res = {
page,
_embedded: embedded,
_links: links
};
if (links == null) {
delete res._links;
}
return res;
}
/**
* Creates an HAL resource.
* @param resource
* @param embedded
* @param links
*/
export function createHalResource(resource, embedded, links) {
const res = {
...resource,
_embedded: embedded,
_links: links
};
if (embedded == null) {
delete res._embedded;
}
if (links == null) {
delete res._links;
}
return res;
}
/**
* Returns embedded from an HAL document.
* @param doc
*/
export function getHalEmbedded(doc) {
return doc._embedded;
}
/**
* Returns links from an HAL document.
* @param doc
*/
export function getHalLinks(doc) {
return doc._links;
}
/**
* Returns a specific link from an HAL document.
* @param doc
* @param link
*/
export function getHalLink(doc, link) {
return doc._links?.[link];
}
/**
* Returns page from an HAL document.
* @param doc
*/
export function getHalPage(doc) {
return doc.page;
}
/**
* Returns page number from an HAL document.
* @param doc
*/
export function getHalPageNumber(doc) {
return doc.page?.number;
}
/**
* Returns page size from an HAL document.
* @param doc
*/
export function getHalPageSize(doc) {
return doc.page?.size;
}
/**
* Returns total elements from an HAL document.
* @param doc
*/
export function getHalPageTotalElements(doc) {
return doc.page?.totalElements;
}
/**
* Returns total pages from an HAL document.
* @param doc
*/
export function getHalPageTotalPages(doc) {
return doc.page?.totalPages;
}
//# sourceMappingURL=index.js.map