source: trip-planner-front/node_modules/rxjs/internal/observable/generate.js@ 6c1585f

Last change on this file since 6c1585f was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 3.6 KB
Line 
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var Observable_1 = require("../Observable");
4var identity_1 = require("../util/identity");
5var isScheduler_1 = require("../util/isScheduler");
6function generate(initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler) {
7 var resultSelector;
8 var initialState;
9 if (arguments.length == 1) {
10 var options = initialStateOrOptions;
11 initialState = options.initialState;
12 condition = options.condition;
13 iterate = options.iterate;
14 resultSelector = options.resultSelector || identity_1.identity;
15 scheduler = options.scheduler;
16 }
17 else if (resultSelectorOrObservable === undefined || isScheduler_1.isScheduler(resultSelectorOrObservable)) {
18 initialState = initialStateOrOptions;
19 resultSelector = identity_1.identity;
20 scheduler = resultSelectorOrObservable;
21 }
22 else {
23 initialState = initialStateOrOptions;
24 resultSelector = resultSelectorOrObservable;
25 }
26 return new Observable_1.Observable(function (subscriber) {
27 var state = initialState;
28 if (scheduler) {
29 return scheduler.schedule(dispatch, 0, {
30 subscriber: subscriber,
31 iterate: iterate,
32 condition: condition,
33 resultSelector: resultSelector,
34 state: state
35 });
36 }
37 do {
38 if (condition) {
39 var conditionResult = void 0;
40 try {
41 conditionResult = condition(state);
42 }
43 catch (err) {
44 subscriber.error(err);
45 return undefined;
46 }
47 if (!conditionResult) {
48 subscriber.complete();
49 break;
50 }
51 }
52 var value = void 0;
53 try {
54 value = resultSelector(state);
55 }
56 catch (err) {
57 subscriber.error(err);
58 return undefined;
59 }
60 subscriber.next(value);
61 if (subscriber.closed) {
62 break;
63 }
64 try {
65 state = iterate(state);
66 }
67 catch (err) {
68 subscriber.error(err);
69 return undefined;
70 }
71 } while (true);
72 return undefined;
73 });
74}
75exports.generate = generate;
76function dispatch(state) {
77 var subscriber = state.subscriber, condition = state.condition;
78 if (subscriber.closed) {
79 return undefined;
80 }
81 if (state.needIterate) {
82 try {
83 state.state = state.iterate(state.state);
84 }
85 catch (err) {
86 subscriber.error(err);
87 return undefined;
88 }
89 }
90 else {
91 state.needIterate = true;
92 }
93 if (condition) {
94 var conditionResult = void 0;
95 try {
96 conditionResult = condition(state.state);
97 }
98 catch (err) {
99 subscriber.error(err);
100 return undefined;
101 }
102 if (!conditionResult) {
103 subscriber.complete();
104 return undefined;
105 }
106 if (subscriber.closed) {
107 return undefined;
108 }
109 }
110 var value;
111 try {
112 value = state.resultSelector(state.state);
113 }
114 catch (err) {
115 subscriber.error(err);
116 return undefined;
117 }
118 if (subscriber.closed) {
119 return undefined;
120 }
121 subscriber.next(value);
122 if (subscriber.closed) {
123 return undefined;
124 }
125 return this.schedule(state);
126}
127//# sourceMappingURL=generate.js.map
Note: See TracBrowser for help on using the repository browser.