From 0af094770c4ebabc56ff761a8bd215bc397c0f7e Mon Sep 17 00:00:00 2001 From: João Augusto Costa Branco Marado Torres Date: Tue, 5 Aug 2025 18:50:37 +0100 Subject: refactor: reading page review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: João Augusto Costa Branco Marado Torres --- src/utils/iterator.ts | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'src/utils/iterator.ts') diff --git a/src/utils/iterator.ts b/src/utils/iterator.ts index fa58fc9..43437b6 100644 --- a/src/utils/iterator.ts +++ b/src/utils/iterator.ts @@ -50,3 +50,30 @@ export async function findMapAsync( return await tryNext(0); } + +export function createRanges(nums: Iterable): string[] { + const ns = new Set(nums).values().toArray().sort(( + a, + b, + ) => a - b); + + const result = []; + let start = ns[0]; + let end = ns[0]; + + for (let i = 1; i <= ns.length; i++) { + if (ns[i] === end + 1) { + end = ns[i]; + } else { + if (start === end) { + result.push(`${start}`); + } else { + result.push(`${start}-${end}`); + } + start = ns[i]; + end = ns[i]; + } + } + + return result; +} -- cgit v1.2.3