From be5b9a514654930281074a09625bd633f7540731 Mon Sep 17 00:00:00 2001 From: Rene Saarsoo Date: Fri, 25 Sep 2020 09:42:55 +0300 Subject: [PATCH] Implement Seconds.add() --- src/Seconds.ts | 4 ++++ src/detectRepeats.ts | 4 ++-- src/stats/totalDuration.ts | 3 +-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/Seconds.ts b/src/Seconds.ts index cd78fda..127bb44 100644 --- a/src/Seconds.ts +++ b/src/Seconds.ts @@ -1,3 +1,7 @@ export class Seconds { constructor(readonly value: number) {} + + add(other: Seconds): Seconds { + return new Seconds(this.value + other.value); + } } diff --git a/src/detectRepeats.ts b/src/detectRepeats.ts index 90d2fa8..9652c1e 100644 --- a/src/detectRepeats.ts +++ b/src/detectRepeats.ts @@ -34,7 +34,7 @@ const countRepetitions = (reference: Interval[], intervals: Interval[], startInd const offsetComments = (interval: Interval, baseOffset: Seconds): Comment[] => { return interval.comments.map(({ offset, ...rest }) => ({ - offset: new Seconds(baseOffset.value + offset.value), + offset: baseOffset.add(offset), ...rest, })); }; @@ -44,7 +44,7 @@ const collectComments = (intervals: Interval[]): Comment[] => { return flatten( intervals.map((interval) => { const comments = offsetComments(interval, previousIntervalsDuration); - previousIntervalsDuration = new Seconds(previousIntervalsDuration.value + interval.duration.value); + previousIntervalsDuration = previousIntervalsDuration.add(interval.duration); return comments; }), ); diff --git a/src/stats/totalDuration.ts b/src/stats/totalDuration.ts index f901768..284ca74 100644 --- a/src/stats/totalDuration.ts +++ b/src/stats/totalDuration.ts @@ -1,6 +1,5 @@ -import { map, sum } from "ramda"; import { Interval } from "../ast"; import { Seconds } from "../Seconds"; export const totalDuration = (intervals: Interval[]): Seconds => - new Seconds(sum(map((interval) => interval.duration.value, intervals))); + intervals.reduce((total, interval) => total.add(interval.duration), new Seconds(0));