src/types/function-types/execute-function.ts
import { Action, AsyncAction } from '../base';
import { FluentAsyncIterable, FluentIterable } from '../base';
export interface ExecuteFunction<T> {
/**
* Translate an iterable into one which executes an action against each element before yield them.<br>
* Examples:<br>
* * `for (const element of fluent(['anchor', 'almond', 'bound', 'alpine']).execute(console.log)) { }` prints *anchor*, *almond*, *bound* and *alpine*
* * `fluent(['anchor', 'almond', 'bound', 'alpine']).execute(console.log).first()` prints *anchor* and returns the string *anchor*
* @param action The action to execute against each element.
* @returns The [[FluentIterable]] with the action injected to it.
*/
(action: Action<T>): FluentIterable<T>;
}
export interface AsyncExecuteFunction<T> {
/**
* Translate an iterable into one which executes an asynchronous action against each element before yield them.
* @param action The asynchronous action to execute against each element.
* @returns The [[FluentAsyncIterable]] with the action injected to it.
*/
(action: AsyncAction<T>): FluentAsyncIterable<T>;
}