import { AsyncIterableX } from '../asynciterablex' ; import { concat } from '../concat' ; import { whileDo } from '../whiledo' ; import { MonoTypeOperatorAsyncFunction } from '../../interfaces' ; template TSource param { ( ( signal ? : AbortSignal ) => boolean | Promise < boolean > ) } condition returns { MonoTypeOperatorAsyncFunction < TSource > } export function doWhile < TSource > ( condition ) { return function doWhileOperatorFunction ( source ) : AsyncIterableX < TSource > { return concat ( source , whileDo ( source , condition ) ) ; } ; }