teidesu-scripts/utils/counter.ts
2025-03-08 08:19:53 +00:00

25 lines
461 B
TypeScript

export function counterIter(start = 0, end = Infinity) {
let i = start
let ended = false
const iter: IterableIterator<number> = {
[Symbol.iterator]: () => iter,
next() {
if (ended) {
return { value: undefined, done: true }
}
if (i > end) {
return { value: undefined, done: true }
}
return { value: i++, done: false }
},
}
return {
iter,
end: () => {
ended = true
},
}
}