UNPKG

@utilify/core

Version:

Modern, strongly typed, and safe utility function library for JavaScript and TypeScript. Includes type checking, manipulation of arrays, objects, strings, dates, colors, numbers, regular expressions, and more. Compatible with Browser, Node.js, Deno, and B

24 lines 923 B
/** * @callback LockCallback * @returns {Promise<any>} The async function to lock. */ /** * Options for lock. * @typedef {Object} LockOptions * @property {boolean} [queue] * @property {() => void|Promise<void>} [onLocked] * @property {(error: unknown) => void|Promise<void>} [onError] */ /** * Ensures only one async function runs at a time, with optional queueing. * @template T * @param {LockCallback} callback - The async function to lock. * @param {LockOptions} [options] - Lock configuration. * @returns {(...args: Parameters<T>) => Promise<ReturnType<T> | void>} The locked function. */ export default function lock<T extends (...args: any[]) => Promise<any>>(callback: T, options?: { queue?: boolean; onLocked?: () => void | Promise<void>; onError?: (error: unknown) => void | Promise<void>; }): (...args: Parameters<T>) => Promise<ReturnType<T> | void>; //# sourceMappingURL=lock.d.ts.map