Napolean Paced Mischeviously

    function-timeout
    TypeScript icon, indicating that this package has built-in type declarations

    0.1.1 • Public • Published

    function-timeout

    Make a synchronous function have a timeout

    This can be useful if you accept external data and want to ensure processing it does not take too long.

    The timeout only works in Node.js. When used in a browser, the function will be wrapped, but never time out.

    I have a different package to prevent ReDoS for regexes.

    Install

    npm install function-timeout

    Usage

    import functionTimeout, {isTimeoutError} from 'function-timeout';
    
    const generateNumbers = count => {
    	// Imagine this takes a long time.
    };
    
    const generateNumbersWithTimeout = functionTimeout(generateNumbers, {timeout: 100});
    
    try {
    	console.log(generateNumbersWithTimeout(500));
    } catch (error) {
    	if (isTimeoutError(error)) {
    		console.error('Timed out');
    	} else {
    		throw error;
    	}
    }

    API

    functionTimeout(function, options?)

    Returns a wrapped version of the given function that throws a timeout error if the execution takes longer than the given timeout.

    options

    Type: object

    timeout?

    Type: number (integer)

    The time in milliseconds to wait before timing out.

    Keep in mind that execution time can vary between different hardware and Node.js versions. Set a generous timeout to avoid flakiness.

    isTimeoutError(error)

    Returns a boolean for whether the given error is a timeout error.

    Related

    • super-regex - Make a regular expression time out if it takes too long to execute
    • p-timeout - Timeout a promise after a certain amount of time

    Install

    npm i function-timeout

    DownloadsWeekly Downloads

    13,141

    Version

    0.1.1

    License

    MIT

    Unpacked Size

    5.88 kB

    Total Files

    6

    Last publish

    Collaborators

    • sindresorhus