UNPKG

@jalik/hal

Version:

Hypertext Application Language toolbox

92 lines 2.69 kB
export type HalLink = { deprecation?: string; href: string; hreflang?: string; name?: string; profile?: string; templated?: boolean; title?: string; type?: string; }; type Links = Record<string, HalLink | HalLink[]>; export type HalLinks<L extends Links = Record<string, never>> = L & { curies?: HalLink[]; self?: HalLink; }; export type HalDocument<E, L extends Links = Links> = { _embedded?: E; _links?: HalLinks<L>; }; export type HalResource<R, E = any, L extends Links = Links> = R & HalDocument<E, L>; export type HalPage = { number: number; size: number; totalElements: number; totalPages: number; }; export type HalPageLinks = HalLinks<{ first?: HalLink; last?: HalLink; next?: HalLink; prev?: HalLink; }>; export type HalPagedResource<E> = HalResource<{ page?: HalPage; }, E, HalPageLinks>; /** * Creates a paged HAL resource. * @param embedded * @param page * @param links */ export declare function createHalPagedResource<E>(embedded: E, page: HalPage, links?: HalPageLinks): HalPagedResource<E>; /** * Creates an HAL resource. * @param resource * @param embedded * @param links */ export declare function createHalResource<R, E, L extends Links = Links>(resource: R, embedded?: E, links?: L): HalResource<R, E, L>; /** * Returns embedded from an HAL document. * @param doc */ export declare function getHalEmbedded<E, L extends Links>(doc: HalDocument<E, L>): E | undefined; /** * Returns links from an HAL document. * @param doc */ export declare function getHalLinks<E, L extends Links>(doc: HalDocument<E, L>): L | undefined; /** * Returns a specific link from an HAL document. * @param doc * @param link */ export declare function getHalLink<E, L extends Links>(doc: HalDocument<E, L>, link: keyof L): HalLinks<L>[keyof L] | undefined; /** * Returns page from an HAL document. * @param doc */ export declare function getHalPage<E>(doc: HalPagedResource<E>): HalPage | undefined; /** * Returns page number from an HAL document. * @param doc */ export declare function getHalPageNumber<E>(doc: HalPagedResource<E>): number | undefined; /** * Returns page size from an HAL document. * @param doc */ export declare function getHalPageSize<E>(doc: HalPagedResource<E>): number | undefined; /** * Returns total elements from an HAL document. * @param doc */ export declare function getHalPageTotalElements<E>(doc: HalPagedResource<E>): number | undefined; /** * Returns total pages from an HAL document. * @param doc */ export declare function getHalPageTotalPages<E>(doc: HalPagedResource<E>): number | undefined; export {}; //# sourceMappingURL=index.d.ts.map