diff --git a/extensions/git/src/iterators.ts b/extensions/git/src/iterators.ts deleted file mode 100644 index 3b0f741f310..00000000000 --- a/extensions/git/src/iterators.ts +++ /dev/null @@ -1,57 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -'use strict'; - -function* filter(it: IterableIterator, condition: (t: T, i: number) => boolean): IterableIterator { - let i = 0; - for (let t of it) { - if (condition(t, i++)) { - yield t; - } - } -} - -function* map(it: IterableIterator, fn: (t: T, i: number) => R): IterableIterator { - let i = 0; - for (let t of it) { - yield fn(t, i++); - } -} - -export interface FunctionalIterator extends Iterable { - filter(condition: (t: T, i: number) => boolean): FunctionalIterator; - map(fn: (t: T, i: number) => R): FunctionalIterator; - toArray(): T[]; -} - -class FunctionalIteratorImpl implements FunctionalIterator { - - constructor(private iterator: IterableIterator) { } - - filter(condition: (t: T, i: number) => boolean): FunctionalIterator { - return new FunctionalIteratorImpl(filter(this.iterator, condition)); - } - - map(fn: (t: T, i: number) => R): FunctionalIterator { - return new FunctionalIteratorImpl(map(this.iterator, fn)); - } - - toArray(): T[] { - return Array.from(this.iterator); - } - - [Symbol.iterator](): IterableIterator { - return this.iterator; - } -} - -export function iterate(obj: T[] | IterableIterator): FunctionalIterator { - if (Array.isArray(obj)) { - return new FunctionalIteratorImpl(obj[Symbol.iterator]()); - } - - return new FunctionalIteratorImpl(obj); -} \ No newline at end of file