Files
youtube-music/plugins/sponsorblock/segments.ts
JellyBrick 53f5bda382 feat: migration to TypeScript FINAL
Co-authored-by: Su-Yong <simssy2205@gmail.com>
2023-09-04 02:27:53 +09:00

35 lines
803 B
TypeScript

// Segments are an array [ [start, end], … ]
import { Segment } from './types';
export const sortSegments = (segments: Segment[]) => {
segments.sort((segment1, segment2) =>
segment1[0] === segment2[0]
? segment1[1] - segment2[1]
: segment1[0] - segment2[0],
);
const compiledSegments: Segment[] = [];
let currentSegment: Segment | undefined;
for (const segment of segments) {
if (!currentSegment) {
currentSegment = segment;
continue;
}
if (currentSegment[1] < segment[0]) {
compiledSegments.push(currentSegment);
currentSegment = segment;
continue;
}
currentSegment[1] = Math.max(currentSegment[1], segment[1]);
}
if (currentSegment) {
compiledSegments.push(currentSegment);
}
return compiledSegments;
};