Commit 79f67e82 authored by Guillaume Perréal's avatar Guillaume Perréal
Browse files

Définit des constants pour les propriétés intéressantes des collections.

parent 75f90706
......@@ -14,6 +14,16 @@ export const IRI_PROPERTY = '@id';
*/
export const TYPE_PROPERTY = '@type';
/**
* Nom de la propriété contenant les resource d'une collection.
*/
export const COLLECTION_MEMBERS = 'hydra:member';
/**
* Nom de la propriété contenant le nombre total d'objet d'une collection.
*/
export const COLLECTION_TOTAL_COUNT = 'hydra:totalItems';
/**
* IRI typé.
*
......@@ -41,9 +51,25 @@ export interface Resource {
/**
* Collection représente une collection de respoucres JSON-LD pour un type T donné.
*/
export interface Collection<R> {
'hydra:member': R[];
'hydra:totalItems': number;
export interface Collection<R extends Resource> {
[COLLECTION_MEMBERS]: R[];
[COLLECTION_TOTAL_COUNT]: number;
[property: string]: any;
}
/**
* Retourne les membres d'une collection.
*/
export function getCollectionMembers<R extends Resource>(collection: Collection<R>): R[] {
return collection[COLLECTION_MEMBERS];
}
/**
* Retourne le nombre total d'items
* @param collection
*/
export function getCollectionTotalCount<R extends Resource>(collection: Collection<R>): number {
return collection[COLLECTION_TOTAL_COUNT];
}
/**
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment