diff options
Diffstat (limited to 'node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts')
| -rw-r--r-- | node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts b/node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts new file mode 100644 index 0000000..ded1420 --- /dev/null +++ b/node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts @@ -0,0 +1,16 @@ +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)) +}
\ No newline at end of file |
