UNPKG

2.79 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var empty_1 = require("./observable/empty");
4var of_1 = require("./observable/of");
5var throwError_1 = require("./observable/throwError");
6var NotificationKind;
7(function (NotificationKind) {
8 NotificationKind["NEXT"] = "N";
9 NotificationKind["ERROR"] = "E";
10 NotificationKind["COMPLETE"] = "C";
11})(NotificationKind = exports.NotificationKind || (exports.NotificationKind = {}));
12var Notification = (function () {
13 function Notification(kind, value, error) {
14 this.kind = kind;
15 this.value = value;
16 this.error = error;
17 this.hasValue = kind === "N";
18 }
19 Notification.prototype.observe = function (observer) {
20 switch (this.kind) {
21 case "N":
22 return observer.next && observer.next(this.value);
23 case "E":
24 return observer.error && observer.error(this.error);
25 case "C":
26 return observer.complete && observer.complete();
27 }
28 };
29 Notification.prototype.do = function (next, error, complete) {
30 var kind = this.kind;
31 switch (kind) {
32 case "N":
33 return next && next(this.value);
34 case "E":
35 return error && error(this.error);
36 case "C":
37 return complete && complete();
38 }
39 };
40 Notification.prototype.accept = function (nextOrObserver, error, complete) {
41 if (nextOrObserver && typeof nextOrObserver.next === 'function') {
42 return this.observe(nextOrObserver);
43 }
44 else {
45 return this.do(nextOrObserver, error, complete);
46 }
47 };
48 Notification.prototype.toObservable = function () {
49 var kind = this.kind;
50 switch (kind) {
51 case "N":
52 return of_1.of(this.value);
53 case "E":
54 return throwError_1.throwError(this.error);
55 case "C":
56 return empty_1.empty();
57 }
58 throw new Error('unexpected notification kind value');
59 };
60 Notification.createNext = function (value) {
61 if (typeof value !== 'undefined') {
62 return new Notification("N", value);
63 }
64 return Notification.undefinedValueNotification;
65 };
66 Notification.createError = function (err) {
67 return new Notification("E", undefined, err);
68 };
69 Notification.createComplete = function () {
70 return Notification.completeNotification;
71 };
72 Notification.completeNotification = new Notification("C");
73 Notification.undefinedValueNotification = new Notification("N", undefined);
74 return Notification;
75}());
76exports.Notification = Notification;
77//# sourceMappingURL=Notification.js.map
\No newline at end of file