@fncts/observable 0.0.1 → 0.0.4
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.
- package/BehaviorSubject.d.ts +1 -1
- package/Notification.d.ts +1 -1
- package/Observable/api/connect.d.ts +1 -1
- package/Observable/api/connectable.d.ts +5 -5
- package/Observable/api/fromCallback.d.ts +2 -2
- package/Observable/api/fromEvent.d.ts +1 -1
- package/Observable/api/race.d.ts +2 -2
- package/Observable/api/raceWith.d.ts +1 -1
- package/Observable/api/repeatWhen.d.ts +2 -2
- package/Observable/api/retryWhen.d.ts +3 -3
- package/Observable/api/share.d.ts +5 -6
- package/Observable/api/window.d.ts +2 -2
- package/Observable/api/windowCount.d.ts +1 -1
- package/Observable/api/windowTime.d.ts +3 -3
- package/Observable/api/windowToggle.d.ts +2 -2
- package/Observable/api/windowWhen.d.ts +2 -2
- package/Observable/api.d.ts +204 -164
- package/Observable/definition.d.ts +33 -15
- package/Observable/dom/animationFrames.d.ts +1 -1
- package/Observer.d.ts +1 -1
- package/Operator.d.ts +4 -3
- package/Subject.d.ts +10 -9
- package/Subscriber.d.ts +1 -1
- package/_cjs/BehaviorSubject.cjs.map +1 -1
- package/_cjs/Observable/api/connect.cjs.map +1 -1
- package/_cjs/Observable/api/connectable.cjs.map +1 -1
- package/_cjs/Observable/api/fromCallback.cjs.map +1 -1
- package/_cjs/Observable/api/race.cjs.map +1 -1
- package/_cjs/Observable/api/raceWith.cjs.map +1 -1
- package/_cjs/Observable/api/repeatWhen.cjs.map +1 -1
- package/_cjs/Observable/api/retryWhen.cjs.map +1 -1
- package/_cjs/Observable/api/share.cjs +2 -11
- package/_cjs/Observable/api/share.cjs.map +1 -1
- package/_cjs/Observable/api/window.cjs.map +1 -1
- package/_cjs/Observable/api/windowTime.cjs.map +1 -1
- package/_cjs/Observable/api/windowToggle.cjs.map +1 -1
- package/_cjs/Observable/api/windowWhen.cjs.map +1 -1
- package/_cjs/Observable/api.cjs +326 -309
- package/_cjs/Observable/api.cjs.map +1 -1
- package/_cjs/Observable/definition.cjs +102 -16
- package/_cjs/Observable/definition.cjs.map +1 -1
- package/_cjs/Operator.cjs.map +1 -1
- package/_cjs/Subject.cjs +2 -2
- package/_cjs/Subject.cjs.map +1 -1
- package/_cjs/global.cjs +3 -1
- package/_cjs/global.cjs.map +1 -1
- package/_mjs/BehaviorSubject.mjs.map +1 -1
- package/_mjs/Observable/api/connect.mjs.map +1 -1
- package/_mjs/Observable/api/connectable.mjs.map +1 -1
- package/_mjs/Observable/api/fromCallback.mjs.map +1 -1
- package/_mjs/Observable/api/race.mjs.map +1 -1
- package/_mjs/Observable/api/raceWith.mjs.map +1 -1
- package/_mjs/Observable/api/repeatWhen.mjs.map +1 -1
- package/_mjs/Observable/api/retryWhen.mjs.map +1 -1
- package/_mjs/Observable/api/share.mjs +1 -6
- package/_mjs/Observable/api/share.mjs.map +1 -1
- package/_mjs/Observable/api/window.mjs.map +1 -1
- package/_mjs/Observable/api/windowTime.mjs.map +1 -1
- package/_mjs/Observable/api/windowToggle.mjs.map +1 -1
- package/_mjs/Observable/api/windowWhen.mjs.map +1 -1
- package/_mjs/Observable/api.mjs +302 -294
- package/_mjs/Observable/api.mjs.map +1 -1
- package/_mjs/Observable/definition.mjs +97 -15
- package/_mjs/Observable/definition.mjs.map +1 -1
- package/_mjs/Operator.mjs.map +1 -1
- package/_mjs/Subject.mjs +2 -2
- package/_mjs/Subject.mjs.map +1 -1
- package/_mjs/global.mjs +1 -1
- package/_mjs/global.mjs.map +1 -1
- package/_src/BehaviorSubject.ts +1 -1
- package/_src/Observable/api/connect.ts +5 -5
- package/_src/Observable/api/connectable.ts +7 -7
- package/_src/Observable/api/fromCallback.ts +8 -5
- package/_src/Observable/api/fromEvent.ts +1 -1
- package/_src/Observable/api/race.ts +2 -2
- package/_src/Observable/api/raceWith.ts +7 -3
- package/_src/Observable/api/repeatWhen.ts +8 -8
- package/_src/Observable/api/retryWhen.ts +8 -8
- package/_src/Observable/api/share.ts +10 -16
- package/_src/Observable/api/window.ts +5 -5
- package/_src/Observable/api/windowCount.ts +5 -5
- package/_src/Observable/api/windowTime.ts +18 -18
- package/_src/Observable/api/windowToggle.ts +8 -8
- package/_src/Observable/api/windowWhen.ts +6 -6
- package/_src/Observable/api.ts +525 -430
- package/_src/Observable/definition.ts +94 -21
- package/_src/Observable/dom/animationFrames.ts +2 -2
- package/_src/Operator.ts +6 -6
- package/_src/Subject.ts +9 -9
- package/_src/global.ts +5 -34
- package/global.d.ts +5 -33
- package/package.json +6 -2
- package/_cjs/demo.cjs +0 -40
- package/_cjs/demo.cjs.map +0 -1
- package/_mjs/demo.mjs +0 -30
- package/_mjs/demo.mjs.map +0 -1
- package/_src/demo.ts +0 -29
- package/demo.d.ts +0 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export declare namespace Observable {
|
|
2
|
-
export type TypeOf<X> = X extends ObservableInput<any, infer A> ? A : never;
|
|
3
|
-
export type ErrorOf<X> = X extends ObservableInput<infer E, any> ? E : never;
|
|
2
|
+
export type TypeOf<X> = X extends ObservableInput<any, any, infer A> ? A : never;
|
|
3
|
+
export type ErrorOf<X> = X extends ObservableInput<any, infer E, any> ? E : never;
|
|
4
|
+
export type EnvironmentOf<X> = X extends ObservableInput<infer R, any, any> ? R : never;
|
|
4
5
|
}
|
|
5
6
|
|
|
6
7
|
export const ObservableTypeId = Symbol.for("@principia/observable/Observable");
|
|
@@ -10,60 +11,132 @@ export type ObservableTypeId = typeof ObservableTypeId;
|
|
|
10
11
|
* @tsplus type fncts.observable.Observable
|
|
11
12
|
* @tsplus companion fncts.observable.ObservableOps
|
|
12
13
|
*/
|
|
13
|
-
export class Observable<E, A> implements Subscribable<E, A> {
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
export class Observable<R, E, A> implements Subscribable<E, A>, AsyncIterable<A> {
|
|
15
|
+
declare _R: () => R;
|
|
16
|
+
declare _E: () => E;
|
|
17
|
+
declare _A: () => A;
|
|
16
18
|
|
|
17
19
|
readonly [ObservableTypeId]: ObservableTypeId = ObservableTypeId;
|
|
18
20
|
|
|
19
|
-
protected source: Observable<any, any> | undefined;
|
|
21
|
+
protected source: Observable<any, any, any> | undefined;
|
|
20
22
|
protected operator: Operator<E, A> | undefined;
|
|
23
|
+
protected environment: Environment<any> = Environment();
|
|
21
24
|
|
|
22
|
-
constructor(
|
|
25
|
+
constructor(
|
|
26
|
+
subscribe?: (this: Observable<R, E, A>, subscriber: Subscriber<E, A>, environment: Environment<R>) => Finalizer,
|
|
27
|
+
) {
|
|
23
28
|
if (subscribe) {
|
|
24
29
|
this.subscribeInternal = subscribe;
|
|
25
30
|
}
|
|
26
31
|
}
|
|
27
32
|
|
|
28
|
-
|
|
29
|
-
|
|
33
|
+
[Symbol.asyncIterator]() {
|
|
34
|
+
let done = false;
|
|
35
|
+
const queue: A[] = [];
|
|
36
|
+
let error: Cause<E>;
|
|
37
|
+
|
|
38
|
+
let resolveCurrent: ((a: A) => void) | undefined;
|
|
39
|
+
let rejectCurrent: ((err: unknown) => void) | undefined;
|
|
40
|
+
this.subscribe({
|
|
41
|
+
next: (value) => {
|
|
42
|
+
if (resolveCurrent) {
|
|
43
|
+
resolveCurrent(value);
|
|
44
|
+
} else {
|
|
45
|
+
queue.push(value);
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
error: (err) => {
|
|
49
|
+
if (rejectCurrent) {
|
|
50
|
+
rejectCurrent(err);
|
|
51
|
+
} else {
|
|
52
|
+
error = err;
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
complete: () => {
|
|
56
|
+
done = true;
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
return {
|
|
60
|
+
next() {
|
|
61
|
+
if (error) {
|
|
62
|
+
return Promise.reject(error);
|
|
63
|
+
}
|
|
64
|
+
if (done) {
|
|
65
|
+
return Promise.resolve({ done, value: undefined });
|
|
66
|
+
}
|
|
67
|
+
if (queue.length) {
|
|
68
|
+
return Promise.resolve({ done, value: queue.shift()! });
|
|
69
|
+
}
|
|
70
|
+
return new Promise<A>((resolve, reject) => {
|
|
71
|
+
resolveCurrent = resolve;
|
|
72
|
+
rejectCurrent = reject;
|
|
73
|
+
}).then((value) => {
|
|
74
|
+
resolveCurrent = undefined;
|
|
75
|
+
rejectCurrent = undefined;
|
|
76
|
+
return { done: false, value };
|
|
77
|
+
});
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
lift<R1, E1, A1>(operator: Operator<E1, A1>): Observable<R1, E1, A1> {
|
|
83
|
+
const observable = new Observable<R1, E1, A1>();
|
|
30
84
|
observable.source = this;
|
|
31
85
|
observable.operator = operator;
|
|
32
86
|
return observable;
|
|
33
87
|
}
|
|
34
88
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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;
|
|
93
|
+
return observable;
|
|
94
|
+
}
|
|
95
|
+
|
|
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 {
|
|
38
99
|
const subscriber: Subscriber<E, A> = isSubscriber(observer) ? observer : new SafeSubscriber(observer);
|
|
39
100
|
|
|
40
101
|
subscriber.add(
|
|
41
102
|
this.operator
|
|
42
|
-
? this.operator.call(subscriber, this.source)
|
|
103
|
+
? this.operator.call(subscriber, this.source, environment ?? this.environment)
|
|
43
104
|
: this.source
|
|
44
|
-
? this.subscribeInternal(subscriber)
|
|
45
|
-
: this.trySubscribe(subscriber),
|
|
105
|
+
? this.subscribeInternal(subscriber, environment ?? this.environment)
|
|
106
|
+
: this.trySubscribe(subscriber, environment ?? this.environment),
|
|
46
107
|
);
|
|
47
108
|
|
|
48
109
|
return subscriber;
|
|
49
110
|
}
|
|
50
111
|
|
|
51
|
-
protected trySubscribe(subscriber: Subscriber<E, A>): Finalizer {
|
|
112
|
+
protected trySubscribe(subscriber: Subscriber<E, A>, environment: Environment<R>): Finalizer {
|
|
52
113
|
try {
|
|
53
|
-
return this.subscribeInternal(subscriber);
|
|
114
|
+
return this.subscribeInternal(subscriber, environment);
|
|
54
115
|
} catch (err) {
|
|
55
116
|
subscriber.error(Cause.halt(err));
|
|
56
117
|
return noop;
|
|
57
118
|
}
|
|
58
119
|
}
|
|
59
120
|
|
|
60
|
-
protected subscribeInternal(subscriber: Subscriber<E, A>): Finalizer {
|
|
61
|
-
this.source?.subscribe(subscriber);
|
|
121
|
+
protected subscribeInternal(subscriber: Subscriber<E, A>, environment: Environment<R>): Finalizer {
|
|
122
|
+
this.source?.subscribe(subscriber, environment);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export class EnvironmentWith<R0, R, E, A> extends Observable<R0 | R, E, A> {
|
|
127
|
+
private map: WeakMap<Environment<any>, Observable<any, any, any>> = new WeakMap();
|
|
128
|
+
constructor(f: (environment: Environment<R0>) => Observable<R, E, A>) {
|
|
129
|
+
super((subsciber, environment) => {
|
|
130
|
+
if (!this.map.has(environment)) {
|
|
131
|
+
this.map.set(environment, f(environment as Environment<R0>));
|
|
132
|
+
}
|
|
133
|
+
return this.map.get(environment)!.subscribe(subsciber);
|
|
134
|
+
});
|
|
62
135
|
}
|
|
63
136
|
}
|
|
64
137
|
|
|
65
|
-
export const EMPTY: Observable<never, never> = new Observable((subscriber) => subscriber.complete());
|
|
138
|
+
export const EMPTY: Observable<never, never, never> = new Observable((subscriber) => subscriber.complete());
|
|
66
139
|
|
|
67
|
-
export function isObservable(u: unknown): u is Observable<unknown, unknown> {
|
|
140
|
+
export function isObservable(u: unknown): u is Observable<unknown, unknown, unknown> {
|
|
68
141
|
return isObject(u) && ObservableTypeId in u;
|
|
69
142
|
}
|
|
@@ -3,13 +3,13 @@ import { performanceTimestampProvider } from "@fncts/observable/internal/perform
|
|
|
3
3
|
|
|
4
4
|
export function animationFrames(
|
|
5
5
|
timestampProvider?: TimestampProvider,
|
|
6
|
-
): Observable<never, { timestamp: number; elapsed: number }> {
|
|
6
|
+
): Observable<never, never, { timestamp: number; elapsed: number }> {
|
|
7
7
|
return timestampProvider ? animationFramesInternal(timestampProvider) : DEFAULT_ANIMATION_FRAMES;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
function animationFramesInternal(
|
|
11
11
|
timestampProvider?: TimestampProvider,
|
|
12
|
-
): Observable<never, { timestamp: number; elapsed: number }> {
|
|
12
|
+
): Observable<never, never, { timestamp: number; elapsed: number }> {
|
|
13
13
|
const { schedule } = animationFrameProvider;
|
|
14
14
|
return new Observable((subscriber) => {
|
|
15
15
|
const subscription = new Subscription();
|
package/_src/Operator.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export interface Operator<E, A> {
|
|
2
|
-
call(subscriber: Subscriber<E, A>, source: any): Finalizer;
|
|
2
|
+
call(subscriber: Subscriber<E, A>, source: any, environment: Environment<any>): Finalizer;
|
|
3
3
|
}
|
|
4
4
|
|
|
5
5
|
export class OperatorSubscriber<E, A> extends Subscriber<E, A> {
|
|
@@ -59,11 +59,11 @@ export function operatorSubscriber<E, A, E1, A1>(
|
|
|
59
59
|
/**
|
|
60
60
|
* @tsplus fluent fncts.observable.Observable operate
|
|
61
61
|
*/
|
|
62
|
-
export function operate_<E, A, E1, A1>(
|
|
63
|
-
source: Observable<E, A>,
|
|
64
|
-
f: (source: Observable<E, A>, subscriber: Subscriber<E1, A1>) => (() => void) | void,
|
|
65
|
-
): Observable<E1, A1> {
|
|
66
|
-
return source.lift(function (this: Subscriber<E1, A1>, liftedSource: Observable<E, A>) {
|
|
62
|
+
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
67
|
try {
|
|
68
68
|
f(liftedSource, this);
|
|
69
69
|
} catch (err) {
|
package/_src/Subject.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { arrayRemove } from "@fncts/observable/internal/util";
|
|
|
2
2
|
|
|
3
3
|
export interface SubjectLike<E, A> extends Observer<E, A>, Subscribable<E, A> {}
|
|
4
4
|
|
|
5
|
-
export class Subject<E, A> extends Observable<E, A> implements SubscriptionLike {
|
|
5
|
+
export class Subject<R, E, A> extends Observable<R, E, A> implements SubscriptionLike {
|
|
6
6
|
closed = false;
|
|
7
7
|
protected observers: Array<Observer<E, A>> = [];
|
|
8
8
|
protected isStopped = false;
|
|
@@ -13,7 +13,7 @@ export class Subject<E, A> extends Observable<E, A> implements SubscriptionLike
|
|
|
13
13
|
super();
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
lift<E1, B>(operator: Operator<E1, B>): Observable<E1, B> {
|
|
16
|
+
lift<R1, E1, B>(operator: Operator<E1, B>): Observable<R1, E1, B> {
|
|
17
17
|
const subject = new AnonymousSubject(this, this);
|
|
18
18
|
subject.operator = operator as any;
|
|
19
19
|
return subject as any;
|
|
@@ -67,9 +67,9 @@ export class Subject<E, A> extends Observable<E, A> implements SubscriptionLike
|
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
protected trySubscribe(subscriber: Subscriber<E, A>): Finalizer {
|
|
70
|
+
protected trySubscribe(subscriber: Subscriber<E, A>, environment: Environment<R>): Finalizer {
|
|
71
71
|
this.throwIfClosed();
|
|
72
|
-
return super.trySubscribe(subscriber);
|
|
72
|
+
return super.trySubscribe(subscriber, environment);
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
protected subscribeInternal(subscriber: Subscriber<E, A>): Subscription {
|
|
@@ -94,15 +94,15 @@ export class Subject<E, A> extends Observable<E, A> implements SubscriptionLike
|
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
-
asObservable(): Observable<E, A> {
|
|
98
|
-
const observable: any = new Observable<E, A>();
|
|
97
|
+
asObservable(): Observable<R, E, A> {
|
|
98
|
+
const observable: any = new Observable<R, E, A>();
|
|
99
99
|
observable.source = this;
|
|
100
100
|
return observable;
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
export class AnonymousSubject<E, A> extends Subject<E, A> {
|
|
105
|
-
constructor(protected destination?: Observer<E, A>, source?: Observable<E, A>) {
|
|
104
|
+
export class AnonymousSubject<R, E, A> extends Subject<R, E, A> {
|
|
105
|
+
constructor(protected destination?: Observer<E, A>, source?: Observable<R, E, A>) {
|
|
106
106
|
super();
|
|
107
107
|
this.source = source;
|
|
108
108
|
}
|
|
@@ -122,7 +122,7 @@ export class AnonymousSubject<E, A> extends Subject<E, A> {
|
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
124
|
|
|
125
|
-
export class AsyncSubject<E, A> extends Subject<E, A> {
|
|
125
|
+
export class AsyncSubject<R, E, A> extends Subject<R, E, A> {
|
|
126
126
|
private value: Either<Cause<E>, A> | null = null;
|
|
127
127
|
private hasValue = false;
|
|
128
128
|
private isComplete = false;
|
package/_src/global.ts
CHANGED
|
@@ -1,37 +1,12 @@
|
|
|
1
|
-
import "@fncts/observable";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @tsplus global
|
|
5
|
-
*/
|
|
6
|
-
import { HashSet } from "@fncts/base/collection/immutable/HashSet";
|
|
7
|
-
/**
|
|
8
|
-
* @tsplus global
|
|
9
|
-
*/
|
|
10
|
-
import { Cause } from "@fncts/base/data/Cause";
|
|
11
|
-
/**
|
|
12
|
-
* @tsplus global
|
|
13
|
-
*/
|
|
14
|
-
import { Either } from "@fncts/base/data/Either";
|
|
15
1
|
/**
|
|
16
2
|
* @tsplus global
|
|
17
3
|
*/
|
|
18
|
-
import {
|
|
4
|
+
import type {} from "@fncts/io/global";
|
|
19
5
|
/**
|
|
20
6
|
* @tsplus global
|
|
21
7
|
*/
|
|
22
|
-
import {
|
|
23
|
-
|
|
24
|
-
* @tsplus global
|
|
25
|
-
*/
|
|
26
|
-
import { Just, Maybe, Nothing } from "@fncts/base/data/Maybe";
|
|
27
|
-
/**
|
|
28
|
-
* @tsplus global
|
|
29
|
-
*/
|
|
30
|
-
import { Predicate, PredicateWithIndex } from "@fncts/base/data/Predicate";
|
|
31
|
-
/**
|
|
32
|
-
* @tsplus global
|
|
33
|
-
*/
|
|
34
|
-
import { Refinement, RefinementWithIndex } from "@fncts/base/data/Refinement";
|
|
8
|
+
import type {} from "@fncts/observable";
|
|
9
|
+
|
|
35
10
|
/**
|
|
36
11
|
* @tsplus global
|
|
37
12
|
*/
|
|
@@ -43,15 +18,11 @@ import { isDate, isFunction, isIterable, isObject, isPlain } from "@fncts/base/u
|
|
|
43
18
|
/**
|
|
44
19
|
* @tsplus global
|
|
45
20
|
*/
|
|
46
|
-
import {
|
|
47
|
-
/**
|
|
48
|
-
* @tsplus global
|
|
49
|
-
*/
|
|
50
|
-
import { IO, isIO, UIO } from "@fncts/io/IO";
|
|
21
|
+
import { FiberContext } from "@fncts/io/Fiber";
|
|
51
22
|
/**
|
|
52
23
|
* @tsplus global
|
|
53
24
|
*/
|
|
54
|
-
import {
|
|
25
|
+
import { isIO } from "@fncts/io/IO";
|
|
55
26
|
/**
|
|
56
27
|
* @tsplus global
|
|
57
28
|
*/
|
package/global.d.ts
CHANGED
|
@@ -1,35 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @tsplus global
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import type {} from "@fncts/io/global";
|
|
5
5
|
/**
|
|
6
6
|
* @tsplus global
|
|
7
7
|
*/
|
|
8
|
-
import {
|
|
9
|
-
/**
|
|
10
|
-
* @tsplus global
|
|
11
|
-
*/
|
|
12
|
-
import { Either } from "@fncts/base/data/Either";
|
|
13
|
-
/**
|
|
14
|
-
* @tsplus global
|
|
15
|
-
*/
|
|
16
|
-
import { Exit } from "@fncts/base/data/Exit";
|
|
17
|
-
/**
|
|
18
|
-
* @tsplus global
|
|
19
|
-
*/
|
|
20
|
-
import { Lazy } from "@fncts/base/data/function";
|
|
21
|
-
/**
|
|
22
|
-
* @tsplus global
|
|
23
|
-
*/
|
|
24
|
-
import { Just, Maybe, Nothing } from "@fncts/base/data/Maybe";
|
|
25
|
-
/**
|
|
26
|
-
* @tsplus global
|
|
27
|
-
*/
|
|
28
|
-
import { Predicate, PredicateWithIndex } from "@fncts/base/data/Predicate";
|
|
29
|
-
/**
|
|
30
|
-
* @tsplus global
|
|
31
|
-
*/
|
|
32
|
-
import { Refinement, RefinementWithIndex } from "@fncts/base/data/Refinement";
|
|
8
|
+
import type {} from "@fncts/observable";
|
|
33
9
|
/**
|
|
34
10
|
* @tsplus global
|
|
35
11
|
*/
|
|
@@ -41,15 +17,11 @@ import { isDate, isFunction, isIterable, isObject, isPlain } from "@fncts/base/u
|
|
|
41
17
|
/**
|
|
42
18
|
* @tsplus global
|
|
43
19
|
*/
|
|
44
|
-
import {
|
|
45
|
-
/**
|
|
46
|
-
* @tsplus global
|
|
47
|
-
*/
|
|
48
|
-
import { IO, isIO, UIO } from "@fncts/io/IO";
|
|
20
|
+
import { FiberContext } from "@fncts/io/Fiber";
|
|
49
21
|
/**
|
|
50
22
|
* @tsplus global
|
|
51
23
|
*/
|
|
52
|
-
import {
|
|
24
|
+
import { isIO } from "@fncts/io/IO";
|
|
53
25
|
/**
|
|
54
26
|
* @tsplus global
|
|
55
27
|
*/
|
|
@@ -122,4 +94,4 @@ import { isSubscriber, SafeSubscriber, Subscriber } from "@fncts/observable/Subs
|
|
|
122
94
|
* @tsplus global
|
|
123
95
|
*/
|
|
124
96
|
import { Finalizer, isSubscription, Subscription, SubscriptionLike, Unsubscribable, } from "@fncts/observable/Subscription";
|
|
125
|
-
|
|
97
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fncts/observable",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"dependencies": {
|
|
5
|
-
"@fncts/base": "0.0.
|
|
5
|
+
"@fncts/base": "0.0.15"
|
|
6
6
|
},
|
|
7
7
|
"exports": {
|
|
8
8
|
"./*": {
|
|
9
9
|
"import": "./_mjs/*.mjs",
|
|
10
10
|
"require": "./_cjs/*.cjs"
|
|
11
|
+
},
|
|
12
|
+
".": {
|
|
13
|
+
"import": "./_mjs/index.mjs",
|
|
14
|
+
"require": "./_cjs/index.cjs"
|
|
11
15
|
}
|
|
12
16
|
},
|
|
13
17
|
"publishConfig": {
|
package/_cjs/demo.cjs
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/observable/Observable"));
|
|
4
|
-
|
|
5
|
-
var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Cause/api"));
|
|
6
|
-
|
|
7
|
-
var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/observable/Observable/api/share"));
|
|
8
|
-
|
|
9
|
-
var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/observable/Observable/api/window"));
|
|
10
|
-
|
|
11
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
12
|
-
|
|
13
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
14
|
-
|
|
15
|
-
const x = /*#__PURE__*/new tsplus_module_1.Observable(subscriber => {
|
|
16
|
-
setInterval(() => {
|
|
17
|
-
subscriber.next(undefined);
|
|
18
|
-
}, 1000);
|
|
19
|
-
});
|
|
20
|
-
tsplus_module_4.window_(tsplus_module_3.share_(new tsplus_module_1.Observable(subscriber => {
|
|
21
|
-
let i = 0;
|
|
22
|
-
const handle = setInterval(() => {
|
|
23
|
-
if (i === 100) {
|
|
24
|
-
subscriber.error(tsplus_module_2.fail("lmao"));
|
|
25
|
-
} else {
|
|
26
|
-
subscriber.next(i++);
|
|
27
|
-
}
|
|
28
|
-
}, 100);
|
|
29
|
-
subscriber.add(() => {
|
|
30
|
-
clearInterval(handle);
|
|
31
|
-
});
|
|
32
|
-
})), x).subscribe({
|
|
33
|
-
next: value => {
|
|
34
|
-
value.subscribe(console.log.bind(console));
|
|
35
|
-
},
|
|
36
|
-
error: cause => {
|
|
37
|
-
console.log(cause);
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
//# sourceMappingURL=demo.cjs.map
|
package/_cjs/demo.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"demo.cjs","mappings":";;;;;;;;;;;;;;AAAA,MAAMA,CAAC,gBAAG,oBAAIC,UAAJ,CAA6BC,UAAD,IAAe;EACnDC,WAAW,CAAC,MAAK;IACfD,UAAU,CAACE,IAAX,CAAgBC,SAAhB;EACD,CAFU,EAER,IAFQ,CAAX;AAGD,CAJS,CAAV;AAMAC,mEAAIL,UAAJ,CAAgCC,UAAD,IAAe;EAC5C,IAAIK,CAAC,GAAU,CAAf;EACA,MAAMC,MAAM,GAAGL,WAAW,CAAC,MAAK;IAC9B,IAAII,CAAC,KAAK,GAAV,EAAe;MACbL,UAAU,CAACO,KAAX,CAAiBC,qBAAW,MAAX,CAAjB;IACD,CAFD,MAEO;MACLR,UAAU,CAACE,IAAX,CAAgBG,CAAC,EAAjB;IACD;EACF,CANyB,EAMvB,GANuB,CAA1B;EAOAL,UAAU,CAACS,GAAX,CAAe,MAAK;IAClBC,aAAa,CAACJ,MAAD,CAAb;EACD,CAFD;AAGD,CAZD,IAcUR,CAdV,EAeGa,SAfH,CAea;EACTT,IAAI,EAAGU,KAAD,IAAU;IACdA,KAAK,CAACD,SAAN,CAAgBE,OAAO,CAACC,GAAR,CAAYC,IAAZ,CAAiBF,OAAjB,CAAhB;EACD,CAHQ;EAITN,KAAK,EAAGS,KAAD,IAAU;IACfH,OAAO,CAACC,GAAR,CAAYE,KAAZ;EACD;AANQ,CAfb","names":["x","Observable","subscriber","setInterval","next","undefined","tsplus_module_4","i","handle","error","tsplus_module_2","add","clearInterval","subscribe","value","console","log","bind","cause"],"sourceRoot":"","sources":["../_src/demo.ts"],"sourcesContent":[null]}
|
package/_mjs/demo.mjs
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import * as tsplus_module_1 from "@fncts/observable/Observable";
|
|
2
|
-
import * as tsplus_module_2 from "@fncts/base/data/Cause/api";
|
|
3
|
-
import * as tsplus_module_3 from "@fncts/observable/Observable/api/share";
|
|
4
|
-
import * as tsplus_module_4 from "@fncts/observable/Observable/api/window";
|
|
5
|
-
const x = /*#__PURE__*/new tsplus_module_1.Observable(subscriber => {
|
|
6
|
-
setInterval(() => {
|
|
7
|
-
subscriber.next(undefined);
|
|
8
|
-
}, 1000);
|
|
9
|
-
});
|
|
10
|
-
tsplus_module_4.window_(tsplus_module_3.share_(new tsplus_module_1.Observable(subscriber => {
|
|
11
|
-
let i = 0;
|
|
12
|
-
const handle = setInterval(() => {
|
|
13
|
-
if (i === 100) {
|
|
14
|
-
subscriber.error(tsplus_module_2.fail("lmao"));
|
|
15
|
-
} else {
|
|
16
|
-
subscriber.next(i++);
|
|
17
|
-
}
|
|
18
|
-
}, 100);
|
|
19
|
-
subscriber.add(() => {
|
|
20
|
-
clearInterval(handle);
|
|
21
|
-
});
|
|
22
|
-
})), x).subscribe({
|
|
23
|
-
next: value => {
|
|
24
|
-
value.subscribe(console.log.bind(console));
|
|
25
|
-
},
|
|
26
|
-
error: cause => {
|
|
27
|
-
console.log(cause);
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
//# sourceMappingURL=demo.mjs.map
|
package/_mjs/demo.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"demo.mjs","mappings":";;;;AAAA,MAAMA,CAAC,gBAAG,oBAAIC,UAAJ,CAA6BC,UAAD,IAAe;EACnDC,WAAW,CAAC,MAAK;IACfD,UAAU,CAACE,IAAX,CAAgBC,SAAhB;EACD,CAFU,EAER,IAFQ,CAAX;AAGD,CAJS,CAAV;AAMAC,mEAAIL,UAAJ,CAAgCC,UAAD,IAAe;EAC5C,IAAIK,CAAC,GAAU,CAAf;EACA,MAAMC,MAAM,GAAGL,WAAW,CAAC,MAAK;IAC9B,IAAII,CAAC,KAAK,GAAV,EAAe;MACbL,UAAU,CAACO,KAAX,CAAiBC,qBAAW,MAAX,CAAjB;IACD,CAFD,MAEO;MACLR,UAAU,CAACE,IAAX,CAAgBG,CAAC,EAAjB;IACD;EACF,CANyB,EAMvB,GANuB,CAA1B;EAOAL,UAAU,CAACS,GAAX,CAAe,MAAK;IAClBC,aAAa,CAACJ,MAAD,CAAb;EACD,CAFD;AAGD,CAZD,IAcUR,CAdV,EAeGa,SAfH,CAea;EACTT,IAAI,EAAGU,KAAD,IAAU;IACdA,KAAK,CAACD,SAAN,CAAgBE,OAAO,CAACC,GAAR,CAAYC,IAAZ,CAAiBF,OAAjB,CAAhB;EACD,CAHQ;EAITN,KAAK,EAAGS,KAAD,IAAU;IACfH,OAAO,CAACC,GAAR,CAAYE,KAAZ;EACD;AANQ,CAfb","names":["x","Observable","subscriber","setInterval","next","undefined","tsplus_module_4","i","handle","error","tsplus_module_2","add","clearInterval","subscribe","value","console","log","bind","cause"],"sourceRoot":"","sources":["../_src/demo.ts"],"sourcesContent":[null]}
|
package/_src/demo.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
const x = new Observable<never, void>((subscriber) => {
|
|
2
|
-
setInterval(() => {
|
|
3
|
-
subscriber.next(undefined);
|
|
4
|
-
}, 1000);
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
new Observable<string, number>((subscriber) => {
|
|
8
|
-
let i = 0;
|
|
9
|
-
const handle = setInterval(() => {
|
|
10
|
-
if (i === 100) {
|
|
11
|
-
subscriber.error(Cause.fail("lmao"));
|
|
12
|
-
} else {
|
|
13
|
-
subscriber.next(i++);
|
|
14
|
-
}
|
|
15
|
-
}, 100);
|
|
16
|
-
subscriber.add(() => {
|
|
17
|
-
clearInterval(handle);
|
|
18
|
-
});
|
|
19
|
-
})
|
|
20
|
-
.share()
|
|
21
|
-
.window(x)
|
|
22
|
-
.subscribe({
|
|
23
|
-
next: (value) => {
|
|
24
|
-
value.subscribe(console.log.bind(console));
|
|
25
|
-
},
|
|
26
|
-
error: (cause) => {
|
|
27
|
-
console.log(cause);
|
|
28
|
-
},
|
|
29
|
-
});
|
package/demo.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|