| /** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */ |
| import { Observable } from '../Observable'; |
| import { isArray } from '../util/isArray'; |
| import { isFunction } from '../util/isFunction'; |
| import { map } from '../operators/map'; |
| export function fromEventPattern(addHandler, removeHandler, resultSelector) { |
| if (resultSelector) { |
| return fromEventPattern(addHandler, removeHandler).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); |
| } |
| return new Observable(function (subscriber) { |
| var handler = function () { |
| var e = []; |
| for (var _i = 0; _i < arguments.length; _i++) { |
| e[_i] = arguments[_i]; |
| } |
| return subscriber.next(e.length === 1 ? e[0] : e); |
| }; |
| var retValue; |
| try { |
| retValue = addHandler(handler); |
| } |
| catch (err) { |
| subscriber.error(err); |
| return undefined; |
| } |
| if (!isFunction(removeHandler)) { |
| return undefined; |
| } |
| return function () { return removeHandler(handler, retValue); }; |
| }); |
| } |
| //# sourceMappingURL=fromEventPattern.js.map |