@edsilv/exjs
Version:
Extension library
24 lines (23 loc) • 772 B
text/typescript
namespace exjs {
export function en<T>(enu: IEnumerable<T>): IEnumerableEx<T> {
var x = new Enumerable<T>();
x.getEnumerator = function (): IEnumerator<T> {
return wrapEnumerator<T>(enu);
};
return <IEnumerableEx<T>>x;
}
function wrapEnumerator<T>(enu: IEnumerable<T>): IEnumerator<T> {
var wrapped = enu.getEnumerator();
var x = <IEnumerator<T>>{ current: undefined, moveNext: undefined };
x.moveNext = function (): boolean {
if (wrapped.moveNext()) {
x.current = wrapped.current;
return true;
}
x.current = undefined;
return false;
};
return x;
}
}
var ex = exjs.en;