mirror of
https://github.com/toss/es-toolkit.git
synced 2024-11-28 03:34:26 +03:00
0c6f7c95f1
* feat(before): Add before function * feat(before): Add before test code * feat(before): Add before docs * feat(before): Add before benchmarks --------- Co-authored-by: Sojin Park <raon0211@toss.im>
1.0 KiB
1.0 KiB
before
Creates a new function that limits the number of times the given function (func
) can be called.
Signature
function before<F extends (...args: any[]) => any>(n: number, func: F): F;
Parameters
n
(number
): The number of times the returned function is allowed to callfunc
before stopping.- If
n
is 0,func
will not be called. - If
n
is a positive integer,func
will be called up ton-1
times.
- If
func
(F
): The function to be called with the limit applied.
Returns
(F
): A new function that:
- Tracks the number of calls.
- Invokes
func
until then-1
-th call. - Returns
undefined
if the number of calls reaches or exceedsn
, stopping further calls.
Error
Throws an error if n
is negative.
Example
import { before } from 'es-toolkit/function';
const beforeFn = before(3, () => {
console.log('called');
});
// Will log 'called'.
beforeFn();
// Will log 'called'.
beforeFn();
// Will not log anything.
beforeFn();