844d55fb2072b4effbc1c4b4bc5960c9fa4e4f0cda2ebc439c93da8adcf83cfbdcc65159dffe54a14709c9997c6d50265acdbc89f124401828543cf9ebe9f7 539 B

12345678910111213141516
  1. import { OperatorFunction } from "../types";
  2. import { map } from "../operators/map";
  3. const { isArray } = Array;
  4. function callOrApply<T, R>(fn: ((...values: T[]) => R), args: T|T[]): R {
  5. return isArray(args) ? fn(...args) : fn(args);
  6. }
  7. /**
  8. * Used in several -- mostly deprecated -- situations where we need to
  9. * apply a list of arguments or a single argument to a result selector.
  10. */
  11. export function mapOneOrManyArgs<T, R>(fn: ((...values: T[]) => R)): OperatorFunction<T|T[], R> {
  12. return map(args => callOrApply(fn, args))
  13. }