open-learning-exchange/planet

View on GitHub
src/app/manager-dashboard/reports/time.pipe.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
  name: 'time'
})
export class TimePipe implements PipeTransform {
  // converts time in ms to hh:mm:ss
  transform(time: number) {
    const calcTime = (totalTime: number, timeText: string = '', conversion: number = 2) => {
      const divisor = (1000 * Math.pow(60, conversion));
      const newTimeText = `${timeText}${Math.floor(totalTime / divisor).toFixed(0).padStart(2, '0')}${conversion > 0 ? ':' : ''}`;
      const newTime = totalTime % divisor;
      if (conversion === 0) {
        return newTimeText;
      }
      return calcTime(newTime, newTimeText, conversion - 1);
    };
    return calcTime(time || 0);
  }
}