| import { OperatorFunction } from "../types"; |
| import { map } from "../operators/map"; |
| |
| const { isArray } = Array; |
| |
| function callOrApply<T, R>(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<T, R>(fn: ((...values: T[]) => R)): OperatorFunction<T|T[], R> { |
| return map(args => callOrApply(fn, args)) |
| } |