@mrpelz/observable 1.1.1 → 3.0.0
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/dist/main.d.ts +60 -3
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +169 -3
- package/dist/main.js.map +1 -1
- package/dist/state.d.ts +1 -1
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +1 -1
- package/dist/state.js.map +1 -1
- package/dist/timer.d.ts +1 -1
- package/dist/timer.d.ts.map +1 -1
- package/dist/timer.js +1 -1
- package/dist/timer.js.map +1 -1
- package/package.json +1 -5
- package/dist/observable.d.ts +0 -61
- package/dist/observable.d.ts.map +0 -1
- package/dist/observable.js +0 -170
- package/dist/observable.js.map +0 -1
package/dist/main.d.ts
CHANGED
|
@@ -1,4 +1,61 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
export type Observer = {
|
|
2
|
+
remove: () => void;
|
|
3
|
+
};
|
|
4
|
+
export type MetaObserverCallback<T> = (value: T, changed: boolean) => void;
|
|
5
|
+
export type ObserverCallback<T> = (value: T, observer: Observer, changed: boolean) => void;
|
|
6
|
+
export type ProxyFn<T, S> = (input: T) => S;
|
|
7
|
+
export type AnyObservable<T> = Observable<T> | ReadOnlyObservable<T> | ProxyObservable<unknown, T> | ReadOnlyProxyObservable<unknown, T>;
|
|
8
|
+
export type AnyWritableObservable<T> = Observable<T> | ProxyObservable<unknown, T>;
|
|
9
|
+
export type AnyReadOnlyObservable<T> = ReadOnlyObservable<T> | ReadOnlyProxyObservable<unknown, T>;
|
|
10
|
+
export type ObservifyResult<T> = [ReadOnlyObservable<T | null>, () => void];
|
|
11
|
+
export type ObservifyGetter<T> = () => Promise<T | null>;
|
|
12
|
+
export declare class Observable<T> {
|
|
13
|
+
private readonly _observers;
|
|
14
|
+
private _value;
|
|
15
|
+
constructor(initialValue: T, observerCallback?: MetaObserverCallback<T>, forcedReport?: boolean);
|
|
16
|
+
get listeners(): number;
|
|
17
|
+
get value(): T;
|
|
18
|
+
set value(value: T);
|
|
19
|
+
observe(observerCallback: ObserverCallback<T>, forcedReport?: boolean): Observer;
|
|
20
|
+
}
|
|
21
|
+
export declare class ReadOnlyObservable<T> {
|
|
22
|
+
private readonly _observable;
|
|
23
|
+
constructor(observable: AnyObservable<T>);
|
|
24
|
+
get listeners(): number;
|
|
25
|
+
get value(): T;
|
|
26
|
+
observe(observerCallback: ObserverCallback<T>, forcedReport?: boolean): Observer;
|
|
27
|
+
}
|
|
28
|
+
export declare class ReadOnlyProxyObservable<T, S = T> {
|
|
29
|
+
private readonly _get;
|
|
30
|
+
private readonly _observable;
|
|
31
|
+
constructor(observable: AnyObservable<T>, get: ProxyFn<T, S>);
|
|
32
|
+
get listeners(): number;
|
|
33
|
+
get value(): S;
|
|
34
|
+
observe(observerCallback: ObserverCallback<S>, forcedReport?: boolean): Observer;
|
|
35
|
+
}
|
|
36
|
+
export declare const isWritableObservable: <T>(input: AnyObservable<T>) => input is AnyWritableObservable<T>;
|
|
37
|
+
export declare class ProxyObservable<T, S = T> {
|
|
38
|
+
static readonly doNotSet: unique symbol;
|
|
39
|
+
private readonly _get;
|
|
40
|
+
private readonly _observable;
|
|
41
|
+
private readonly _set;
|
|
42
|
+
private _suspend;
|
|
43
|
+
constructor(observable: AnyObservable<T>, get: ProxyFn<T, S>, set: ProxyFn<S, T | typeof ProxyObservable.doNotSet>);
|
|
44
|
+
get listeners(): number;
|
|
45
|
+
get value(): S;
|
|
46
|
+
set value(value: S);
|
|
47
|
+
observe(observerCallback: ObserverCallback<S>, forcedReport?: boolean): Observer;
|
|
48
|
+
}
|
|
49
|
+
export declare class ObservableGroup<T> extends Observable<T> {
|
|
50
|
+
protected readonly _observables: Set<AnyObservable<T>>;
|
|
51
|
+
constructor(initialValue: T, observables?: AnyObservable<T>[]);
|
|
52
|
+
get observables(): AnyObservable<T>[];
|
|
53
|
+
get values(): T[];
|
|
54
|
+
get value(): T;
|
|
55
|
+
set value(value: T);
|
|
56
|
+
protected _merge(): T;
|
|
57
|
+
}
|
|
58
|
+
export declare const isObservable: (input: unknown) => input is AnyObservable<any>;
|
|
59
|
+
export declare const isReadOnlyObservable: (input: unknown) => input is AnyReadOnlyObservable<any>;
|
|
60
|
+
export declare const observify: <T>(fn: ObservifyGetter<T>) => ObservifyResult<T>;
|
|
4
61
|
//# sourceMappingURL=main.d.ts.map
|
package/dist/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
package/dist/main.js
CHANGED
|
@@ -1,4 +1,170 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
|
|
1
|
+
import { promiseGuard } from '@mrpelz/misc-utils/promise';
|
|
2
|
+
export class Observable {
|
|
3
|
+
_observers;
|
|
4
|
+
_value;
|
|
5
|
+
constructor(initialValue, observerCallback, forcedReport = true) {
|
|
6
|
+
this._value = initialValue;
|
|
7
|
+
this._observers = observerCallback
|
|
8
|
+
? new Map([[observerCallback, forcedReport]])
|
|
9
|
+
: new Map();
|
|
10
|
+
}
|
|
11
|
+
get listeners() {
|
|
12
|
+
return this._observers.size;
|
|
13
|
+
}
|
|
14
|
+
get value() {
|
|
15
|
+
return this._value;
|
|
16
|
+
}
|
|
17
|
+
set value(value) {
|
|
18
|
+
const oldValue = this._value;
|
|
19
|
+
this._value = value;
|
|
20
|
+
const changed = this._value !== oldValue;
|
|
21
|
+
for (const [observer, forcedReport] of this._observers) {
|
|
22
|
+
if (!changed && !forcedReport)
|
|
23
|
+
continue;
|
|
24
|
+
observer(this._value, changed);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
observe(observerCallback, forcedReport = false) {
|
|
28
|
+
let observer;
|
|
29
|
+
const metaObserverCallback = (value, changed) => {
|
|
30
|
+
observerCallback(value, observer, changed);
|
|
31
|
+
};
|
|
32
|
+
this._observers.set(metaObserverCallback, forcedReport);
|
|
33
|
+
observer = {
|
|
34
|
+
remove: () => this._observers.delete(metaObserverCallback),
|
|
35
|
+
};
|
|
36
|
+
return observer;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export class ReadOnlyObservable {
|
|
40
|
+
_observable;
|
|
41
|
+
constructor(observable) {
|
|
42
|
+
this._observable = observable;
|
|
43
|
+
}
|
|
44
|
+
get listeners() {
|
|
45
|
+
return this._observable.listeners;
|
|
46
|
+
}
|
|
47
|
+
get value() {
|
|
48
|
+
return this._observable.value;
|
|
49
|
+
}
|
|
50
|
+
observe(observerCallback, forcedReport = false) {
|
|
51
|
+
return this._observable.observe(observerCallback, forcedReport);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
export class ReadOnlyProxyObservable {
|
|
55
|
+
_get;
|
|
56
|
+
_observable;
|
|
57
|
+
constructor(observable, get) {
|
|
58
|
+
this._observable = observable;
|
|
59
|
+
this._get = get;
|
|
60
|
+
}
|
|
61
|
+
get listeners() {
|
|
62
|
+
return this._observable.listeners;
|
|
63
|
+
}
|
|
64
|
+
get value() {
|
|
65
|
+
return this._get(this._observable.value);
|
|
66
|
+
}
|
|
67
|
+
observe(observerCallback, forcedReport = false) {
|
|
68
|
+
return this._observable.observe((value, observer, changed) => observerCallback(this._get(value), observer, changed), forcedReport);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
export const isWritableObservable = (input) => {
|
|
72
|
+
if (input instanceof ReadOnlyObservable)
|
|
73
|
+
return false;
|
|
74
|
+
if (input instanceof ReadOnlyProxyObservable)
|
|
75
|
+
return false;
|
|
76
|
+
return true;
|
|
77
|
+
};
|
|
78
|
+
export class ProxyObservable {
|
|
79
|
+
static doNotSet = Symbol('doNotSet');
|
|
80
|
+
_get;
|
|
81
|
+
_observable;
|
|
82
|
+
_set;
|
|
83
|
+
_suspend = false;
|
|
84
|
+
constructor(observable, get, set) {
|
|
85
|
+
this._observable = observable;
|
|
86
|
+
this._get = get;
|
|
87
|
+
this._set = set;
|
|
88
|
+
}
|
|
89
|
+
get listeners() {
|
|
90
|
+
return this._observable.listeners;
|
|
91
|
+
}
|
|
92
|
+
get value() {
|
|
93
|
+
return this._get(this._observable.value);
|
|
94
|
+
}
|
|
95
|
+
set value(value) {
|
|
96
|
+
if (!isWritableObservable(this._observable))
|
|
97
|
+
return;
|
|
98
|
+
this._suspend = true;
|
|
99
|
+
const nextValue = this._set(value);
|
|
100
|
+
if (nextValue !== ProxyObservable.doNotSet) {
|
|
101
|
+
this._observable.value = nextValue;
|
|
102
|
+
}
|
|
103
|
+
this._suspend = false;
|
|
104
|
+
}
|
|
105
|
+
observe(observerCallback, forcedReport = false) {
|
|
106
|
+
return this._observable.observe((value, observer, changed) => {
|
|
107
|
+
if (this._suspend)
|
|
108
|
+
return;
|
|
109
|
+
observerCallback(this._get(value), observer, changed);
|
|
110
|
+
}, forcedReport);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
export class ObservableGroup extends Observable {
|
|
114
|
+
_observables;
|
|
115
|
+
constructor(initialValue, observables = []) {
|
|
116
|
+
super(initialValue);
|
|
117
|
+
this._observables = observables ? new Set(observables) : new Set();
|
|
118
|
+
for (const state of this._observables) {
|
|
119
|
+
state.observe(() => (super.value = this.value), true);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
get observables() {
|
|
123
|
+
return Array.from(this._observables);
|
|
124
|
+
}
|
|
125
|
+
get values() {
|
|
126
|
+
return this.observables.map(({ value }) => value);
|
|
127
|
+
}
|
|
128
|
+
get value() {
|
|
129
|
+
return this._merge();
|
|
130
|
+
}
|
|
131
|
+
set value(value) {
|
|
132
|
+
for (const observable of this._observables) {
|
|
133
|
+
if (!isWritableObservable(observable)) {
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
observable.value = value;
|
|
137
|
+
}
|
|
138
|
+
super.value = value;
|
|
139
|
+
}
|
|
140
|
+
_merge() {
|
|
141
|
+
throw new Error(`_merge method not defined in ${this}`);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
export const isObservable = (input) => {
|
|
145
|
+
if (input instanceof Observable)
|
|
146
|
+
return true;
|
|
147
|
+
if (input instanceof ReadOnlyObservable)
|
|
148
|
+
return true;
|
|
149
|
+
if (input instanceof ProxyObservable)
|
|
150
|
+
return true;
|
|
151
|
+
if (input instanceof ReadOnlyProxyObservable)
|
|
152
|
+
return true;
|
|
153
|
+
return false;
|
|
154
|
+
};
|
|
155
|
+
export const isReadOnlyObservable = (input) => {
|
|
156
|
+
if (input instanceof ReadOnlyObservable)
|
|
157
|
+
return true;
|
|
158
|
+
if (input instanceof ReadOnlyProxyObservable)
|
|
159
|
+
return true;
|
|
160
|
+
return false;
|
|
161
|
+
};
|
|
162
|
+
export const observify = (fn) => {
|
|
163
|
+
const observable = new Observable(null);
|
|
164
|
+
const trigger = async () => {
|
|
165
|
+
const result = await promiseGuard(fn());
|
|
166
|
+
observable.value = result;
|
|
167
|
+
};
|
|
168
|
+
return [new ReadOnlyObservable(observable), trigger];
|
|
169
|
+
};
|
|
4
170
|
//# sourceMappingURL=main.js.map
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
package/dist/state.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnyObservable, MetaObserverCallback, Observable, ObservableGroup, Observer, ObserverCallback, ProxyObservable } from './
|
|
1
|
+
import { AnyObservable, MetaObserverCallback, Observable, ObservableGroup, Observer, ObserverCallback, ProxyObservable } from './main.js';
|
|
2
2
|
export declare class BooleanState extends Observable<boolean> {
|
|
3
3
|
flip(): boolean;
|
|
4
4
|
}
|
package/dist/state.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,UAAU,EACV,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,eAAe,EAChB,MAAM,
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,UAAU,EACV,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,eAAe,EAChB,MAAM,WAAW,CAAC;AAEnB,qBAAa,YAAa,SAAQ,UAAU,CAAC,OAAO,CAAC;IACnD,IAAI,IAAI,OAAO;CAKhB;AAED,qBAAa,iBAAiB,CAAC,CAAC,CAAE,SAAQ,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC;IACnE,IAAI,IAAI,OAAO;CAKhB;AAED,oBAAY,oBAAoB;IAC9B,mBAAmB,IAAA;IACnB,oBAAoB,IAAA;CACrB;AAED,qBAAa,iBAAkB,SAAQ,eAAe,CAAC,OAAO,CAAC;IAC7D,OAAO,CAAC,MAAM,CAAC,SAAS;IAWxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;gBAG/C,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,GAAE,aAAa,CAAC,OAAO,CAAC,EAAO;IAOvC,SAAS,CAAC,MAAM,IAAI,OAAO;IAI3B,IAAI,KAAK,IAAI,OAAO,CAKnB;IAED,IAAI,MAAM,IAAI,OAAO,CAKpB;IAED,IAAI,IAAI,OAAO;CAKhB;AAED,qBAAa,yBAA0B,SAAQ,iBAAiB;gBAE5D,QAAQ,EAAE,oBAAoB,EAC9B,WAAW,GAAE,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,EAAO;CAcpD;AAED,qBAAa,SAAS,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;gBAEzB,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,CAAC;IASjD,OAAO,KAAK,SAAS,GAEpB;IAED,OAAO,CAAC,QAAQ;IAMhB,IAAI,KAAK,IAAI,CAAC,CAEb;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,EAQjB;IAED,QAAQ,IAAI,MAAM,GAAG,IAAI;IAIzB,IAAI,IAAI,IAAI;IASZ,QAAQ,IAAI,IAAI;IAShB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAU9B;AAED,qBAAa,SAAS,CAAC,CAAC,GAAG,IAAI;IAC7B,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,oBAAoB,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gBAEvD,gBAAgB,CAAC,EAAE,oBAAoB,CAAC,CAAC,GAAG,IAAI,CAAC;IAM7D,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,KAAK,IAAI,CAAC,CAEb;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,EAEjB;IAED,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,QAAQ;IAgBxD,OAAO,CAAC,IAAI,GAAE,CAAC,GAAG,IAAW,GAAG,IAAI;CAKrC;AAED,qBAAa,iBAAiB,CAAC,CAAC,GAAG,IAAI;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAe;gBAE9B,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAInC,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,QAAQ;CAGzD;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;AAElE,eAAO,MAAM,WAAW,GACtB,OAAO,OAAO,KAEb,KAAK,IAAI,YAAY,CAAC,GAAG,CAK3B,CAAC"}
|
package/dist/state.js
CHANGED
package/dist/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EACV,eAAe,EAGf,eAAe,GAChB,MAAM,
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
|
package/dist/timer.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnyReadOnlyObservable, ReadOnlyProxyObservable } from './
|
|
1
|
+
import { AnyReadOnlyObservable, ReadOnlyProxyObservable } from './main.js';
|
|
2
2
|
import { BooleanState, NullState } from './state.js';
|
|
3
3
|
export declare class Timer extends NullState {
|
|
4
4
|
private readonly _time;
|
package/dist/timer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timer.d.ts","sourceRoot":"","sources":["../src/timer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAGrB,uBAAuB,EACxB,MAAM,
|
|
1
|
+
{"version":3,"file":"timer.d.ts","sourceRoot":"","sources":["../src/timer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAGrB,uBAAuB,EACxB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAErD,qBAAa,KAAM,SAAQ,SAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;IAEpE,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;gBAEhD,IAAI,SAAI,EAAE,eAAe,UAAO;IAoB5C,IAAI,QAAQ,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAE7C;IAED,IAAI,WAAW,IAAI,qBAAqB,CAAC,MAAM,GAAG,IAAI,CAAC,CAEtD;IAED,OAAO,CAAC,WAAW;IAKnB,OAAO,IAAI,IAAI;IAIf,MAAM,IAAI,IAAI;IAId,KAAK,CAAC,OAAO,UAAO,GAAG,IAAI;IAU3B,IAAI,IAAI,IAAI;CAOb"}
|
package/dist/timer.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Observable, ReadOnlyObservable, ReadOnlyProxyObservable, } from './
|
|
1
|
+
import { Observable, ReadOnlyObservable, ReadOnlyProxyObservable, } from './main.js';
|
|
2
2
|
import { BooleanState, NullState } from './state.js';
|
|
3
3
|
export class Timer extends NullState {
|
|
4
4
|
_time;
|
package/dist/timer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timer.js","sourceRoot":"","sources":["../src/timer.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,
|
|
1
|
+
{"version":3,"file":"timer.js","sourceRoot":"","sources":["../src/timer.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,OAAO,KAAM,SAAQ,SAAS;IACjB,KAAK,CAAS;IACvB,QAAQ,CAAwB;IACvB,YAAY,GAAG,IAAI,UAAU,CAAgB,IAAI,CAAC,CAAC;IAE3D,SAAS,CAAe;IACxB,UAAU,CAAyC;IAE5D,YAAY,IAAI,GAAG,CAAC,EAAE,eAAe,GAAG,IAAI;QAC1C,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC,SAAS,GAAG,IAAI,YAAY,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE;YAC7D,IAAI,OAAO;gBAAE,OAAO;YAEpB,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,IAAI,uBAAuB,CAC3C,IAAI,CAAC,YAAY,EACjB,CAAC,KAAK,EAAE,EAAE;YACR,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YAChC,OAAO,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,CAAC,CACF,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,uBAAuB,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACnD,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,OAAO,GAAG,IAAI;QAClB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK;YAAE,OAAO;QAClC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO;YAAE,OAAO;QAEtC,IAAI,CAAC,IAAI,EAAE,CAAC;QAEZ,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACjE,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvC,CAAC;IAED,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE3B,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC;IACjC,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mrpelz/observable",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/mrpelz/utils.git",
|
|
@@ -14,10 +14,6 @@
|
|
|
14
14
|
"default": "./dist/main.js",
|
|
15
15
|
"types": "./dist/main.d.ts"
|
|
16
16
|
},
|
|
17
|
-
"./observable": {
|
|
18
|
-
"default": "./dist/observable.js",
|
|
19
|
-
"types": "./dist/observable.d.ts"
|
|
20
|
-
},
|
|
21
17
|
"./state": {
|
|
22
18
|
"default": "./dist/state.js",
|
|
23
19
|
"types": "./dist/state.d.ts"
|
package/dist/observable.d.ts
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
export type Observer = {
|
|
2
|
-
remove: () => void;
|
|
3
|
-
};
|
|
4
|
-
export type MetaObserverCallback<T> = (value: T, changed: boolean) => void;
|
|
5
|
-
export type ObserverCallback<T> = (value: T, observer: Observer, changed: boolean) => void;
|
|
6
|
-
export type ProxyFn<T, S> = (input: T) => S;
|
|
7
|
-
export type AnyObservable<T> = Observable<T> | ReadOnlyObservable<T> | ProxyObservable<unknown, T> | ReadOnlyProxyObservable<unknown, T>;
|
|
8
|
-
export type AnyWritableObservable<T> = Observable<T> | ProxyObservable<unknown, T>;
|
|
9
|
-
export type AnyReadOnlyObservable<T> = ReadOnlyObservable<T> | ReadOnlyProxyObservable<unknown, T>;
|
|
10
|
-
export type ObservifyResult<T> = [ReadOnlyObservable<T | null>, () => void];
|
|
11
|
-
export type ObservifyGetter<T> = () => Promise<T | null>;
|
|
12
|
-
export declare class Observable<T> {
|
|
13
|
-
private readonly _observers;
|
|
14
|
-
private _value;
|
|
15
|
-
constructor(initialValue: T, observerCallback?: MetaObserverCallback<T>, forcedReport?: boolean);
|
|
16
|
-
get listeners(): number;
|
|
17
|
-
get value(): T;
|
|
18
|
-
set value(value: T);
|
|
19
|
-
observe(observerCallback: ObserverCallback<T>, forcedReport?: boolean): Observer;
|
|
20
|
-
}
|
|
21
|
-
export declare class ReadOnlyObservable<T> {
|
|
22
|
-
private readonly _observable;
|
|
23
|
-
constructor(observable: AnyObservable<T>);
|
|
24
|
-
get listeners(): number;
|
|
25
|
-
get value(): T;
|
|
26
|
-
observe(observerCallback: ObserverCallback<T>, forcedReport?: boolean): Observer;
|
|
27
|
-
}
|
|
28
|
-
export declare class ReadOnlyProxyObservable<T, S = T> {
|
|
29
|
-
private readonly _get;
|
|
30
|
-
private readonly _observable;
|
|
31
|
-
constructor(observable: AnyObservable<T>, get: ProxyFn<T, S>);
|
|
32
|
-
get listeners(): number;
|
|
33
|
-
get value(): S;
|
|
34
|
-
observe(observerCallback: ObserverCallback<S>, forcedReport?: boolean): Observer;
|
|
35
|
-
}
|
|
36
|
-
export declare const isWritableObservable: <T>(input: AnyObservable<T>) => input is AnyWritableObservable<T>;
|
|
37
|
-
export declare class ProxyObservable<T, S = T> {
|
|
38
|
-
static readonly doNotSet: unique symbol;
|
|
39
|
-
private readonly _get;
|
|
40
|
-
private readonly _observable;
|
|
41
|
-
private readonly _set;
|
|
42
|
-
private _suspend;
|
|
43
|
-
constructor(observable: AnyObservable<T>, get: ProxyFn<T, S>, set: ProxyFn<S, T | typeof ProxyObservable.doNotSet>);
|
|
44
|
-
get listeners(): number;
|
|
45
|
-
get value(): S;
|
|
46
|
-
set value(value: S);
|
|
47
|
-
observe(observerCallback: ObserverCallback<S>, forcedReport?: boolean): Observer;
|
|
48
|
-
}
|
|
49
|
-
export declare class ObservableGroup<T> extends Observable<T> {
|
|
50
|
-
protected readonly _observables: Set<AnyObservable<T>>;
|
|
51
|
-
constructor(initialValue: T, observables?: AnyObservable<T>[]);
|
|
52
|
-
get observables(): AnyObservable<T>[];
|
|
53
|
-
get values(): T[];
|
|
54
|
-
get value(): T;
|
|
55
|
-
set value(value: T);
|
|
56
|
-
protected _merge(): T;
|
|
57
|
-
}
|
|
58
|
-
export declare const isObservable: (input: unknown) => input is AnyObservable<any>;
|
|
59
|
-
export declare const isReadOnlyObservable: (input: unknown) => input is AnyReadOnlyObservable<any>;
|
|
60
|
-
export declare const observify: <T>(fn: ObservifyGetter<T>) => ObservifyResult<T>;
|
|
61
|
-
//# sourceMappingURL=observable.d.ts.map
|
package/dist/observable.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"observable.d.ts","sourceRoot":"","sources":["../src/observable.ts"],"names":[],"mappings":"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"}
|
package/dist/observable.js
DELETED
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
import { promiseGuard } from '@mrpelz/misc-utils/promise';
|
|
2
|
-
export class Observable {
|
|
3
|
-
_observers;
|
|
4
|
-
_value;
|
|
5
|
-
constructor(initialValue, observerCallback, forcedReport = true) {
|
|
6
|
-
this._value = initialValue;
|
|
7
|
-
this._observers = observerCallback
|
|
8
|
-
? new Map([[observerCallback, forcedReport]])
|
|
9
|
-
: new Map();
|
|
10
|
-
}
|
|
11
|
-
get listeners() {
|
|
12
|
-
return this._observers.size;
|
|
13
|
-
}
|
|
14
|
-
get value() {
|
|
15
|
-
return this._value;
|
|
16
|
-
}
|
|
17
|
-
set value(value) {
|
|
18
|
-
const oldValue = this._value;
|
|
19
|
-
this._value = value;
|
|
20
|
-
const changed = this._value !== oldValue;
|
|
21
|
-
for (const [observer, forcedReport] of this._observers) {
|
|
22
|
-
if (!changed && !forcedReport)
|
|
23
|
-
continue;
|
|
24
|
-
observer(this._value, changed);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
observe(observerCallback, forcedReport = false) {
|
|
28
|
-
let observer;
|
|
29
|
-
const metaObserverCallback = (value, changed) => {
|
|
30
|
-
observerCallback(value, observer, changed);
|
|
31
|
-
};
|
|
32
|
-
this._observers.set(metaObserverCallback, forcedReport);
|
|
33
|
-
observer = {
|
|
34
|
-
remove: () => this._observers.delete(metaObserverCallback),
|
|
35
|
-
};
|
|
36
|
-
return observer;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
export class ReadOnlyObservable {
|
|
40
|
-
_observable;
|
|
41
|
-
constructor(observable) {
|
|
42
|
-
this._observable = observable;
|
|
43
|
-
}
|
|
44
|
-
get listeners() {
|
|
45
|
-
return this._observable.listeners;
|
|
46
|
-
}
|
|
47
|
-
get value() {
|
|
48
|
-
return this._observable.value;
|
|
49
|
-
}
|
|
50
|
-
observe(observerCallback, forcedReport = false) {
|
|
51
|
-
return this._observable.observe(observerCallback, forcedReport);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
export class ReadOnlyProxyObservable {
|
|
55
|
-
_get;
|
|
56
|
-
_observable;
|
|
57
|
-
constructor(observable, get) {
|
|
58
|
-
this._observable = observable;
|
|
59
|
-
this._get = get;
|
|
60
|
-
}
|
|
61
|
-
get listeners() {
|
|
62
|
-
return this._observable.listeners;
|
|
63
|
-
}
|
|
64
|
-
get value() {
|
|
65
|
-
return this._get(this._observable.value);
|
|
66
|
-
}
|
|
67
|
-
observe(observerCallback, forcedReport = false) {
|
|
68
|
-
return this._observable.observe((value, observer, changed) => observerCallback(this._get(value), observer, changed), forcedReport);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
export const isWritableObservable = (input) => {
|
|
72
|
-
if (input instanceof ReadOnlyObservable)
|
|
73
|
-
return false;
|
|
74
|
-
if (input instanceof ReadOnlyProxyObservable)
|
|
75
|
-
return false;
|
|
76
|
-
return true;
|
|
77
|
-
};
|
|
78
|
-
export class ProxyObservable {
|
|
79
|
-
static doNotSet = Symbol('doNotSet');
|
|
80
|
-
_get;
|
|
81
|
-
_observable;
|
|
82
|
-
_set;
|
|
83
|
-
_suspend = false;
|
|
84
|
-
constructor(observable, get, set) {
|
|
85
|
-
this._observable = observable;
|
|
86
|
-
this._get = get;
|
|
87
|
-
this._set = set;
|
|
88
|
-
}
|
|
89
|
-
get listeners() {
|
|
90
|
-
return this._observable.listeners;
|
|
91
|
-
}
|
|
92
|
-
get value() {
|
|
93
|
-
return this._get(this._observable.value);
|
|
94
|
-
}
|
|
95
|
-
set value(value) {
|
|
96
|
-
if (!isWritableObservable(this._observable))
|
|
97
|
-
return;
|
|
98
|
-
this._suspend = true;
|
|
99
|
-
const nextValue = this._set(value);
|
|
100
|
-
if (nextValue !== ProxyObservable.doNotSet) {
|
|
101
|
-
this._observable.value = nextValue;
|
|
102
|
-
}
|
|
103
|
-
this._suspend = false;
|
|
104
|
-
}
|
|
105
|
-
observe(observerCallback, forcedReport = false) {
|
|
106
|
-
return this._observable.observe((value, observer, changed) => {
|
|
107
|
-
if (this._suspend)
|
|
108
|
-
return;
|
|
109
|
-
observerCallback(this._get(value), observer, changed);
|
|
110
|
-
}, forcedReport);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
export class ObservableGroup extends Observable {
|
|
114
|
-
_observables;
|
|
115
|
-
constructor(initialValue, observables = []) {
|
|
116
|
-
super(initialValue);
|
|
117
|
-
this._observables = observables ? new Set(observables) : new Set();
|
|
118
|
-
for (const state of this._observables) {
|
|
119
|
-
state.observe(() => (super.value = this.value), true);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
get observables() {
|
|
123
|
-
return Array.from(this._observables);
|
|
124
|
-
}
|
|
125
|
-
get values() {
|
|
126
|
-
return this.observables.map(({ value }) => value);
|
|
127
|
-
}
|
|
128
|
-
get value() {
|
|
129
|
-
return this._merge();
|
|
130
|
-
}
|
|
131
|
-
set value(value) {
|
|
132
|
-
for (const observable of this._observables) {
|
|
133
|
-
if (!isWritableObservable(observable)) {
|
|
134
|
-
continue;
|
|
135
|
-
}
|
|
136
|
-
observable.value = value;
|
|
137
|
-
}
|
|
138
|
-
super.value = value;
|
|
139
|
-
}
|
|
140
|
-
_merge() {
|
|
141
|
-
throw new Error(`_merge method not defined in ${this}`);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
export const isObservable = (input) => {
|
|
145
|
-
if (input instanceof Observable)
|
|
146
|
-
return true;
|
|
147
|
-
if (input instanceof ReadOnlyObservable)
|
|
148
|
-
return true;
|
|
149
|
-
if (input instanceof ProxyObservable)
|
|
150
|
-
return true;
|
|
151
|
-
if (input instanceof ReadOnlyProxyObservable)
|
|
152
|
-
return true;
|
|
153
|
-
return false;
|
|
154
|
-
};
|
|
155
|
-
export const isReadOnlyObservable = (input) => {
|
|
156
|
-
if (input instanceof ReadOnlyObservable)
|
|
157
|
-
return true;
|
|
158
|
-
if (input instanceof ReadOnlyProxyObservable)
|
|
159
|
-
return true;
|
|
160
|
-
return false;
|
|
161
|
-
};
|
|
162
|
-
export const observify = (fn) => {
|
|
163
|
-
const observable = new Observable(null);
|
|
164
|
-
const trigger = async () => {
|
|
165
|
-
const result = await promiseGuard(fn());
|
|
166
|
-
observable.value = result;
|
|
167
|
-
};
|
|
168
|
-
return [new ReadOnlyObservable(observable), trigger];
|
|
169
|
-
};
|
|
170
|
-
//# sourceMappingURL=observable.js.map
|
package/dist/observable.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"observable.js","sourceRoot":"","sources":["../src/observable.ts"],"names":[],"mappings":"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"}
|