import { IterableX } from './iterablex' ; export class OnErrorResumeNextIterable < TSource > extends IterableX < TSource > { private _source : Iterable < Iterable < TSource > > ; constructor ( source ) { super ( ) ; this . _source = source ; } * [ Symbol . iterator ] ( ) { for ( const item of this . _source ) { const it = item [ Symbol . iterator ] ( ) ; while ( 1 ) { let next ; try { next = it . next ( ) ; } catch ( e ) { break ; } if ( next . done ) { break ; } yield next . value ; } } } } template T param { ... Iterable < T > [ ] } args returns { IterableX < T > } export function onErrorResumeNext < T > ( ... source ) { return new OnErrorResumeNextIterable < T > ( source ) ; }