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.

Showing with 29 additions and 3 deletions
+29 -3
...@@ -14,6 +14,16 @@ export const IRI_PROPERTY = '@id'; ...@@ -14,6 +14,16 @@ export const IRI_PROPERTY = '@id';
*/ */
export const TYPE_PROPERTY = '@type'; 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é. * IRI typé.
* *
...@@ -41,9 +51,25 @@ export interface Resource { ...@@ -41,9 +51,25 @@ export interface Resource {
/** /**
* Collection représente une collection de respoucres JSON-LD pour un type T donné. * Collection représente une collection de respoucres JSON-LD pour un type T donné.
*/ */
export interface Collection<R> { export interface Collection<R extends Resource> {
'hydra:member': R[]; [COLLECTION_MEMBERS]: R[];
'hydra:totalItems': number; [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];
} }
/** /**
......
Supports Markdown
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