# before Creates a new function that limits the number of times the given function (`func`) can be called. ## Signature ```typescript function before any>(n: number, func: F): F; ``` ### Parameters - `n` (`number`): The number of times the returned function is allowed to call `func` before stopping. - If `n` is 0, `func` will not be called. - If `n` is a positive integer, `func` will be called up to `n-1` times. - `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 the `n-1`-th call. - Returns `undefined` if the number of calls reaches or exceeds `n`, stopping further calls. ### Error Throws an error if `n` is negative. ## Example ```typescript 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(); ```