@fncts/observable 0.0.26 → 0.0.27

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 (149) hide show
  1. package/Observable/api/raceWith.d.ts +0 -1
  2. package/Observable/api/repeatWhen.d.ts +1 -1
  3. package/Observable/api/share.d.ts +1 -1
  4. package/Observable/api.d.ts +4 -4
  5. package/Observable/definition.d.ts +1 -4
  6. package/Observable.d.ts +16 -16
  7. package/ObservableRef.d.ts +2 -2
  8. package/Operator.d.ts +3 -3
  9. package/Subject.d.ts +14 -5
  10. package/Subscriber.d.ts +23 -8
  11. package/Subscription.d.ts +2 -2
  12. package/_cjs/Action.cjs +1 -1
  13. package/_cjs/AnimationFrameAction.cjs +2 -2
  14. package/_cjs/AnimationFrameScheduler.cjs +2 -2
  15. package/_cjs/AsyncAction.cjs +4 -4
  16. package/_cjs/AsyncAction.cjs.map +1 -1
  17. package/_cjs/AsyncScheduler.cjs +2 -2
  18. package/_cjs/BehaviorSubject.cjs +2 -2
  19. package/_cjs/BehaviorSubject.cjs.map +1 -1
  20. package/_cjs/Observable/api/connect.cjs +7 -7
  21. package/_cjs/Observable/api/connect.cjs.map +1 -1
  22. package/_cjs/Observable/api/connectable.cjs +4 -4
  23. package/_cjs/Observable/api/connectable.cjs.map +1 -1
  24. package/_cjs/Observable/api/fromCallback.cjs +2 -2
  25. package/_cjs/Observable/api/fromEvent.cjs +1 -1
  26. package/_cjs/Observable/api/race.cjs +4 -4
  27. package/_cjs/Observable/api/race.cjs.map +1 -1
  28. package/_cjs/Observable/api/raceWith.cjs +3 -4
  29. package/_cjs/Observable/api/raceWith.cjs.map +1 -1
  30. package/_cjs/Observable/api/repeatWhen.cjs +9 -8
  31. package/_cjs/Observable/api/repeatWhen.cjs.map +1 -1
  32. package/_cjs/Observable/api/retryWhen.cjs +9 -8
  33. package/_cjs/Observable/api/retryWhen.cjs.map +1 -1
  34. package/_cjs/Observable/api/share.cjs +9 -9
  35. package/_cjs/Observable/api/share.cjs.map +1 -1
  36. package/_cjs/Observable/api/window.cjs +12 -11
  37. package/_cjs/Observable/api/window.cjs.map +1 -1
  38. package/_cjs/Observable/api/windowCount.cjs +12 -10
  39. package/_cjs/Observable/api/windowCount.cjs.map +1 -1
  40. package/_cjs/Observable/api/windowTime.cjs +12 -11
  41. package/_cjs/Observable/api/windowTime.cjs.map +1 -1
  42. package/_cjs/Observable/api/windowToggle.cjs +26 -24
  43. package/_cjs/Observable/api/windowToggle.cjs.map +1 -1
  44. package/_cjs/Observable/api/windowWhen.cjs +17 -15
  45. package/_cjs/Observable/api/windowWhen.cjs.map +1 -1
  46. package/_cjs/Observable/api.cjs +325 -311
  47. package/_cjs/Observable/api.cjs.map +1 -1
  48. package/_cjs/Observable/definition.cjs +7 -14
  49. package/_cjs/Observable/definition.cjs.map +1 -1
  50. package/_cjs/Observable/dom/animationFrames.cjs +3 -3
  51. package/_cjs/Observable/dom/animationFrames.cjs.map +1 -1
  52. package/_cjs/Observable.cjs +64 -64
  53. package/_cjs/Observable.cjs.map +1 -1
  54. package/_cjs/ObservableRef/api.cjs +2 -2
  55. package/_cjs/ObservableRef/atomic.cjs +2 -2
  56. package/_cjs/ObservableRef/definition.cjs +1 -1
  57. package/_cjs/ObservableRef.cjs +8 -8
  58. package/_cjs/ObservableRef.cjs.map +1 -1
  59. package/_cjs/Operator.cjs +9 -14
  60. package/_cjs/Operator.cjs.map +1 -1
  61. package/_cjs/Scheduler.cjs +2 -2
  62. package/_cjs/Subject.cjs +69 -43
  63. package/_cjs/Subject.cjs.map +1 -1
  64. package/_cjs/Subscriber.cjs +122 -70
  65. package/_cjs/Subscriber.cjs.map +1 -1
  66. package/_cjs/Subscription.cjs +7 -7
  67. package/_cjs/Subscription.cjs.map +1 -1
  68. package/_cjs/config.cjs +15 -0
  69. package/_cjs/config.cjs.map +1 -0
  70. package/_cjs/index.cjs +13 -13
  71. package/_cjs/internal/animationFrameProvider.cjs +1 -1
  72. package/_cjs/internal/args.cjs +1 -1
  73. package/_cjs/internal/util.cjs +2 -2
  74. package/_mjs/AsyncAction.mjs +3 -3
  75. package/_mjs/AsyncAction.mjs.map +1 -1
  76. package/_mjs/BehaviorSubject.mjs +1 -1
  77. package/_mjs/BehaviorSubject.mjs.map +1 -1
  78. package/_mjs/Observable/api/connect.mjs +6 -6
  79. package/_mjs/Observable/api/connect.mjs.map +1 -1
  80. package/_mjs/Observable/api/connectable.mjs +1 -1
  81. package/_mjs/Observable/api/connectable.mjs.map +1 -1
  82. package/_mjs/Observable/api/race.mjs +1 -1
  83. package/_mjs/Observable/api/race.mjs.map +1 -1
  84. package/_mjs/Observable/api/raceWith.mjs +3 -4
  85. package/_mjs/Observable/api/raceWith.mjs.map +1 -1
  86. package/_mjs/Observable/api/repeatWhen.mjs +9 -8
  87. package/_mjs/Observable/api/repeatWhen.mjs.map +1 -1
  88. package/_mjs/Observable/api/retryWhen.mjs +9 -8
  89. package/_mjs/Observable/api/retryWhen.mjs.map +1 -1
  90. package/_mjs/Observable/api/share.mjs +8 -8
  91. package/_mjs/Observable/api/share.mjs.map +1 -1
  92. package/_mjs/Observable/api/window.mjs +12 -11
  93. package/_mjs/Observable/api/window.mjs.map +1 -1
  94. package/_mjs/Observable/api/windowCount.mjs +12 -10
  95. package/_mjs/Observable/api/windowCount.mjs.map +1 -1
  96. package/_mjs/Observable/api/windowTime.mjs +11 -10
  97. package/_mjs/Observable/api/windowTime.mjs.map +1 -1
  98. package/_mjs/Observable/api/windowToggle.mjs +25 -23
  99. package/_mjs/Observable/api/windowToggle.mjs.map +1 -1
  100. package/_mjs/Observable/api/windowWhen.mjs +17 -15
  101. package/_mjs/Observable/api/windowWhen.mjs.map +1 -1
  102. package/_mjs/Observable/api.mjs +304 -290
  103. package/_mjs/Observable/api.mjs.map +1 -1
  104. package/_mjs/Observable/definition.mjs +2 -9
  105. package/_mjs/Observable/definition.mjs.map +1 -1
  106. package/_mjs/Observable/dom/animationFrames.mjs +1 -1
  107. package/_mjs/Observable/dom/animationFrames.mjs.map +1 -1
  108. package/_mjs/Observable.mjs +16 -18
  109. package/_mjs/Observable.mjs.map +1 -1
  110. package/_mjs/ObservableRef.mjs +2 -3
  111. package/_mjs/ObservableRef.mjs.map +1 -1
  112. package/_mjs/Operator.mjs +6 -11
  113. package/_mjs/Operator.mjs.map +1 -1
  114. package/_mjs/Subject.mjs +65 -39
  115. package/_mjs/Subject.mjs.map +1 -1
  116. package/_mjs/Subscriber.mjs +119 -67
  117. package/_mjs/Subscriber.mjs.map +1 -1
  118. package/_mjs/Subscription.mjs +6 -6
  119. package/_mjs/Subscription.mjs.map +1 -1
  120. package/_mjs/config.mjs +9 -0
  121. package/_mjs/config.mjs.map +1 -0
  122. package/_src/AsyncAction.ts +3 -3
  123. package/_src/BehaviorSubject.ts +1 -1
  124. package/_src/Observable/api/connect.ts +2 -2
  125. package/_src/Observable/api/connectable.ts +1 -1
  126. package/_src/Observable/api/race.ts +1 -1
  127. package/_src/Observable/api/raceWith.ts +2 -5
  128. package/_src/Observable/api/repeatWhen.ts +4 -4
  129. package/_src/Observable/api/retryWhen.ts +3 -3
  130. package/_src/Observable/api/share.ts +6 -6
  131. package/_src/Observable/api/window.ts +3 -3
  132. package/_src/Observable/api/windowCount.ts +30 -33
  133. package/_src/Observable/api/windowTime.ts +4 -4
  134. package/_src/Observable/api/windowToggle.ts +19 -21
  135. package/_src/Observable/api/windowWhen.ts +10 -13
  136. package/_src/Observable/api.ts +358 -363
  137. package/_src/Observable/definition.ts +2 -17
  138. package/_src/Observable/dom/animationFrames.ts +1 -1
  139. package/_src/Observable.ts +17 -18
  140. package/_src/ObservableRef.ts +2 -3
  141. package/_src/Operator.ts +9 -21
  142. package/_src/Subject.ts +66 -39
  143. package/_src/Subscriber.ts +134 -59
  144. package/_src/Subscription.ts +8 -8
  145. package/_src/config.ts +40 -0
  146. package/_src/global.ts +1 -1
  147. package/config.d.ts +36 -0
  148. package/global.d.ts +1 -1
  149. package/package.json +2 -2
@@ -10,7 +10,7 @@ export function race<O extends ReadonlyArray<ObservableInput<any, any>>>(
10
10
  export function raceInit<R, E, A>(sources: ReadonlyArray<ObservableInput<R, E, A>>) {
11
11
  return (subscriber: Subscriber<E, A>, environment: Environment<R>) => {
12
12
  let subscriptions: Subscription[] = [];
13
- for (let i = 0; subscriptions && !subscriber.closed && i < sources.length; i++) {
13
+ for (let i = 0; subscriptions && !subscriber._closed && i < sources.length; i++) {
14
14
  subscriptions.push(
15
15
  Observable.from(sources[i]!)
16
16
  .provideEnvironment(environment)
@@ -11,10 +11,7 @@ export function raceWith<O extends ReadonlyArray<ObservableInput<any, any>>>(...
11
11
  E | Observable.ErrorOf<O[number]>,
12
12
  A | Observable.TypeOf<O[number]>
13
13
  > => {
14
- return !sources.length
15
- ? fa
16
- : fa.operate((source, subscriber, environment) => {
17
- raceInit([source, ...sources])(subscriber as Subscriber<any, any>, environment);
18
- });
14
+ // @ts-expect-error
15
+ return !sources.length ? fa : new Observable(raceInit([fa, ...sources]));
19
16
  };
20
17
  }
@@ -1,11 +1,11 @@
1
1
  /**
2
2
  * @tsplus pipeable fncts.observable.Observable repeatWhen
3
3
  */
4
- export function repeatWhen<R, E, A, R1, E1>(
4
+ export function repeatWhen<R1, E1>(
5
5
  notifier: (notifications: Observable<never, never, void>) => Observable<R1, E1, any>,
6
6
  ) {
7
7
  return <R, E, A>(fa: Observable<R, E, A>): Observable<R | R1, E | E1, A> => {
8
- return fa.operate((source, subscriber, environment) => {
8
+ return new Observable((subscriber, environment) => {
9
9
  let innerSub: Subscription | null;
10
10
  let syncResub = false;
11
11
  let completions$: Subject<never, never, void>;
@@ -37,8 +37,8 @@ export function repeatWhen<R, E, A, R1, E1>(
37
37
  };
38
38
  const loop = () => {
39
39
  isMainComplete = false;
40
- innerSub = source.provideEnvironment(environment).subscribe(
41
- operatorSubscriber(subscriber, {
40
+ innerSub = fa.provideEnvironment(environment).subscribe(
41
+ subscriber.operate({
42
42
  complete: () => {
43
43
  isMainComplete = true;
44
44
  !checkComplete() && getCompletionSubject().next();
@@ -5,13 +5,13 @@ export function retryWhen<E, R1, E1>(
5
5
  notifier: (errors: Observable<never, never, Cause<E>>) => Observable<R1, E1, any>,
6
6
  ) {
7
7
  return <R, A>(fa: Observable<R, E, A>): Observable<R | R1, E | E1, A> => {
8
- return fa.operate((source, subscriber, environment) => {
8
+ return new Observable((subscriber, environment) => {
9
9
  let innerSub: Subscription | null;
10
10
  let syncResub = false;
11
11
  let defects$: Subject<never, never, any>;
12
12
  const loop = () => {
13
- innerSub = source.provideEnvironment(environment).subscribe(
14
- operatorSubscriber(subscriber, {
13
+ innerSub = fa.provideEnvironment(environment).subscribe(
14
+ subscriber.operate({
15
15
  error: (err) => {
16
16
  if (!defects$) {
17
17
  defects$ = new Subject();
@@ -18,9 +18,9 @@ export function share<R, E, A, R1 = never, E1 = never, R2 = never, E2 = never, R
18
18
  resetOnComplete = true,
19
19
  resetOnRefCountZero = true,
20
20
  } = options;
21
- let connection: SafeSubscriber<E, A> | null = null;
22
- let resetConnection: Subscription | null = null;
23
- let subject: Subject<R, E, A> | null = null;
21
+ let connection: Subscriber<E, A> | null = null;
22
+ let resetConnection: Subscription | null = null;
23
+ let subject: Subject<R, E, A> | null = null;
24
24
  let refCount = 0;
25
25
  let hasCompleted = false;
26
26
  let hasErrored = false;
@@ -38,7 +38,7 @@ export function share<R, E, A, R1 = never, E1 = never, R2 = never, E2 = never, R
38
38
  reset();
39
39
  conn?.unsubscribe();
40
40
  };
41
- return fa.operate((source, subscriber, environment) => {
41
+ return new Observable((subscriber, environment) => {
42
42
  refCount++;
43
43
  if (!hasErrored && !hasCompleted) {
44
44
  cancelReset();
@@ -52,7 +52,7 @@ export function share<R, E, A, R1 = never, E1 = never, R2 = never, E2 = never, R
52
52
  });
53
53
  dest.provideEnvironment(environment).subscribe(subscriber);
54
54
  if (!connection) {
55
- connection = new SafeSubscriber({
55
+ connection = new Subscriber({
56
56
  next: (value) => dest.next(value),
57
57
  error: (defect) => {
58
58
  hasErrored = true;
@@ -67,7 +67,7 @@ export function share<R, E, A, R1 = never, E1 = never, R2 = never, E2 = never, R
67
67
  dest.complete();
68
68
  },
69
69
  });
70
- Observable.from(source).provideEnvironment(environment).subscribe(connection);
70
+ Observable.from(fa).provideEnvironment(environment).subscribe(connection);
71
71
  }
72
72
  });
73
73
  };
@@ -3,15 +3,15 @@
3
3
  */
4
4
  export function window(windowBoundaries: Observable<never, never, any>) {
5
5
  return <R, E, A>(fa: Observable<R, E, A>): Observable<R, E, Observable<never, E, A>> => {
6
- return fa.operate((source, subscriber, environment) => {
6
+ return new Observable((subscriber, environment) => {
7
7
  let windowSubject: Subject<never, E, A> = new Subject();
8
8
  subscriber.next(windowSubject.asObservable());
9
9
  const errorHandler = (err: Cause<E>) => {
10
10
  windowSubject.error(err);
11
11
  subscriber.error(err);
12
12
  };
13
- source.provideEnvironment(environment).subscribe(
14
- operatorSubscriber(subscriber, {
13
+ fa.provideEnvironment(environment).subscribe(
14
+ subscriber.operate({
15
15
  next: (value) => windowSubject.next(value),
16
16
  error: errorHandler,
17
17
  complete: () => {
@@ -4,45 +4,42 @@
4
4
  export function windowCount(windowSize: number, startWindowEvery = 0) {
5
5
  return <R, E, A>(fa: Observable<R, E, A>): Observable<R, E, Observable<never, E, A>> => {
6
6
  const startEvery = startWindowEvery > 0 ? startWindowEvery : windowSize;
7
- return fa.operate((source, subscriber, environment) => {
7
+ return new Observable((subscriber, environment) => {
8
8
  let windows = [new Subject<never, E, A>()];
9
9
  let count = 0;
10
10
  subscriber.next(windows[0]!.asObservable());
11
- source.provideEnvironment(environment).subscribe(
12
- operatorSubscriber(
13
- subscriber,
14
- {
15
- next: (value) => {
16
- for (const window of windows) {
17
- window.next(value);
18
- }
19
- const c = count - windowSize + 1;
20
- if (c >= 0 && c % startEvery === 0) {
21
- windows.shift()!.complete();
22
- }
23
- if (++count && startEvery === 0) {
24
- const window = new Subject<never, E, A>();
25
- windows.push(window);
26
- subscriber.next(window.asObservable());
27
- }
28
- },
29
- complete: () => {
30
- while (windows.length > 0) {
31
- windows.shift()!.complete();
32
- }
33
- subscriber.complete();
34
- },
35
- error: (err) => {
36
- while (windows.length > 0) {
37
- windows.shift()!.error(err);
38
- }
39
- subscriber.error(err);
40
- },
11
+ fa.provideEnvironment(environment).subscribe(
12
+ subscriber.operate({
13
+ next: (value) => {
14
+ for (const window of windows) {
15
+ window.next(value);
16
+ }
17
+ const c = count - windowSize + 1;
18
+ if (c >= 0 && c % startEvery === 0) {
19
+ windows.shift()!.complete();
20
+ }
21
+ if (++count && startEvery === 0) {
22
+ const window = new Subject<never, E, A>();
23
+ windows.push(window);
24
+ subscriber.next(window.asObservable());
25
+ }
41
26
  },
42
- () => {
27
+ complete: () => {
28
+ while (windows.length > 0) {
29
+ windows.shift()!.complete();
30
+ }
31
+ subscriber.complete();
32
+ },
33
+ error: (err) => {
34
+ while (windows.length > 0) {
35
+ windows.shift()!.error(err);
36
+ }
37
+ subscriber.error(err);
38
+ },
39
+ finalize: () => {
43
40
  windows = null!;
44
41
  },
45
- ),
42
+ }),
46
43
  );
47
44
  });
48
45
  };
@@ -30,7 +30,7 @@ export function windowTime(windowTimeSpan: number, ...args: any[]) {
30
30
  const scheduler = popScheduler(args) ?? asyncScheduler;
31
31
  const windowCreationInterval: number | null = args[0] ?? null;
32
32
  const maxWindowSize: number = args[1] || Infinity;
33
- return fa.operate((source, subscriber, environment) => {
33
+ return new Observable((subscriber, environment) => {
34
34
  let windowRecords: WindowRecord<never, E, A>[] | null = [];
35
35
  let restartOnClose = false;
36
36
  const closeWindow = (record: { window: Subject<never, E, A>; subs: Subscription }) => {
@@ -59,7 +59,7 @@ export function windowTime(windowTimeSpan: number, ...args: any[]) {
59
59
  ? subscriber.add(
60
60
  scheduler.schedule(function () {
61
61
  startWindow();
62
- !this.closed && subscriber.add(this.schedule(null, windowCreationInterval));
62
+ !this._closed && subscriber.add(this.schedule(null, windowCreationInterval));
63
63
  }, windowCreationInterval),
64
64
  )
65
65
  : (restartOnClose = true);
@@ -70,8 +70,8 @@ export function windowTime(windowTimeSpan: number, ...args: any[]) {
70
70
  cb(subscriber);
71
71
  subscriber.unsubscribe();
72
72
  };
73
- source.provideEnvironment(environment).subscribe(
74
- operatorSubscriber(subscriber, {
73
+ fa.provideEnvironment(environment).subscribe(
74
+ subscriber.operate({
75
75
  next: (value) => {
76
76
  loop((record) => {
77
77
  record.window.next(value);
@@ -8,7 +8,7 @@ export function windowToggle<R1, E1, B, R2, E2>(
8
8
  closingSelector: (openValue: B) => ObservableInput<R2, E2, any>,
9
9
  ) {
10
10
  return <R, E, A>(fa: Observable<R, E, A>): Observable<R | R1 | R2, E | E1 | E2, Observable<never, E, A>> => {
11
- return fa.operate((source, subscriber, environment) => {
11
+ return new Observable((subscriber, environment) => {
12
12
  const windows: Subject<never, E, A>[] = [];
13
13
  const handleError = (err: Cause<E>) => {
14
14
  while (0 < windows.length) {
@@ -19,7 +19,7 @@ export function windowToggle<R1, E1, B, R2, E2>(
19
19
  Observable.from(openings)
20
20
  .provideEnvironment(environment)
21
21
  .subscribe(
22
- operatorSubscriber(subscriber, {
22
+ subscriber.operate({
23
23
  next: (openValue) => {
24
24
  const window = new Subject<never, E, A>();
25
25
  windows.push(window);
@@ -50,30 +50,28 @@ export function windowToggle<R1, E1, B, R2, E2>(
50
50
  complete: noop,
51
51
  }),
52
52
  );
53
- source.provideEnvironment(environment).subscribe(
54
- operatorSubscriber(
55
- subscriber,
56
- {
57
- next: (value) => {
58
- const windowsCopy = windows.slice();
59
- for (const window of windowsCopy) {
60
- window.next(value);
61
- }
62
- },
63
- error: handleError,
64
- complete: () => {
65
- while (0 < windows.length) {
66
- windows.shift()!.complete();
67
- }
68
- subscriber.complete();
69
- },
53
+ fa.provideEnvironment(environment).subscribe(
54
+ subscriber.operate({
55
+ next: (value) => {
56
+ const windowsCopy = windows.slice();
57
+ for (const window of windowsCopy) {
58
+ window.next(value);
59
+ }
70
60
  },
71
- () => {
61
+ error: handleError,
62
+ complete: () => {
63
+ while (0 < windows.length) {
64
+ windows.shift()!.complete();
65
+ }
66
+ subscriber.complete();
67
+ },
68
+
69
+ finalize: () => {
72
70
  while (0 < windows.length) {
73
71
  windows.shift()!.unsubscribe();
74
72
  }
75
73
  },
76
- ),
74
+ }),
77
75
  );
78
76
  });
79
77
  };
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export function windowWhen(closingSelector: () => ObservableInput<never, never, any>) {
5
5
  return <R, E, A>(fa: Observable<R, E, A>): Observable<R, E, Observable<never, E, A>> => {
6
- return fa.operate((source, subscriber, environment) => {
6
+ return new Observable((subscriber, environment) => {
7
7
  let window: Subject<never, E, A> | null;
8
8
  let closingSubscriber: Subscriber<E, any> | undefined;
9
9
  const handleError = (err: Cause<E>) => {
@@ -31,22 +31,19 @@ export function windowWhen(closingSelector: () => ObservableInput<never, never,
31
31
  );
32
32
  };
33
33
  openWindow();
34
- source.provideEnvironment(environment).subscribe(
35
- operatorSubscriber(
36
- subscriber,
37
- {
38
- next: (value) => window!.next(value),
39
- error: handleError,
40
- complete: () => {
41
- window!.complete();
42
- subscriber.complete();
43
- },
34
+ fa.provideEnvironment(environment).subscribe(
35
+ subscriber.operate({
36
+ next: (value) => window!.next(value),
37
+ error: handleError,
38
+ complete: () => {
39
+ window!.complete();
40
+ subscriber.complete();
44
41
  },
45
- () => {
42
+ finalize: () => {
46
43
  closingSubscriber?.unsubscribe();
47
44
  window = null!;
48
45
  },
49
- ),
46
+ }),
50
47
  );
51
48
  });
52
49
  };