@ngrx/core
Version:
Core operators and utiliies for the ngrx platform
110 lines (103 loc) • 4.45 kB
JavaScript
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('rxjs/Subscriber'), require('rxjs/operator/pluck'), require('rxjs/operator/map'), require('rxjs/operator/distinctUntilChanged')) :
typeof define === 'function' && define.amd ? define(['exports', 'rxjs/Subscriber', 'rxjs/operator/pluck', 'rxjs/operator/map', 'rxjs/operator/distinctUntilChanged'], factory) :
(factory((global.ngrx = global.ngrx || {}, global.ngrx.core = global.ngrx.core || {}),global.Rx,global.Rx.Observable.prototype,global.Rx.Observable.prototype,global.Rx.Observable.prototype));
}(this, (function (exports,rxjs_Subscriber,rxjs_operator_pluck,rxjs_operator_map,rxjs_operator_distinctUntilChanged) { 'use strict';
var __extends = (undefined && undefined.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
function enterZone(zone) {
return this.lift(new EnterZoneOperator(zone));
}
var EnterZoneOperator = (function () {
function EnterZoneOperator(_zone) {
this._zone = _zone;
}
EnterZoneOperator.prototype.call = function (subscriber, source) {
return source._subscribe(new EnterZoneSubscriber(subscriber, this._zone));
};
return EnterZoneOperator;
}());
var EnterZoneSubscriber = (function (_super) {
__extends(EnterZoneSubscriber, _super);
function EnterZoneSubscriber(destination, _zone) {
_super.call(this, destination);
this._zone = _zone;
}
EnterZoneSubscriber.prototype._next = function (value) {
var _this = this;
this._zone.run(function () { return _this.destination.next(value); });
};
return EnterZoneSubscriber;
}(rxjs_Subscriber.Subscriber));
var __extends$1 = (undefined && undefined.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
function leaveZone(zone) {
return this.lift(new LeaveZoneOperator(zone));
}
var LeaveZoneOperator = (function () {
function LeaveZoneOperator(_zone) {
this._zone = _zone;
}
LeaveZoneOperator.prototype.call = function (subscriber, source) {
return source._subscribe(new LeaveZoneSubscriber(subscriber, this._zone));
};
return LeaveZoneOperator;
}());
var LeaveZoneSubscriber = (function (_super) {
__extends$1(LeaveZoneSubscriber, _super);
function LeaveZoneSubscriber(destination, _zone) {
_super.call(this, destination);
this._zone = _zone;
}
LeaveZoneSubscriber.prototype._next = function (value) {
var _this = this;
this._zone.runOutsideAngular(function () { return _this.destination.next(value); });
};
return LeaveZoneSubscriber;
}(rxjs_Subscriber.Subscriber));
function select(pathOrMapFn) {
var paths = [];
for (var _i = 1; _i < arguments.length; _i++) {
paths[_i - 1] = arguments[_i];
}
var mapped$;
if (typeof pathOrMapFn === 'string') {
mapped$ = rxjs_operator_pluck.pluck.call.apply(rxjs_operator_pluck.pluck, [this, pathOrMapFn].concat(paths));
}
else if (typeof pathOrMapFn === 'function') {
mapped$ = rxjs_operator_map.map.call(this, pathOrMapFn);
}
else {
throw new TypeError(("Unexpected type " + typeof pathOrMapFn + " in select operator,")
+ " expected 'string' or 'function'");
}
return rxjs_operator_distinctUntilChanged.distinctUntilChanged.call(mapped$);
}
var compose = function () {
var functions = [];
for (var _i = 0; _i < arguments.length; _i++) {
functions[_i - 0] = arguments[_i];
}
return function (arg) {
if (functions.length === 0) {
return arg;
}
var last = functions[functions.length - 1];
var rest = functions.slice(0, -1);
return rest.reduceRight(function (composed, fn) { return fn(composed); }, last(arg));
};
};
exports.enterZone = enterZone;
exports.EnterZoneOperator = EnterZoneOperator;
exports.leaveZone = leaveZone;
exports.LeaveZoneOperator = LeaveZoneOperator;
exports.select = select;
exports.compose = compose;
Object.defineProperty(exports, '__esModule', { value: true });
})));