From 0882512b8160a73f1f1626c058dbe9dbac0fa83e Mon Sep 17 00:00:00 2001 From: Caleb German Date: Thu, 8 Feb 2024 12:54:26 -0600 Subject: [PATCH] Now using util functions from utils --- .../widgets/VersionCompareSelectWidget.tsx | 53 +------------------ 1 file changed, 1 insertion(+), 52 deletions(-) diff --git a/packages/changed-elements-react/src/widgets/VersionCompareSelectWidget.tsx b/packages/changed-elements-react/src/widgets/VersionCompareSelectWidget.tsx index 6d42667e..f9f14243 100644 --- a/packages/changed-elements-react/src/widgets/VersionCompareSelectWidget.tsx +++ b/packages/changed-elements-react/src/widgets/VersionCompareSelectWidget.tsx @@ -18,6 +18,7 @@ import { VersionCompare } from "../api/VersionCompare.js"; import { Changeset, NamedVersion } from "../clients/iModelsClient.js"; import "./VersionCompareSelectWidget.scss"; +import { splitBeforeEach, flatten, map, skip } from "../utils/utils.js"; /** Options for VersionCompareSelectComponent. */ export interface VersionCompareSelectorProps { @@ -352,58 +353,6 @@ function usePagedNamedVersionLoader( return result; } -async function* map(iterable: AsyncIterable, transform: (value: T) => U): AsyncGenerator { - for await (const value of iterable) { - yield transform(value); - } -} - -async function* flatten(iterable: AsyncIterable): AsyncGenerator { - for await (const values of iterable) { - for (const value of values) { - yield value; - } - } -} - -async function* splitBeforeEach( - iterable: AsyncIterable, - selector: (value: T) => U, - markers: U[], -): AsyncGenerator { - let accumulator: T[] = []; - let currentMarkerIndex = 0; - for await (const value of iterable) { - if (currentMarkerIndex !== markers.length && selector(value) === markers[currentMarkerIndex]) { - yield accumulator; - accumulator = []; - ++currentMarkerIndex; - } - - accumulator.push(value); - } - - yield accumulator; -} - -async function* skip(iterable: AsyncIterable, n: number): AsyncGenerator { - const iterator = iterable[Symbol.asyncIterator](); - for (let i = 0; i < n; ++i) { - const result = await iterator.next(); - if (result.done) { - return result.value; - } - } - - let result = await iterator.next(); - while (!result.done) { - yield result.value; - result = await iterator.next(); - } - - return result.value; -} - enum VersionProcessedState { Verifying, Processed,