import { OperatorFunction } from "../types"; import { map } from "../operators/map"; const { isArray } = Array; function callOrApply(fn: ((...values: T[]) => R), args: T|T[]): R { return isArray(args) ? fn(...args) : fn(args); } /** * Used in several -- mostly deprecated -- situations where we need to * apply a list of arguments or a single argument to a result selector. */ export function mapOneOrManyArgs(fn: ((...values: T[]) => R)): OperatorFunction { return map(args => callOrApply(fn, args)) }