@fncts/observable 0.0.9 → 0.0.10

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 (146) hide show
  1. package/BehaviorSubject.d.ts +2 -2
  2. package/Notification.d.ts +4 -4
  3. package/Observable/api/connect.d.ts +2 -2
  4. package/Observable/api/connectable.d.ts +2 -2
  5. package/Observable/api/fromEvent.d.ts +4 -0
  6. package/Observable/api/race.d.ts +2 -1
  7. package/Observable/api/raceWith.d.ts +2 -2
  8. package/Observable/api/repeatWhen.d.ts +5 -2
  9. package/Observable/api/retryWhen.d.ts +2 -3
  10. package/Observable/api/share.d.ts +5 -4
  11. package/Observable/api/window.d.ts +2 -2
  12. package/Observable/api/windowCount.d.ts +2 -2
  13. package/Observable/api/windowTime.d.ts +5 -5
  14. package/Observable/api/windowToggle.d.ts +3 -3
  15. package/Observable/api/windowWhen.d.ts +3 -3
  16. package/Observable/api.d.ts +188 -194
  17. package/Observable/definition.d.ts +8 -6
  18. package/Operator.d.ts +2 -2
  19. package/_cjs/Action.cjs.map +1 -1
  20. package/_cjs/AnimationFrameAction.cjs.map +1 -1
  21. package/_cjs/AnimationFrameScheduler.cjs +0 -1
  22. package/_cjs/AnimationFrameScheduler.cjs.map +1 -1
  23. package/_cjs/BehaviorSubject.cjs +1 -1
  24. package/_cjs/BehaviorSubject.cjs.map +1 -1
  25. package/_cjs/Notification.cjs +21 -17
  26. package/_cjs/Notification.cjs.map +1 -1
  27. package/_cjs/Observable/api/connect.cjs +12 -10
  28. package/_cjs/Observable/api/connect.cjs.map +1 -1
  29. package/_cjs/Observable/api/connectable.cjs +6 -4
  30. package/_cjs/Observable/api/connectable.cjs.map +1 -1
  31. package/_cjs/Observable/api/fromCallback.cjs.map +1 -1
  32. package/_cjs/Observable/api/fromEvent.cjs +3 -0
  33. package/_cjs/Observable/api/fromEvent.cjs.map +1 -1
  34. package/_cjs/Observable/api/race.cjs +2 -2
  35. package/_cjs/Observable/api/race.cjs.map +1 -1
  36. package/_cjs/Observable/api/raceWith.cjs +8 -6
  37. package/_cjs/Observable/api/raceWith.cjs.map +1 -1
  38. package/_cjs/Observable/api/repeatWhen.cjs +46 -46
  39. package/_cjs/Observable/api/repeatWhen.cjs.map +1 -1
  40. package/_cjs/Observable/api/retryWhen.cjs +31 -38
  41. package/_cjs/Observable/api/retryWhen.cjs.map +1 -1
  42. package/_cjs/Observable/api/share.cjs +66 -64
  43. package/_cjs/Observable/api/share.cjs.map +1 -1
  44. package/_cjs/Observable/api/window.cjs +35 -33
  45. package/_cjs/Observable/api/window.cjs.map +1 -1
  46. package/_cjs/Observable/api/windowCount.cjs +41 -39
  47. package/_cjs/Observable/api/windowCount.cjs.map +1 -1
  48. package/_cjs/Observable/api/windowTime.cjs +66 -64
  49. package/_cjs/Observable/api/windowTime.cjs.map +1 -1
  50. package/_cjs/Observable/api/windowToggle.cjs +63 -61
  51. package/_cjs/Observable/api/windowToggle.cjs.map +1 -1
  52. package/_cjs/Observable/api/windowWhen.cjs +43 -41
  53. package/_cjs/Observable/api/windowWhen.cjs.map +1 -1
  54. package/_cjs/Observable/api.cjs +1270 -1105
  55. package/_cjs/Observable/api.cjs.map +1 -1
  56. package/_cjs/Observable/definition.cjs +9 -8
  57. package/_cjs/Observable/definition.cjs.map +1 -1
  58. package/_cjs/Observable/dom/animationFrames.cjs.map +1 -1
  59. package/_cjs/Observable.cjs.map +1 -1
  60. package/_cjs/Operator.cjs +11 -9
  61. package/_cjs/Operator.cjs.map +1 -1
  62. package/_cjs/Scheduler.cjs +0 -5
  63. package/_cjs/Scheduler.cjs.map +1 -1
  64. package/_cjs/Subject.cjs +3 -3
  65. package/_cjs/Subject.cjs.map +1 -1
  66. package/_cjs/Subscriber.cjs.map +1 -1
  67. package/_cjs/internal/util.cjs.map +1 -1
  68. package/_mjs/Action.mjs.map +1 -1
  69. package/_mjs/AnimationFrameAction.mjs.map +1 -1
  70. package/_mjs/AnimationFrameScheduler.mjs +0 -2
  71. package/_mjs/AnimationFrameScheduler.mjs.map +1 -1
  72. package/_mjs/BehaviorSubject.mjs +1 -1
  73. package/_mjs/BehaviorSubject.mjs.map +1 -1
  74. package/_mjs/Notification.mjs +18 -14
  75. package/_mjs/Notification.mjs.map +1 -1
  76. package/_mjs/Observable/api/connect.mjs +12 -10
  77. package/_mjs/Observable/api/connect.mjs.map +1 -1
  78. package/_mjs/Observable/api/connectable.mjs +6 -4
  79. package/_mjs/Observable/api/connectable.mjs.map +1 -1
  80. package/_mjs/Observable/api/fromCallback.mjs.map +1 -1
  81. package/_mjs/Observable/api/fromEvent.mjs +4 -0
  82. package/_mjs/Observable/api/fromEvent.mjs.map +1 -1
  83. package/_mjs/Observable/api/race.mjs +2 -2
  84. package/_mjs/Observable/api/race.mjs.map +1 -1
  85. package/_mjs/Observable/api/raceWith.mjs +7 -5
  86. package/_mjs/Observable/api/raceWith.mjs.map +1 -1
  87. package/_mjs/Observable/api/repeatWhen.mjs +47 -44
  88. package/_mjs/Observable/api/repeatWhen.mjs.map +1 -1
  89. package/_mjs/Observable/api/retryWhen.mjs +30 -33
  90. package/_mjs/Observable/api/retryWhen.mjs.map +1 -1
  91. package/_mjs/Observable/api/share.mjs +63 -61
  92. package/_mjs/Observable/api/share.mjs.map +1 -1
  93. package/_mjs/Observable/api/window.mjs +32 -30
  94. package/_mjs/Observable/api/window.mjs.map +1 -1
  95. package/_mjs/Observable/api/windowCount.mjs +40 -38
  96. package/_mjs/Observable/api/windowCount.mjs.map +1 -1
  97. package/_mjs/Observable/api/windowTime.mjs +60 -58
  98. package/_mjs/Observable/api/windowTime.mjs.map +1 -1
  99. package/_mjs/Observable/api/windowToggle.mjs +56 -54
  100. package/_mjs/Observable/api/windowToggle.mjs.map +1 -1
  101. package/_mjs/Observable/api/windowWhen.mjs +42 -40
  102. package/_mjs/Observable/api/windowWhen.mjs.map +1 -1
  103. package/_mjs/Observable/api.mjs +1198 -1031
  104. package/_mjs/Observable/api.mjs.map +1 -1
  105. package/_mjs/Observable/definition.mjs +9 -8
  106. package/_mjs/Observable/definition.mjs.map +1 -1
  107. package/_mjs/Observable/dom/animationFrames.mjs.map +1 -1
  108. package/_mjs/Observable.mjs.map +1 -1
  109. package/_mjs/Operator.mjs +11 -9
  110. package/_mjs/Operator.mjs.map +1 -1
  111. package/_mjs/Scheduler.mjs +0 -6
  112. package/_mjs/Scheduler.mjs.map +1 -1
  113. package/_mjs/Subject.mjs +3 -3
  114. package/_mjs/Subject.mjs.map +1 -1
  115. package/_mjs/Subscriber.mjs.map +1 -1
  116. package/_mjs/internal/util.mjs.map +1 -1
  117. package/_src/Action.ts +0 -1
  118. package/_src/AnimationFrameAction.ts +0 -2
  119. package/_src/AnimationFrameScheduler.ts +2 -7
  120. package/_src/BehaviorSubject.ts +3 -3
  121. package/_src/Notification.ts +21 -23
  122. package/_src/Observable/api/connect.ts +12 -9
  123. package/_src/Observable/api/connectable.ts +6 -7
  124. package/_src/Observable/api/fromCallback.ts +0 -1
  125. package/_src/Observable/api/fromEvent.ts +3 -0
  126. package/_src/Observable/api/race.ts +15 -13
  127. package/_src/Observable/api/raceWith.ts +15 -14
  128. package/_src/Observable/api/repeatWhen.ts +51 -56
  129. package/_src/Observable/api/retryWhen.ts +38 -43
  130. package/_src/Observable/api/share.ts +63 -71
  131. package/_src/Observable/api/window.ts +36 -41
  132. package/_src/Observable/api/windowCount.ts +44 -51
  133. package/_src/Observable/api/windowTime.ts +69 -81
  134. package/_src/Observable/api/windowToggle.ts +69 -73
  135. package/_src/Observable/api/windowWhen.ts +49 -55
  136. package/_src/Observable/api.ts +1489 -1495
  137. package/_src/Observable/definition.ts +24 -18
  138. package/_src/Observable/dom/animationFrames.ts +16 -6
  139. package/_src/Observable/instances.ts +0 -23
  140. package/_src/Observable.ts +0 -2
  141. package/_src/Operator.ts +20 -15
  142. package/_src/Scheduler.ts +0 -6
  143. package/_src/Subject.ts +1 -1
  144. package/_src/Subscriber.ts +3 -2
  145. package/_src/internal/util.ts +8 -4
  146. package/package.json +2 -2
@@ -30,13 +30,14 @@ export class Observable<R, E, A> implements Subscribable<E, A>, AsyncIterable<A>
30
30
  }
31
31
  }
32
32
 
33
- [Symbol.asyncIterator]() {
33
+ [Symbol.asyncIterator]<E, A>(this: Observable<never, E, A>) {
34
34
  let done = false;
35
35
  const queue: A[] = [];
36
- let error: Cause<E>;
37
36
 
37
+ let error: Cause<E>;
38
38
  let resolveCurrent: ((a: A) => void) | undefined;
39
39
  let rejectCurrent: ((err: unknown) => void) | undefined;
40
+
40
41
  this.subscribe({
41
42
  next: (value) => {
42
43
  if (resolveCurrent) {
@@ -86,30 +87,37 @@ export class Observable<R, E, A> implements Subscribable<E, A>, AsyncIterable<A>
86
87
  return observable;
87
88
  }
88
89
 
89
- provide(environment: Environment<R>): Observable<never, E, A> {
90
- const observable = new Observable<never, E, A>();
91
- observable.source = this;
92
- observable.environment = environment;
90
+ provideEnvironment(environment: Environment<R>): Observable<never, E, A>;
91
+ provideEnvironment<In>(environment: Environment<In>): Observable<Exclude<R, In>, E, A>;
92
+ provideEnvironment<In>(environment: Environment<In>): Observable<Exclude<R, In>, E, A> {
93
+ const observable = new Observable<never, E, A>(this.subscribeInternal);
94
+ observable.source = this.source;
95
+ observable.operator = this.operator;
96
+ observable.environment = this.environment.union(environment);
93
97
  return observable;
94
98
  }
95
99
 
96
- subscribe(observer?: Partial<Observer<E, A>>, environment?: Environment<R>): Subscription;
97
- subscribe(observer?: (value: A) => void, environment?: Environment<R>): Subscription;
98
- subscribe(observer?: Partial<Observer<E, A>> | ((value: A) => void), environment?: Environment<R>): Subscription {
100
+ subscribe<E, A>(this: Observable<never, E, A>, observer?: Subscriber<E, A>): Subscription;
101
+ subscribe<E, A>(this: Observable<never, E, A>, observer?: Partial<Observer<E, A>>): Subscription;
102
+ subscribe<E, A>(this: Observable<never, E, A>, observer?: (value: A) => void): Subscription;
103
+ subscribe<E, A>(
104
+ this: Observable<never, E, A>,
105
+ observer?: Partial<Observer<E, A>> | ((value: A) => void),
106
+ ): Subscription {
99
107
  const subscriber: Subscriber<E, A> = isSubscriber(observer) ? observer : new SafeSubscriber(observer);
100
108
 
101
109
  subscriber.add(
102
110
  this.operator
103
- ? this.operator.call(subscriber, this.source, environment ?? this.environment)
111
+ ? this.operator.call(subscriber, this.source, this.environment)
104
112
  : this.source
105
- ? this.subscribeInternal(subscriber, environment ?? this.environment)
106
- : this.trySubscribe(subscriber, environment ?? this.environment),
113
+ ? this.subscribeInternal(subscriber, this.environment)
114
+ : this.trySubscribe(subscriber, this.environment),
107
115
  );
108
116
 
109
117
  return subscriber;
110
118
  }
111
119
 
112
- protected trySubscribe(subscriber: Subscriber<E, A>, environment: Environment<R>): Finalizer {
120
+ protected trySubscribe(subscriber: Subscriber<E, A>, environment: Environment<any>): Finalizer {
113
121
  try {
114
122
  return this.subscribeInternal(subscriber, environment);
115
123
  } catch (err) {
@@ -118,8 +126,8 @@ export class Observable<R, E, A> implements Subscribable<E, A>, AsyncIterable<A>
118
126
  }
119
127
  }
120
128
 
121
- protected subscribeInternal(subscriber: Subscriber<E, A>, environment: Environment<R>): Finalizer {
122
- this.source?.subscribe(subscriber, environment);
129
+ protected subscribeInternal(subscriber: Subscriber<E, A>, environment: Environment<any>): Finalizer {
130
+ this.source?.provideEnvironment(environment).subscribe(subscriber);
123
131
  }
124
132
  }
125
133
 
@@ -130,13 +138,11 @@ export class EnvironmentWith<R0, R, E, A> extends Observable<R0 | R, E, A> {
130
138
  if (!this.map.has(environment)) {
131
139
  this.map.set(environment, f(environment as Environment<R0>));
132
140
  }
133
- return this.map.get(environment)!.subscribe(subsciber);
141
+ return this.map.get(environment)!.provideEnvironment(environment).subscribe(subsciber);
134
142
  });
135
143
  }
136
144
  }
137
-
138
145
  export const EMPTY: Observable<never, never, never> = new Observable((subscriber) => subscriber.complete());
139
-
140
146
  export function isObservable(u: unknown): u is Observable<unknown, unknown, unknown> {
141
147
  return isObject(u) && ObservableTypeId in u;
142
148
  }
@@ -1,15 +1,25 @@
1
1
  import { animationFrameProvider } from "@fncts/observable/internal/animationFrameProvider";
2
2
  import { performanceTimestampProvider } from "@fncts/observable/internal/performanceTimestampProvider";
3
3
 
4
- export function animationFrames(
5
- timestampProvider?: TimestampProvider,
6
- ): Observable<never, never, { timestamp: number; elapsed: number }> {
4
+ export function animationFrames(timestampProvider?: TimestampProvider): Observable<
5
+ never,
6
+ never,
7
+ {
8
+ timestamp: number;
9
+ elapsed: number;
10
+ }
11
+ > {
7
12
  return timestampProvider ? animationFramesInternal(timestampProvider) : DEFAULT_ANIMATION_FRAMES;
8
13
  }
9
14
 
10
- function animationFramesInternal(
11
- timestampProvider?: TimestampProvider,
12
- ): Observable<never, never, { timestamp: number; elapsed: number }> {
15
+ function animationFramesInternal(timestampProvider?: TimestampProvider): Observable<
16
+ never,
17
+ never,
18
+ {
19
+ timestamp: number;
20
+ elapsed: number;
21
+ }
22
+ > {
13
23
  const { schedule } = animationFrameProvider;
14
24
  return new Observable((subscriber) => {
15
25
  const subscription = new Subscription();
@@ -1,9 +1,6 @@
1
1
  // import type * as HKT from "@principia/base/HKT";
2
-
3
2
  // import * as P from "@principia/base/prelude";
4
-
5
3
  // import * as O from "./core.js";
6
-
7
4
  // export interface ObservableF extends HKT.HKT {
8
5
  // readonly type: O.Observable<this["E"], this["A"]>;
9
6
  // readonly index: number;
@@ -12,43 +9,33 @@
12
9
  // A: "+";
13
10
  // };
14
11
  // }
15
-
16
12
  // export const Functor: P.Functor<ObservableF> = P.Functor({
17
13
  // map_: O.map_,
18
14
  // });
19
-
20
15
  // export const FunctorWithIndex: P.FunctorWithIndex<ObservableF> = P.FunctorWithIndex({
21
16
  // imap_: O.mapWithIndex,
22
17
  // });
23
-
24
18
  // export const SemimonoidalFunctor: P.SemimonoidalFunctor<ObservableF> = P.SemimonoidalFunctor({
25
19
  // map_: O.map_,
26
20
  // cross_: O.cross_,
27
21
  // crossWith_: O.crossWith_,
28
22
  // });
29
-
30
23
  // export const Apply: P.Apply<ObservableF> = P.Apply({
31
24
  // map_: O.map_,
32
25
  // cross_: O.cross_,
33
26
  // crossWith_: O.crossWith_,
34
27
  // ap_: O.ap_,
35
28
  // });
36
-
37
29
  // export const apS = P.apSF(Apply);
38
-
39
30
  // export const apT = P.apTF(Apply);
40
-
41
31
  // export const sequenceS = P.sequenceSF(Apply);
42
-
43
32
  // export const sequenceT = P.sequenceTF(Apply);
44
-
45
33
  // export const MonoidalFunctor: P.MonoidalFunctor<ObservableF> = P.MonoidalFunctor({
46
34
  // map_: O.map_,
47
35
  // cross_: O.cross_,
48
36
  // crossWith_: O.crossWith_,
49
37
  // unit: O.unit,
50
38
  // });
51
-
52
39
  // export const Applicative: P.Applicative<ObservableF> = P.Applicative({
53
40
  // map_: O.map_,
54
41
  // cross_: O.cross_,
@@ -56,7 +43,6 @@
56
43
  // unit: O.unit,
57
44
  // pure: O.pure,
58
45
  // });
59
-
60
46
  // export const Monad: P.Monad<ObservableF> = P.Monad({
61
47
  // map_: O.map_,
62
48
  // cross_: O.cross_,
@@ -66,19 +52,12 @@
66
52
  // chain_: O.concatMap_,
67
53
  // flatten: O.flatten,
68
54
  // });
69
-
70
55
  // const _do = O.pure({});
71
-
72
56
  // export { _do as do };
73
-
74
57
  // export const chainS_ = P.chainSF_(Monad);
75
-
76
58
  // export const chainS = P.chainSF(Monad);
77
-
78
59
  // export const pureS_ = P.pureSF_(Monad);
79
-
80
60
  // export const pureS = P.pureSF(Monad);
81
-
82
61
  // export const MonadSwitch: P.Monad<ObservableF> = P.Monad({
83
62
  // map_: O.map_,
84
63
  // cross_: O.cross_,
@@ -88,7 +67,6 @@
88
67
  // chain_: O.switchMap_,
89
68
  // flatten: O.switchFlatten,
90
69
  // });
91
-
92
70
  // export const Filterable: P.Filterable<ObservableF> = P.Filterable({
93
71
  // map_: O.map_,
94
72
  // filter_: O.filter_,
@@ -96,7 +74,6 @@
96
74
  // partition_: O.partition_,
97
75
  // partitionMap_: O.partitionMap_,
98
76
  // });
99
-
100
77
  // export const FilterableWithIndex: P.FilterableWithIndex<ObservableF> = P.FilterableWithIndex({
101
78
  // imap_: O.mapWithIndex,
102
79
  // ifilter_: O.ifilter_,
@@ -3,7 +3,6 @@ export * from "./Observable/api.js";
3
3
  export * from "./Observable/definition.js";
4
4
  export * from "./Observable/instances.js";
5
5
  // codegen:end
6
-
7
6
  // codegen:start { preset: barrel, include: Observable/api/*.ts }
8
7
  export * from "./Observable/api/connect.js";
9
8
  export * from "./Observable/api/connectable.js";
@@ -21,7 +20,6 @@ export * from "./Observable/api/windowTime.js";
21
20
  export * from "./Observable/api/windowToggle.js";
22
21
  export * from "./Observable/api/windowWhen.js";
23
22
  // codegen:end
24
-
25
23
  // codegen:start { preset: barrel, include: Observable/dom/*.ts }
26
24
  export * from "./Observable/dom/animationFrames.js";
27
25
  // codegen:end
package/_src/Operator.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  export interface Operator<E, A> {
2
2
  call(subscriber: Subscriber<E, A>, source: any, environment: Environment<any>): Finalizer;
3
3
  }
4
-
5
4
  export class OperatorSubscriber<E, A> extends Subscriber<E, A> {
6
5
  constructor(destination: Subscriber<any, any>, observer: Partial<Observer<E, A>>, private onFinalize?: () => void) {
7
6
  super(destination);
@@ -40,14 +39,12 @@ export class OperatorSubscriber<E, A> extends Subscriber<E, A> {
40
39
  }
41
40
  : super.complete;
42
41
  }
43
-
44
42
  unsubscribe() {
45
43
  const { closed } = this;
46
44
  super.unsubscribe();
47
45
  !closed && this.onFinalize?.();
48
46
  }
49
47
  }
50
-
51
48
  export function operatorSubscriber<E, A, E1, A1>(
52
49
  destination: Subscriber<E1, A1>,
53
50
  observer: Partial<Observer<E, A>>,
@@ -55,19 +52,27 @@ export function operatorSubscriber<E, A, E1, A1>(
55
52
  ): OperatorSubscriber<E, A> {
56
53
  return new OperatorSubscriber(destination, observer, onFinalize);
57
54
  }
58
-
59
55
  /**
60
- * @tsplus fluent fncts.observable.Observable operate
56
+ * @tsplus pipeable fncts.observable.Observable operate
61
57
  */
62
58
  export function operate_<R, E, A, R1, E1, A1>(
63
- source: Observable<R, E, A>,
64
- f: (source: Observable<R, E, A>, subscriber: Subscriber<E1, A1>) => (() => void) | void,
65
- ): Observable<R1, E1, A1> {
66
- return source.lift(function (this: Subscriber<E1, A1>, liftedSource: Observable<R, E, A>) {
67
- try {
68
- f(liftedSource, this);
69
- } catch (err) {
70
- this.error(Cause.halt(err));
71
- }
72
- });
59
+ f: (
60
+ source: Observable<R, E, A>,
61
+ subscriber: Subscriber<E1, A1>,
62
+ environment: Environment<R | R1>,
63
+ ) => (() => void) | void,
64
+ ) {
65
+ return (source: Observable<R, E, A>): Observable<R1, E1, A1> => {
66
+ return source.lift(function (
67
+ this: Subscriber<E1, A1>,
68
+ liftedSource: Observable<R, E, A>,
69
+ environment: Environment<R | R1>,
70
+ ) {
71
+ try {
72
+ f(liftedSource, this, environment);
73
+ } catch (err) {
74
+ this.error(Cause.halt(err));
75
+ }
76
+ });
77
+ };
73
78
  }
package/_src/Scheduler.ts CHANGED
@@ -8,12 +8,6 @@ export interface SchedulerAction<T> extends Subscription {
8
8
  schedule(state?: T, delay?: number): Subscription;
9
9
  }
10
10
 
11
- /*
12
- * -------------------------------------------------------------------------------------------------
13
- * Scheduler
14
- * -------------------------------------------------------------------------------------------------
15
- */
16
-
17
11
  export const SchedulerTypeId = Symbol.for("fncts.observable.Scheduler");
18
12
  export type SchedulerTypeId = typeof SchedulerTypeId;
19
13
 
package/_src/Subject.ts CHANGED
@@ -118,7 +118,7 @@ export class AnonymousSubject<R, E, A> extends Subject<R, E, A> {
118
118
 
119
119
  /** @internal */
120
120
  protected subscribeInternal<E, A>(subscriber: Subscriber<E, A>) {
121
- return this.source?.subscribe(subscriber) ?? Subscription.empty;
121
+ return this.source?.provideEnvironment(this.environment).subscribe(subscriber) ?? Subscription.empty;
122
122
  }
123
123
  }
124
124
 
@@ -63,7 +63,6 @@ export class Subscriber<E, A> extends Subscription implements Observer<E, A> {
63
63
  }
64
64
  }
65
65
  }
66
-
67
66
  export class SafeSubscriber<E, A> extends Subscriber<E, A> {
68
67
  constructor(observer?: Partial<Observer<E, A>> | ((value: A) => void)) {
69
68
  super();
@@ -118,7 +117,9 @@ function defaultErrorHandler(error: any) {
118
117
  throw error;
119
118
  }
120
119
 
121
- export const EMPTY_OBSERVER: Readonly<Observer<any, any>> & { closed: true } = {
120
+ export const EMPTY_OBSERVER: Readonly<Observer<any, any>> & {
121
+ closed: true;
122
+ } = {
122
123
  closed: true,
123
124
  next: noop,
124
125
  error: defaultErrorHandler,
@@ -33,7 +33,10 @@ export function reportUnhandledError(err: unknown) {
33
33
 
34
34
  export function arrayOrObject<T, O extends Record<string, T>>(
35
35
  args: ReadonlyArray<T> | [O] | [ReadonlyArray<T>],
36
- ): { args: ReadonlyArray<T>; keys: ReadonlyArray<string> | null } {
36
+ ): {
37
+ args: ReadonlyArray<T>;
38
+ keys: ReadonlyArray<string> | null;
39
+ } {
37
40
  if (args.length === 1) {
38
41
  const first = args[0];
39
42
  if (Array.isArray(first)) {
@@ -47,7 +50,6 @@ export function arrayOrObject<T, O extends Record<string, T>>(
47
50
  };
48
51
  }
49
52
  }
50
-
51
53
  return { args: args as ReadonlyArray<T>, keys: null };
52
54
  }
53
55
 
@@ -56,14 +58,16 @@ export function arrayOrObject<T, O extends Record<string, T>>(
56
58
  * ReadableStream
57
59
  * -------------------------------------------------------------------------------------------------
58
60
  */
59
-
60
61
  interface ReadableStreamDefaultReaderLike<T> {
61
62
  read(): PromiseLike<
62
63
  | {
63
64
  done: false;
64
65
  value: T;
65
66
  }
66
- | { done: true; value?: undefined }
67
+ | {
68
+ done: true;
69
+ value?: undefined;
70
+ }
67
71
  >;
68
72
  releaseLock(): void;
69
73
  }
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@fncts/observable",
3
- "version": "0.0.9",
3
+ "version": "0.0.10",
4
4
  "dependencies": {
5
- "@fncts/base": "0.0.20"
5
+ "@fncts/base": "0.0.21"
6
6
  },
7
7
  "exports": {
8
8
  "./*": {