@fluixi/reactive 1.0.0-alpha.100

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +280 -0
  3. package/dist/cdn/reactive.cjs +2803 -0
  4. package/dist/cdn/reactive.d.ts +11 -0
  5. package/dist/cdn/reactive.d.ts.map +1 -0
  6. package/dist/cdn/reactive.global.js +2 -0
  7. package/dist/cdn/reactive.js +10 -0
  8. package/dist/cdn/reactive.mjs +2787 -0
  9. package/dist/cdn/signal.cjs +299 -0
  10. package/dist/cdn/signal.d.ts +19 -0
  11. package/dist/cdn/signal.d.ts.map +1 -0
  12. package/dist/cdn/signal.global.js +2 -0
  13. package/dist/cdn/signal.js +18 -0
  14. package/dist/cdn/signal.mjs +276 -0
  15. package/dist/index.cjs +2803 -0
  16. package/dist/index.d.ts +2 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +1 -0
  19. package/dist/index.mjs +2787 -0
  20. package/dist/lib/index.cjs +2804 -0
  21. package/dist/lib/index.d.ts +8 -0
  22. package/dist/lib/index.d.ts.map +1 -0
  23. package/dist/lib/index.js +11 -0
  24. package/dist/lib/index.mjs +2789 -0
  25. package/dist/lib/observable/index.cjs +386 -0
  26. package/dist/lib/observable/index.d.ts +4 -0
  27. package/dist/lib/observable/index.d.ts.map +1 -0
  28. package/dist/lib/observable/index.js +3 -0
  29. package/dist/lib/observable/index.mjs +364 -0
  30. package/dist/lib/observable/observable.cjs +384 -0
  31. package/dist/lib/observable/observable.d.ts +246 -0
  32. package/dist/lib/observable/observable.d.ts.map +1 -0
  33. package/dist/lib/observable/observable.js +268 -0
  34. package/dist/lib/observable/observable.mjs +361 -0
  35. package/dist/lib/observable/subscription.cjs +180 -0
  36. package/dist/lib/observable/subscription.d.ts +58 -0
  37. package/dist/lib/observable/subscription.d.ts.map +1 -0
  38. package/dist/lib/observable/subscription.js +177 -0
  39. package/dist/lib/observable/subscription.mjs +157 -0
  40. package/dist/lib/observable/types.cjs +18 -0
  41. package/dist/lib/observable/types.d.ts +44 -0
  42. package/dist/lib/observable/types.d.ts.map +1 -0
  43. package/dist/lib/observable/types.js +1 -0
  44. package/dist/lib/observable/types.mjs +0 -0
  45. package/dist/lib/predicates.cjs +44 -0
  46. package/dist/lib/predicates.d.ts +37 -0
  47. package/dist/lib/predicates.d.ts.map +1 -0
  48. package/dist/lib/predicates.js +62 -0
  49. package/dist/lib/predicates.mjs +23 -0
  50. package/dist/lib/signal/api.cjs +592 -0
  51. package/dist/lib/signal/api.d.ts +227 -0
  52. package/dist/lib/signal/api.d.ts.map +1 -0
  53. package/dist/lib/signal/api.js +228 -0
  54. package/dist/lib/signal/api.mjs +569 -0
  55. package/dist/lib/signal/cached-resource.cjs +726 -0
  56. package/dist/lib/signal/cached-resource.d.ts +86 -0
  57. package/dist/lib/signal/cached-resource.d.ts.map +1 -0
  58. package/dist/lib/signal/cached-resource.js +250 -0
  59. package/dist/lib/signal/cached-resource.mjs +704 -0
  60. package/dist/lib/signal/graph/children.cjs +326 -0
  61. package/dist/lib/signal/graph/children.d.ts +2 -0
  62. package/dist/lib/signal/graph/children.d.ts.map +1 -0
  63. package/dist/lib/signal/graph/children.js +30 -0
  64. package/dist/lib/signal/graph/children.mjs +303 -0
  65. package/dist/lib/signal/graph/compat.cjs +590 -0
  66. package/dist/lib/signal/graph/compat.d.ts +66 -0
  67. package/dist/lib/signal/graph/compat.d.ts.map +1 -0
  68. package/dist/lib/signal/graph/compat.js +197 -0
  69. package/dist/lib/signal/graph/compat.mjs +568 -0
  70. package/dist/lib/signal/graph/core.cjs +295 -0
  71. package/dist/lib/signal/graph/core.d.ts +99 -0
  72. package/dist/lib/signal/graph/core.d.ts.map +1 -0
  73. package/dist/lib/signal/graph/core.js +268 -0
  74. package/dist/lib/signal/graph/core.mjs +273 -0
  75. package/dist/lib/signal/graph/debounced.cjs +680 -0
  76. package/dist/lib/signal/graph/debounced.d.ts +67 -0
  77. package/dist/lib/signal/graph/debounced.d.ts.map +1 -0
  78. package/dist/lib/signal/graph/debounced.js +92 -0
  79. package/dist/lib/signal/graph/debounced.mjs +657 -0
  80. package/dist/lib/signal/graph/derived.cjs +508 -0
  81. package/dist/lib/signal/graph/derived.d.ts +14 -0
  82. package/dist/lib/signal/graph/derived.d.ts.map +1 -0
  83. package/dist/lib/signal/graph/derived.js +65 -0
  84. package/dist/lib/signal/graph/derived.mjs +485 -0
  85. package/dist/lib/signal/graph/detect.cjs +66 -0
  86. package/dist/lib/signal/graph/detect.d.ts +17 -0
  87. package/dist/lib/signal/graph/detect.d.ts.map +1 -0
  88. package/dist/lib/signal/graph/detect.js +39 -0
  89. package/dist/lib/signal/graph/detect.mjs +45 -0
  90. package/dist/lib/signal/graph/error-boundary.cjs +313 -0
  91. package/dist/lib/signal/graph/error-boundary.d.ts +16 -0
  92. package/dist/lib/signal/graph/error-boundary.d.ts.map +1 -0
  93. package/dist/lib/signal/graph/error-boundary.js +34 -0
  94. package/dist/lib/signal/graph/error-boundary.mjs +290 -0
  95. package/dist/lib/signal/graph/index.cjs +305 -0
  96. package/dist/lib/signal/graph/index.d.ts +22 -0
  97. package/dist/lib/signal/graph/index.d.ts.map +1 -0
  98. package/dist/lib/signal/graph/index.js +21 -0
  99. package/dist/lib/signal/graph/index.mjs +283 -0
  100. package/dist/lib/signal/graph/observe.cjs +198 -0
  101. package/dist/lib/signal/graph/observe.d.ts +185 -0
  102. package/dist/lib/signal/graph/observe.d.ts.map +1 -0
  103. package/dist/lib/signal/graph/observe.js +198 -0
  104. package/dist/lib/signal/graph/observe.mjs +175 -0
  105. package/dist/lib/signal/graph/resource.cjs +632 -0
  106. package/dist/lib/signal/graph/resource.d.ts +39 -0
  107. package/dist/lib/signal/graph/resource.d.ts.map +1 -0
  108. package/dist/lib/signal/graph/resource.js +165 -0
  109. package/dist/lib/signal/graph/resource.mjs +609 -0
  110. package/dist/lib/signal/graph/runtime.cjs +522 -0
  111. package/dist/lib/signal/graph/runtime.d.ts +80 -0
  112. package/dist/lib/signal/graph/runtime.d.ts.map +1 -0
  113. package/dist/lib/signal/graph/runtime.js +358 -0
  114. package/dist/lib/signal/graph/runtime.mjs +499 -0
  115. package/dist/lib/signal/graph/signal-next.cjs +1249 -0
  116. package/dist/lib/signal/graph/signal-next.d.ts +38 -0
  117. package/dist/lib/signal/graph/signal-next.d.ts.map +1 -0
  118. package/dist/lib/signal/graph/signal-next.js +44 -0
  119. package/dist/lib/signal/graph/signal-next.mjs +1227 -0
  120. package/dist/lib/signal/graph/ssr-hooks.cjs +89 -0
  121. package/dist/lib/signal/graph/ssr-hooks.d.ts +51 -0
  122. package/dist/lib/signal/graph/ssr-hooks.d.ts.map +1 -0
  123. package/dist/lib/signal/graph/ssr-hooks.js +80 -0
  124. package/dist/lib/signal/graph/ssr-hooks.mjs +68 -0
  125. package/dist/lib/signal/graph/state.cjs +72 -0
  126. package/dist/lib/signal/graph/state.d.ts +76 -0
  127. package/dist/lib/signal/graph/state.d.ts.map +1 -0
  128. package/dist/lib/signal/graph/state.js +99 -0
  129. package/dist/lib/signal/graph/state.mjs +49 -0
  130. package/dist/lib/signal/graph/suspense.cjs +313 -0
  131. package/dist/lib/signal/graph/suspense.d.ts +13 -0
  132. package/dist/lib/signal/graph/suspense.d.ts.map +1 -0
  133. package/dist/lib/signal/graph/suspense.js +36 -0
  134. package/dist/lib/signal/graph/suspense.mjs +290 -0
  135. package/dist/lib/signal/index-legacy.cjs +2582 -0
  136. package/dist/lib/signal/index-legacy.d.ts +12 -0
  137. package/dist/lib/signal/index-legacy.d.ts.map +1 -0
  138. package/dist/lib/signal/index-legacy.js +11 -0
  139. package/dist/lib/signal/index-legacy.mjs +2560 -0
  140. package/dist/lib/signal/index.cjs +1350 -0
  141. package/dist/lib/signal/index.d.ts +19 -0
  142. package/dist/lib/signal/index.d.ts.map +1 -0
  143. package/dist/lib/signal/index.js +19 -0
  144. package/dist/lib/signal/index.mjs +1328 -0
  145. package/dist/lib/signal/list.cjs +561 -0
  146. package/dist/lib/signal/list.d.ts +39 -0
  147. package/dist/lib/signal/list.d.ts.map +1 -0
  148. package/dist/lib/signal/list.js +172 -0
  149. package/dist/lib/signal/list.mjs +538 -0
  150. package/dist/lib/signal/resource-api.cjs +638 -0
  151. package/dist/lib/signal/resource-api.d.ts +19 -0
  152. package/dist/lib/signal/resource-api.d.ts.map +1 -0
  153. package/dist/lib/signal/resource-api.js +27 -0
  154. package/dist/lib/signal/resource-api.mjs +615 -0
  155. package/dist/lib/signal/signal.cjs +2035 -0
  156. package/dist/lib/signal/signal.d.ts +303 -0
  157. package/dist/lib/signal/signal.d.ts.map +1 -0
  158. package/dist/lib/signal/signal.js +1233 -0
  159. package/dist/lib/signal/signal.mjs +2012 -0
  160. package/dist/lib/signal/types.cjs +38 -0
  161. package/dist/lib/signal/types.d.ts +133 -0
  162. package/dist/lib/signal/types.d.ts.map +1 -0
  163. package/dist/lib/signal/types.js +38 -0
  164. package/dist/lib/signal/types.mjs +17 -0
  165. package/dist/lib/signal/utilities.cjs +1024 -0
  166. package/dist/lib/signal/utilities.d.ts +247 -0
  167. package/dist/lib/signal/utilities.d.ts.map +1 -0
  168. package/dist/lib/signal/utilities.js +346 -0
  169. package/dist/lib/signal/utilities.mjs +1002 -0
  170. package/dist/lib/store/api.cjs +662 -0
  171. package/dist/lib/store/api.d.ts +40 -0
  172. package/dist/lib/store/api.d.ts.map +1 -0
  173. package/dist/lib/store/api.js +63 -0
  174. package/dist/lib/store/api.mjs +646 -0
  175. package/dist/lib/store/index.cjs +741 -0
  176. package/dist/lib/store/index.d.ts +16 -0
  177. package/dist/lib/store/index.d.ts.map +1 -0
  178. package/dist/lib/store/index.js +13 -0
  179. package/dist/lib/store/index.mjs +726 -0
  180. package/dist/lib/store/setter.types.cjs +18 -0
  181. package/dist/lib/store/setter.types.d.ts +131 -0
  182. package/dist/lib/store/setter.types.d.ts.map +1 -0
  183. package/dist/lib/store/setter.types.js +65 -0
  184. package/dist/lib/store/setter.types.mjs +0 -0
  185. package/dist/lib/store/store.cjs +708 -0
  186. package/dist/lib/store/store.d.ts +142 -0
  187. package/dist/lib/store/store.d.ts.map +1 -0
  188. package/dist/lib/store/store.js +812 -0
  189. package/dist/lib/store/store.mjs +694 -0
  190. package/dist/lib/store/types.cjs +18 -0
  191. package/dist/lib/store/types.d.ts +57 -0
  192. package/dist/lib/store/types.d.ts.map +1 -0
  193. package/dist/lib/store/types.js +1 -0
  194. package/dist/lib/store/types.mjs +0 -0
  195. package/dist/lib/store/utils.cjs +43 -0
  196. package/dist/lib/store/utils.d.ts +13 -0
  197. package/dist/lib/store/utils.d.ts.map +1 -0
  198. package/dist/lib/store/utils.js +29 -0
  199. package/dist/lib/store/utils.mjs +22 -0
  200. package/dist/lib/subject.cjs +450 -0
  201. package/dist/lib/subject.d.ts +14 -0
  202. package/dist/lib/subject.d.ts.map +1 -0
  203. package/dist/lib/subject.js +81 -0
  204. package/dist/lib/subject.mjs +427 -0
  205. package/dist/tsconfig.lib.tsbuildinfo +1 -0
  206. package/dist/version.generated.cjs +27 -0
  207. package/dist/version.generated.d.ts +3 -0
  208. package/dist/version.generated.d.ts.map +1 -0
  209. package/dist/version.generated.js +3 -0
  210. package/dist/version.generated.mjs +7 -0
  211. package/package.json +115 -0
@@ -0,0 +1,384 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/lib/observable/observable.ts
21
+ var observable_exports = {};
22
+ __export(observable_exports, {
23
+ Observable: () => Observable,
24
+ SafeSubscriber: () => SafeSubscriber,
25
+ Subscriber: () => Subscriber,
26
+ operate: () => operate
27
+ });
28
+ module.exports = __toCommonJS(observable_exports);
29
+
30
+ // src/lib/predicates.ts
31
+ function isFunction(value) {
32
+ return typeof value === "function" && !/^class\s/.test(Function.prototype.toString.call(value));
33
+ }
34
+ function isObject(value) {
35
+ if (value == null) return false;
36
+ if (Array.isArray(value)) return false;
37
+ if (typeof value === "function") return false;
38
+ if (value instanceof Date) return false;
39
+ if (value instanceof RegExp) return false;
40
+ if (value instanceof Map) return false;
41
+ if (value instanceof Set) return false;
42
+ if (value instanceof Error) return false;
43
+ return typeof value === "object";
44
+ }
45
+
46
+ // src/lib/observable/subscription.ts
47
+ var Subscription = class _Subscription {
48
+ /**
49
+ * Creates a new Subscription.
50
+ */
51
+ constructor(unsubscribe) {
52
+ /** @private */
53
+ this._closed = false;
54
+ /** @private */
55
+ this._parentOrParents = null;
56
+ /** @private */
57
+ this._subscriptions = null;
58
+ if (unsubscribe) {
59
+ this._subscriptions = [unsubscribe];
60
+ }
61
+ }
62
+ /**
63
+ * Whether the subscription is closed.
64
+ */
65
+ get closed() {
66
+ return this._closed;
67
+ }
68
+ /**
69
+ * Disposes the resources held by the subscription.
70
+ * May be called multiple times (idempotent).
71
+ */
72
+ unsubscribe() {
73
+ if (this._closed) {
74
+ return;
75
+ }
76
+ this._closed = true;
77
+ const { _parentOrParents, _subscriptions } = this;
78
+ if (_parentOrParents instanceof _Subscription) {
79
+ _parentOrParents.remove(this);
80
+ } else if (_parentOrParents !== null) {
81
+ for (const parent of _parentOrParents) {
82
+ parent.remove(this);
83
+ }
84
+ }
85
+ if (_subscriptions) {
86
+ for (const sub of _subscriptions) {
87
+ if (isFunction(sub) && !(sub instanceof _Subscription)) {
88
+ try {
89
+ sub();
90
+ } catch (error) {
91
+ console.error("Error in unsubscribe function:", error);
92
+ }
93
+ } else if (isObject(sub) && typeof sub.unsubscribe === "function") {
94
+ try {
95
+ sub.unsubscribe();
96
+ } catch (error) {
97
+ console.error("Error unsubscribing child:", error);
98
+ }
99
+ }
100
+ }
101
+ this._subscriptions = null;
102
+ }
103
+ }
104
+ /**
105
+ * Adds a child subscription or cleanup function to this subscription.
106
+ * When this subscription is unsubscribed, all added subscriptions/functions will be unsubscribed/called.
107
+ *
108
+ * @throws {TypeError} If the argument is not a subscription-like object or function
109
+ */
110
+ add(subscription) {
111
+ if (!subscription || subscription === this) {
112
+ return this;
113
+ }
114
+ if (subscription.closed) {
115
+ return this;
116
+ }
117
+ let { _closed, _subscriptions } = this;
118
+ if (_closed) {
119
+ if (isFunction(subscription)) {
120
+ try {
121
+ subscription();
122
+ } catch (error) {
123
+ console.error("Error in unsubscribe function:", error);
124
+ }
125
+ } else if (subscription.unsubscribe) {
126
+ try {
127
+ subscription.unsubscribe();
128
+ } catch (error) {
129
+ console.error("Error unsubscribing:", error);
130
+ }
131
+ }
132
+ return this;
133
+ }
134
+ if (!_subscriptions) {
135
+ this._subscriptions = [];
136
+ }
137
+ this._subscriptions.push(subscription);
138
+ if (subscription instanceof _Subscription) {
139
+ subscription._addParent(this);
140
+ }
141
+ return this;
142
+ }
143
+ /**
144
+ * Removes a child subscription from this subscription.
145
+ */
146
+ remove(subscription) {
147
+ const { _subscriptions } = this;
148
+ if (!_subscriptions) {
149
+ return;
150
+ }
151
+ const index = _subscriptions.indexOf(subscription);
152
+ if (index !== -1) {
153
+ _subscriptions.splice(index, 1);
154
+ subscription._removeParent(this);
155
+ }
156
+ }
157
+ /** @private */
158
+ _addParent(parent) {
159
+ const { _parentOrParents } = this;
160
+ if (!_parentOrParents) {
161
+ this._parentOrParents = parent;
162
+ } else if (Array.isArray(_parentOrParents)) {
163
+ _parentOrParents.push(parent);
164
+ } else {
165
+ this._parentOrParents = [_parentOrParents, parent];
166
+ }
167
+ }
168
+ /** @private */
169
+ _removeParent(parent) {
170
+ const { _parentOrParents } = this;
171
+ if (_parentOrParents === parent) {
172
+ this._parentOrParents = null;
173
+ } else if (Array.isArray(_parentOrParents)) {
174
+ const index = _parentOrParents.indexOf(parent);
175
+ if (index !== -1) {
176
+ _parentOrParents.splice(index, 1);
177
+ if (_parentOrParents.length === 1) {
178
+ this._parentOrParents = _parentOrParents[0];
179
+ }
180
+ }
181
+ }
182
+ }
183
+ };
184
+
185
+ // src/lib/observable/observable.ts
186
+ var Subscriber = class extends Subscription {
187
+ /**
188
+ * Creates a new Subscriber.
189
+ */
190
+ constructor(destinationOrNext, error, complete) {
191
+ super();
192
+ /** @private */
193
+ this.isStopped = false;
194
+ let observer;
195
+ if (!destinationOrNext) {
196
+ observer = {};
197
+ } else if (typeof destinationOrNext === "object") {
198
+ observer = destinationOrNext;
199
+ } else {
200
+ observer = {
201
+ next: destinationOrNext,
202
+ error,
203
+ complete
204
+ };
205
+ }
206
+ this.destination = observer;
207
+ }
208
+ /**
209
+ * Sends the next value to the observer.
210
+ */
211
+ next(value) {
212
+ if (!this.isStopped && this.destination.next) {
213
+ try {
214
+ this.destination.next(value);
215
+ } catch (error) {
216
+ this.error(error);
217
+ }
218
+ }
219
+ }
220
+ /**
221
+ * Sends an error notification to the observer.
222
+ */
223
+ error(err) {
224
+ if (!this.isStopped) {
225
+ this.isStopped = true;
226
+ if (this.destination.error) {
227
+ try {
228
+ this.destination.error(err);
229
+ } catch (error) {
230
+ throw error;
231
+ }
232
+ } else {
233
+ throw err;
234
+ }
235
+ this.unsubscribe();
236
+ }
237
+ }
238
+ /**
239
+ * Sends a complete notification to the observer.
240
+ */
241
+ complete() {
242
+ if (!this.isStopped) {
243
+ this.isStopped = true;
244
+ if (this.destination.complete) {
245
+ try {
246
+ this.destination.complete();
247
+ } catch (error) {
248
+ this.error(error);
249
+ return;
250
+ }
251
+ }
252
+ this.unsubscribe();
253
+ }
254
+ }
255
+ /**
256
+ * Unsubscribes the subscriber.
257
+ */
258
+ unsubscribe() {
259
+ if (this.closed) {
260
+ return;
261
+ }
262
+ this.isStopped = true;
263
+ super.unsubscribe();
264
+ }
265
+ };
266
+ var SafeSubscriber = class extends Subscriber {
267
+ constructor(observerOrNext, error, complete, parentSubscriber) {
268
+ super(observerOrNext, error, complete);
269
+ /** @private */
270
+ this._isUnsubscribing = false;
271
+ /** @private */
272
+ this._parentSubscriber = null;
273
+ this._parentSubscriber = parentSubscriber || null;
274
+ }
275
+ next(value) {
276
+ if (!this.isStopped && !this._isUnsubscribing) {
277
+ try {
278
+ super.next(value);
279
+ } catch (error) {
280
+ this.error(error);
281
+ }
282
+ }
283
+ }
284
+ error(err) {
285
+ if (!this.isStopped && !this._isUnsubscribing) {
286
+ this._isUnsubscribing = true;
287
+ try {
288
+ super.error(err);
289
+ } finally {
290
+ this._isUnsubscribing = false;
291
+ }
292
+ }
293
+ }
294
+ complete() {
295
+ if (!this.isStopped && !this._isUnsubscribing) {
296
+ this._isUnsubscribing = true;
297
+ try {
298
+ super.complete();
299
+ } finally {
300
+ this._isUnsubscribing = false;
301
+ }
302
+ }
303
+ }
304
+ unsubscribe() {
305
+ if (this.closed) {
306
+ return;
307
+ }
308
+ this._isUnsubscribing = true;
309
+ super.unsubscribe();
310
+ this._isUnsubscribing = false;
311
+ }
312
+ };
313
+ function operate(destination) {
314
+ return new Subscriber(destination.next, destination.error, destination.complete);
315
+ }
316
+ var Observable = class extends Subscription {
317
+ /**
318
+ * Creates a new Observable.
319
+ */
320
+ constructor(subscribe) {
321
+ super();
322
+ if (subscribe) {
323
+ this._subscribe = subscribe;
324
+ } else {
325
+ throw new TypeError("Observable constructor requires a subscribe function");
326
+ }
327
+ }
328
+ subscribe(observerOrNext, error, complete) {
329
+ let subscriber;
330
+ if (observerOrNext instanceof Subscriber) {
331
+ subscriber = observerOrNext;
332
+ } else {
333
+ subscriber = new SafeSubscriber(observerOrNext, error, complete);
334
+ }
335
+ const { _subscribe } = this;
336
+ try {
337
+ const result = _subscribe.call(this, subscriber);
338
+ if (result) {
339
+ if (typeof result === "function") {
340
+ subscriber.add(result);
341
+ } else if (typeof result.unsubscribe === "function") {
342
+ subscriber.add(result);
343
+ }
344
+ }
345
+ } catch (err) {
346
+ subscriber.error(err);
347
+ }
348
+ return subscriber;
349
+ }
350
+ pipe(...operations) {
351
+ if (operations.length === 0) {
352
+ return this;
353
+ }
354
+ return operations.reduce(
355
+ (prev, fn) => fn(prev),
356
+ this
357
+ );
358
+ }
359
+ /**
360
+ * Converts the Observable to a Promise.
361
+ * The Promise resolves with the last emitted value when the Observable completes,
362
+ * or rejects if the Observable errors.
363
+ *
364
+ * @example
365
+ * // Convert Observable to Promise
366
+ * const value = await of(1, 2, 3).toPromise();
367
+ * console.log(value); // 3
368
+ *
369
+ * @example
370
+ * // Handle empty Observable
371
+ * const value = await EMPTY.toPromise();
372
+ * console.log(value); // undefined
373
+ */
374
+ toPromise() {
375
+ return new Promise((resolve, reject) => {
376
+ let lastValue;
377
+ this.subscribe({
378
+ next: (value) => lastValue = value,
379
+ error: reject,
380
+ complete: () => resolve(lastValue)
381
+ });
382
+ });
383
+ }
384
+ };
@@ -0,0 +1,246 @@
1
+ import { Subscription } from "./subscription.js";
2
+ /**
3
+ * Represents an object that can observe values emitted by an Observable.
4
+ */
5
+ export interface Observer<T> {
6
+ next: (value: T) => void;
7
+ error: (error: any) => void;
8
+ complete: () => void;
9
+ closed?: boolean;
10
+ }
11
+ /**
12
+ * Type representing any iterator that can be consumed by the `from` function.
13
+ * This includes both standard iterators and generator function results.
14
+ */
15
+ export type AnyIterator<T, TReturn = any, TNext = any> = Iterator<T, TReturn, TNext> & {
16
+ return?(value?: TReturn): IteratorResult<T, TReturn>;
17
+ throw?(e?: any): IteratorResult<T, TReturn>;
18
+ };
19
+ /**
20
+ * Enhanced ObservableInput type that includes iterator factory functions.
21
+ */
22
+ export type ObservableInput<T> = Observable<T> | PromiseLike<T> | ArrayLike<T> | Iterable<T> | (() => AnyIterator<T>);
23
+ /**
24
+ * Extracts the value type from an ObservableInput.
25
+ *
26
+ * @example
27
+ * // Returns number
28
+ * type Num = ObservedValueOf<Promise<number>>;
29
+ */
30
+ export type ObservedValueOf<O> = O extends ObservableInput<infer T> ? T : never;
31
+ /**
32
+ * Type for operator functions that transform one Observable into another.
33
+ */
34
+ export type OperatorFunction<T, R> = (source: Observable<T>) => Observable<R>;
35
+ /**
36
+ * Type for unary operator functions (operators that take one parameter).
37
+ */
38
+ export type UnaryOperatorFunction<T, R, A> = (arg: A) => OperatorFunction<T, R>;
39
+ /**
40
+ * Type for binary operator functions (operators that take two parameters).
41
+ */
42
+ export type BinaryOperatorFunction<T, R, A, B> = (arg1: A, arg2: B) => OperatorFunction<T, R>;
43
+ /**
44
+ * A subscriber is both an Observer and a Subscription.
45
+ * This is the object that gets passed to the Observable's subscribe function.
46
+ *
47
+ * @class Subscriber
48
+ * @extends {Subscription}
49
+ * @implements {Observer<T>}
50
+ */
51
+ export declare class Subscriber<T> extends Subscription implements Observer<T> {
52
+ /** @private */ protected isStopped: boolean;
53
+ /** @private */ protected destination: Partial<Observer<T>>;
54
+ /**
55
+ * Creates a new Subscriber.
56
+ */
57
+ constructor(destinationOrNext?: Partial<Observer<T>> | ((value: T) => void), error?: (error: any) => void, complete?: () => void);
58
+ /**
59
+ * Sends the next value to the observer.
60
+ */
61
+ next(value: T): void;
62
+ /**
63
+ * Sends an error notification to the observer.
64
+ */
65
+ error(err: any): void;
66
+ /**
67
+ * Sends a complete notification to the observer.
68
+ */
69
+ complete(): void;
70
+ /**
71
+ * Unsubscribes the subscriber.
72
+ */
73
+ unsubscribe(): void;
74
+ }
75
+ /**
76
+ * SafeSubscriber adds extra safety checks to prevent reentrant calls.
77
+ *
78
+ * @class SafeSubscriber
79
+ * @extends {Subscriber<T>}
80
+ */
81
+ export declare class SafeSubscriber<T> extends Subscriber<T> {
82
+ /** @private */ private _isUnsubscribing;
83
+ /** @private */ private _parentSubscriber;
84
+ constructor(observerOrNext?: Partial<Observer<T>> | ((value: T) => void), error?: (error: any) => void, complete?: () => void, parentSubscriber?: Subscriber<any>);
85
+ next(value: T): void;
86
+ error(err: any): void;
87
+ complete(): void;
88
+ unsubscribe(): void;
89
+ }
90
+ export interface OperateConfig<In, Out> extends Observer<In> {
91
+ /**
92
+ * The destination subscriber to forward notifications to. This is also the
93
+ * subscriber that will receive unhandled errors if your `next`, `error`, or `complete`
94
+ * overrides throw.
95
+ */
96
+ destination: Subscriber<Out>;
97
+ }
98
+ export declare function operate<T>(destination: Observer<T>): Subscriber<T>;
99
+ /**
100
+ * A representation of any set of values over any amount of time.
101
+ * This is the most basic building block of RxJS.
102
+ *
103
+ * @class Observable
104
+ *
105
+ * @example
106
+ * // Create an Observable from scratch
107
+ * const observable = new Observable<string>(subscriber => {
108
+ * subscriber.next('Hello');
109
+ * subscriber.next('World');
110
+ * subscriber.complete();
111
+ *
112
+ * return () => console.log('Cleanup');
113
+ * });
114
+ *
115
+ * @example
116
+ * // Subscribe to an Observable
117
+ * const subscription = observable.subscribe({
118
+ * next: value => console.log(value),
119
+ * error: err => console.error(err),
120
+ * complete: () => console.log('Done')
121
+ * });
122
+ *
123
+ * // Later, unsubscribe
124
+ * subscription.unsubscribe();
125
+ */
126
+ export declare class Observable<T> extends Subscription {
127
+ /**
128
+ * The function that is called when the Observable is subscribed to.
129
+ * This function is given a Subscriber to which new values can be `next`ed,
130
+ * or an `error` or `complete` notification can be sent.
131
+ *
132
+ * @private
133
+ * @type {function(Subscriber<T>): (void | (() => void) | Subscription)}
134
+ */
135
+ private _subscribe;
136
+ /**
137
+ * Creates a new Observable.
138
+ */
139
+ constructor(subscribe: (subscriber: Subscriber<T>) => void | (() => void) | Subscription);
140
+ /**
141
+ * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.
142
+ *
143
+ * @overload
144
+ *
145
+ * @overload
146
+ *
147
+ * @overload
148
+ *
149
+ * @overload
150
+ *
151
+ * @overload
152
+ *
153
+ * @example
154
+ * // Subscribe with separate handlers
155
+ * observable.subscribe(
156
+ * value => console.log(value),
157
+ * error => console.error(error),
158
+ * () => console.log('Complete')
159
+ * );
160
+ *
161
+ * @example
162
+ * // Subscribe with observer object
163
+ * observable.subscribe({
164
+ * next: value => console.log(value),
165
+ * error: error => console.error(error),
166
+ * complete: () => console.log('Complete')
167
+ * });
168
+ *
169
+ * @throws {TypeError} If the observer is not an object or function
170
+ */
171
+ subscribe(): Subscription;
172
+ subscribe(next: (value: T) => void): Subscription;
173
+ subscribe(next: (value: T) => void, error: (error: any) => void): Subscription;
174
+ subscribe(next: (value: T) => void, error: (error: any) => void, complete: () => void): Subscription;
175
+ subscribe(observer: Partial<Observer<T>>): Subscription;
176
+ /**
177
+ * Used to stitch together functional operators into a chain.
178
+ * Returns a new Observable that is the result of applying all specified operators
179
+ * to the source Observable.
180
+ *
181
+ * @overload
182
+ *
183
+ * @overload
184
+ *
185
+ * @overload
186
+ *
187
+ * @overload
188
+ *
189
+ * @overload
190
+ *
191
+ * @overload
192
+ *
193
+ * @overload
194
+ *
195
+ * @overload
196
+ *
197
+ * @overload
198
+ *
199
+ * @overload
200
+ *
201
+ * @example
202
+ * // Simple pipeline
203
+ * source$.pipe(
204
+ * map(x => x * 2),
205
+ * filter(x => x > 10)
206
+ * ).subscribe(console.log);
207
+ *
208
+ * @example
209
+ * // Complex pipeline
210
+ * source$.pipe(
211
+ * debounceTime(300),
212
+ * distinctUntilChanged(),
213
+ * switchMap(query => api.search(query)),
214
+ * catchError(err => of([]))
215
+ * ).subscribe(results => {
216
+ * // Handle results
217
+ * });
218
+ */
219
+ pipe(): Observable<T>;
220
+ pipe<A>(op1: OperatorFunction<T, A>): Observable<A>;
221
+ pipe<A, B>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>): Observable<B>;
222
+ pipe<A, B, C>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>): Observable<C>;
223
+ pipe<A, B, C, D>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>): Observable<D>;
224
+ pipe<A, B, C, D, E>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>): Observable<E>;
225
+ pipe<A, B, C, D, E, F>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>): Observable<F>;
226
+ pipe<A, B, C, D, E, F, G>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>): Observable<G>;
227
+ pipe<A, B, C, D, E, F, G, H>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>, op8: OperatorFunction<G, H>): Observable<H>;
228
+ pipe<A, B, C, D, E, F, G, H, I>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>, op8: OperatorFunction<G, H>, op9: OperatorFunction<H, I>): Observable<I>;
229
+ /**
230
+ * Converts the Observable to a Promise.
231
+ * The Promise resolves with the last emitted value when the Observable completes,
232
+ * or rejects if the Observable errors.
233
+ *
234
+ * @example
235
+ * // Convert Observable to Promise
236
+ * const value = await of(1, 2, 3).toPromise();
237
+ * console.log(value); // 3
238
+ *
239
+ * @example
240
+ * // Handle empty Observable
241
+ * const value = await EMPTY.toPromise();
242
+ * console.log(value); // undefined
243
+ */
244
+ toPromise(): Promise<T | undefined>;
245
+ }
246
+ //# sourceMappingURL=observable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observable.d.ts","sourceRoot":"","sources":["../../../src/lib/observable/observable.ts"],"names":[],"mappings":"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"}