-// eslint-disable-next-line @typescript-eslint/no-explicit-any
-export const once = <T, A extends any[], R>(
- fn: (...args: A) => R,
- context: T
-): ((...args: A) => R) => {
- let result: R
- return (...args: A) => {
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
- if (fn != null) {
- result = fn.apply<T, A, R>(context, args)
- ;(fn as unknown as undefined) = (context as unknown as undefined) = undefined
- }
- return result
- }
-}
-
-export const min = (...args: number[]): number =>
- args.reduce((minimum, num) => (minimum < num ? minimum : num), Infinity)
-
-export const max = (...args: number[]): number =>
- args.reduce((maximum, num) => (maximum > num ? maximum : num), -Infinity)
-