import { IEnumerable, IEnumerableFactory } from '../../types'; export function applyDefaultIfEmpty( factory: IEnumerableFactory, src: Iterable, defaultItem: TSource ): IEnumerable { function* generator(): Generator { let returnDefault = true; for (const item of src) { returnDefault = false; yield item; } if (returnDefault) { yield defaultItem; } } return factory.createBasicEnumerable(generator); }