UNPKG

@softwareventures/maintain-project

Version:

Automatically create and maintain TypeScript projects with standard settings for Software Ventures Limited

70 lines 2.01 kB
export async function* filter(iterable, predicate) { for await (const element of iterable) { if (await predicate(element)) { yield element; } } } export function asyncFilter(iterable, predicate) { return filter(iterable, predicate); } export function filterFn(predicate) { return iterable => filter(iterable, predicate); } export function asyncFilterFn(predicate) { return filterFn(predicate); } export function exclude(iterable, predicate) { return filter(iterable, async (element) => !(await predicate(element))); } export const asyncExclude = exclude; export function excludeFn(predicate) { return iterable => exclude(iterable, predicate); } export const asyncExcludeFn = excludeFn; export async function* excludeNull(iterable) { for await (const element of iterable) { if (element != null) { yield element; } } } export const asyncExcludeNull = excludeNull; export async function* map(iterable, f) { for await (const element of iterable) { yield await f(element); } } export const asyncMap = map; export function mapFn(f) { return iterable => map(iterable, f); } export const asyncMapFn = mapFn; export async function* asyncConcatMap(iterable, f) { for await (const a of iterable) { for await (const b of f(a)) { yield b; } } } export function asyncConcatMapFn(f) { return iterable => asyncConcatMap(iterable, f); } export async function asyncFold(iterable, f, initial) { let accumulator = initial; for await (const element of iterable) { accumulator = await f(accumulator, element); } return accumulator; } export function asyncFoldFn(f, initial) { return async (iterable) => asyncFold(iterable, f, initial); } export async function combineAsync(iterable) { const result = []; for await (const element of iterable) { result.push(element); } return result; } //# sourceMappingURL=async-iterable.js.map