/**
* Returns safe host OS optimized estimate of the default amount of parallelism a pool should use.
* Always returns a value greater than zero.
- *
* @returns The host OS optimized maximum pool size.
*/
export const availableParallelism = (): number => {
/**
* Sleeps for the given amount of milliseconds.
- *
* @param ms - The amount of milliseconds to sleep.
* @returns A promise that resolves after the given amount of milliseconds.
* @internal
/**
* Computes the retry delay in milliseconds using an exponential back off algorithm.
- *
* @param retryNumber - The number of retries that have already been attempted
* @param delayFactor - The base delay factor in milliseconds
* @returns Delay in milliseconds
/**
* Computes the average of the given data set.
- *
* @param dataSet - Data set.
* @returns The average of the given data set.
* @internal
/**
* Computes the median of the given data set.
- *
* @param dataSet - Data set.
* @returns The median of the given data set.
* @internal
/**
* Rounds the given number to the given scale.
* The rounding is done using the "round half away from zero" method.
- *
* @param num - The number to round.
* @param scale - The scale to round to.
* @returns The rounded number.
/**
* Is the given value a plain object?
- *
* @param value - The value to check.
* @returns `true` if the given value is a plain object, `false` otherwise.
* @internal
/**
* Detects whether the given value is a kill behavior or not.
- *
* @typeParam KB - Which specific KillBehavior type to test against.
* @param killBehavior - Which kind of kill behavior to detect.
* @param value - Unknown value.
/**
* Detects whether the given value is an asynchronous function or not.
- *
* @param fn - Unknown value.
* @returns `true` if `fn` was an asynchronous function, otherwise `false`.
* @internal
/**
* Generates a cryptographically secure random number in the [0,1[ range
- *
* @returns A number in the [0,1[ range
* @internal
*/
/**
* Returns the minimum of the given numbers.
- * If no numbers are given, `Infinity` is returned.
- *
+ * If no numbers are given, `Number.POSITIVE_INFINITY` is returned.
* @param args - The numbers to get the minimum of.
* @returns The minimum of the given numbers.
* @internal
*/
export const min = (...args: number[]): number =>
- args.reduce((minimum, num) => (minimum < num ? minimum : num), Infinity)
+ args.reduce(
+ (minimum, num) => (minimum < num ? minimum : num),
+ Number.POSITIVE_INFINITY
+ )
/**
* Returns the maximum of the given numbers.
- * If no numbers are given, `-Infinity` is returned.
- *
+ * If no numbers are given, `Number.NEGATIVE_INFINITY` is returned.
* @param args - The numbers to get the maximum of.
* @returns The maximum of the given numbers.
* @internal
*/
export const max = (...args: number[]): number =>
- args.reduce((maximum, num) => (maximum > num ? maximum : num), -Infinity)
+ args.reduce(
+ (maximum, num) => (maximum > num ? maximum : num),
+ Number.NEGATIVE_INFINITY
+ )
/**
* Wraps a function so that it can only be called once.
- *
* @param fn - The function to wrap.
* @param context - The context to bind the function to.
* @returns The wrapped function.
- *
* @typeParam A - The function's arguments.
* @typeParam R - The function's return value.
* @typeParam C - The function's context.
return {
name,
...(taskFunctionObject?.priority != null && {
- priority: taskFunctionObject.priority
+ priority: taskFunctionObject.priority,
}),
...(taskFunctionObject?.strategy != null && {
- strategy: taskFunctionObject.strategy
- })
+ strategy: taskFunctionObject.strategy,
+ }),
}
}