"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var empty_1 = require("./observable/empty"); var of_1 = require("./observable/of"); var throwError_1 = require("./observable/throwError"); var NotificationKind; (function (NotificationKind) { NotificationKind["NEXT"] = "N"; NotificationKind["ERROR"] = "E"; NotificationKind["COMPLETE"] = "C"; })(NotificationKind = exports.NotificationKind || (exports.NotificationKind = {})); var Notification = (function () { function Notification(kind, value, error) { this.kind = kind; this.value = value; this.error = error; this.hasValue = kind === "N"; } Notification.prototype.observe = function (observer) { switch (this.kind) { case "N": return observer.next && observer.next(this.value); case "E": return observer.error && observer.error(this.error); case "C": return observer.complete && observer.complete(); } }; Notification.prototype.do = function (next, error, complete) { var kind = this.kind; switch (kind) { case "N": return next && next(this.value); case "E": return error && error(this.error); case "C": return complete && complete(); } }; Notification.prototype.accept = function (nextOrObserver, error, complete) { if (nextOrObserver && typeof nextOrObserver.next === 'function') { return this.observe(nextOrObserver); } else { return this.do(nextOrObserver, error, complete); } }; Notification.prototype.toObservable = function () { var kind = this.kind; switch (kind) { case "N": return of_1.of(this.value); case "E": return throwError_1.throwError(this.error); case "C": return empty_1.empty(); } throw new Error('unexpected notification kind value'); }; Notification.createNext = function (value) { if (typeof value !== 'undefined') { return new Notification("N", value); } return Notification.undefinedValueNotification; }; Notification.createError = function (err) { return new Notification("E", undefined, err); }; Notification.createComplete = function () { return Notification.completeNotification; }; Notification.completeNotification = new Notification("C"); Notification.undefinedValueNotification = new Notification("N", undefined); return Notification; }()); exports.Notification = Notification; //# sourceMappingURL=Notification.js.map