All files / app/model page.ts

100% Statements 10/10
100% Branches 2/2
100% Functions 4/4
100% Lines 9/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34                    158x 31x 3x 3x 58x   3x       158x 158x 33x                      
export interface Page<T> {
  content: T[];
  page: {
    number: number;
    size: number;
    totalElements: number;
    totalPages: number;
  };
}
 
export function mapPage<T>(contentMapper: (obj: any) => T): (obj: any) => Page<T> {
  return function(obj: any) {
    const page = obj as Page<any>;
    for (let i = 0; i < page.content.length; i++) {
      page.content[i] = contentMapper(page.content[i]);
    }
    return page;
  };
}
 
export namespace Page {
  export function of<T>(content: T[]): Page<T> {
    return {
      content,
      page: {
        number: 0,
        size: content.length,
        totalPages: 1,
        totalElements: content.length,
      },
    };
  }
}