@vscode/observables 0.1.1-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/LICENSE +21 -0
- package/README.md +164 -0
- package/dist/assert.d.ts +3 -0
- package/dist/assert.d.ts.map +1 -0
- package/dist/deps.d.ts +29 -0
- package/dist/deps.d.ts.map +1 -0
- package/dist/disposables.d.ts +20 -0
- package/dist/disposables.d.ts.map +1 -0
- package/dist/disposables.js +66 -0
- package/dist/disposables.js.map +1 -0
- package/dist/equals.d.ts +33 -0
- package/dist/equals.d.ts.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/index.min.js +124 -0
- package/dist/index.min.js.map +1 -0
- package/dist/observableInternal/base.d.ts +173 -0
- package/dist/observableInternal/base.d.ts.map +1 -0
- package/dist/observableInternal/base.js +21 -0
- package/dist/observableInternal/base.js.map +1 -0
- package/dist/observableInternal/changeTracker.d.ts +45 -0
- package/dist/observableInternal/changeTracker.d.ts.map +1 -0
- package/dist/observableInternal/changeTracker.js +78 -0
- package/dist/observableInternal/changeTracker.js.map +1 -0
- package/dist/observableInternal/commonFacade/cancellation.d.ts +25 -0
- package/dist/observableInternal/commonFacade/cancellation.d.ts.map +1 -0
- package/dist/observableInternal/commonFacade/cancellation.js +55 -0
- package/dist/observableInternal/commonFacade/cancellation.js.map +1 -0
- package/dist/observableInternal/commonFacade/deps.d.ts +25 -0
- package/dist/observableInternal/commonFacade/deps.d.ts.map +1 -0
- package/dist/observableInternal/commonFacade/deps.js +37 -0
- package/dist/observableInternal/commonFacade/deps.js.map +1 -0
- package/dist/observableInternal/debugLocation.d.ts +22 -0
- package/dist/observableInternal/debugLocation.d.ts.map +1 -0
- package/dist/observableInternal/debugLocation.js +77 -0
- package/dist/observableInternal/debugLocation.js.map +1 -0
- package/dist/observableInternal/debugName.d.ts +34 -0
- package/dist/observableInternal/debugName.d.ts.map +1 -0
- package/dist/observableInternal/debugName.js +114 -0
- package/dist/observableInternal/debugName.js.map +1 -0
- package/dist/observableInternal/experimental/deferUnobserve.d.ts +17 -0
- package/dist/observableInternal/experimental/deferUnobserve.d.ts.map +1 -0
- package/dist/observableInternal/experimental/deferUnobserve.js +68 -0
- package/dist/observableInternal/experimental/deferUnobserve.js.map +1 -0
- package/dist/observableInternal/experimental/reducer.d.ts +38 -0
- package/dist/observableInternal/experimental/reducer.d.ts.map +1 -0
- package/dist/observableInternal/experimental/utils.d.ts +16 -0
- package/dist/observableInternal/experimental/utils.d.ts.map +1 -0
- package/dist/observableInternal/experimental/utils.js +64 -0
- package/dist/observableInternal/experimental/utils.js.map +1 -0
- package/dist/observableInternal/index.d.ts +26 -0
- package/dist/observableInternal/index.d.ts.map +1 -0
- package/dist/observableInternal/index.js +21 -0
- package/dist/observableInternal/index.js.map +1 -0
- package/dist/observableInternal/logging/consoleObservableLogger.d.ts +41 -0
- package/dist/observableInternal/logging/consoleObservableLogger.d.ts.map +1 -0
- package/dist/observableInternal/logging/consoleObservableLogger.js +355 -0
- package/dist/observableInternal/logging/consoleObservableLogger.js.map +1 -0
- package/dist/observableInternal/logging/debugGetDependencyGraph.d.ts +5 -0
- package/dist/observableInternal/logging/debugGetDependencyGraph.d.ts.map +1 -0
- package/dist/observableInternal/logging/debugGetDependencyGraph.js +78 -0
- package/dist/observableInternal/logging/debugGetDependencyGraph.js.map +1 -0
- package/dist/observableInternal/logging/debugger/debuggerRpc.d.ts +5 -0
- package/dist/observableInternal/logging/debugger/debuggerRpc.d.ts.map +1 -0
- package/dist/observableInternal/logging/debugger/devToolsLogger.d.ts +44 -0
- package/dist/observableInternal/logging/debugger/devToolsLogger.d.ts.map +1 -0
- package/dist/observableInternal/logging/debugger/rpc.d.ts +42 -0
- package/dist/observableInternal/logging/debugger/rpc.d.ts.map +1 -0
- package/dist/observableInternal/logging/debugger/utils.d.ts +14 -0
- package/dist/observableInternal/logging/debugger/utils.d.ts.map +1 -0
- package/dist/observableInternal/logging/logging.d.ts +31 -0
- package/dist/observableInternal/logging/logging.d.ts.map +1 -0
- package/dist/observableInternal/logging/logging.js +100 -0
- package/dist/observableInternal/logging/logging.js.map +1 -0
- package/dist/observableInternal/map.d.ts +19 -0
- package/dist/observableInternal/map.d.ts.map +1 -0
- package/dist/observableInternal/map.js +71 -0
- package/dist/observableInternal/map.js.map +1 -0
- package/dist/observableInternal/observables/baseObservable.d.ts +59 -0
- package/dist/observableInternal/observables/baseObservable.d.ts.map +1 -0
- package/dist/observableInternal/observables/baseObservable.js +142 -0
- package/dist/observableInternal/observables/baseObservable.js.map +1 -0
- package/dist/observableInternal/observables/constObservable.d.ts +6 -0
- package/dist/observableInternal/observables/constObservable.d.ts.map +1 -0
- package/dist/observableInternal/observables/constObservable.js +43 -0
- package/dist/observableInternal/observables/constObservable.js.map +1 -0
- package/dist/observableInternal/observables/derived.d.ts +47 -0
- package/dist/observableInternal/observables/derived.d.ts.map +1 -0
- package/dist/observableInternal/observables/derived.js +102 -0
- package/dist/observableInternal/observables/derived.js.map +1 -0
- package/dist/observableInternal/observables/derivedImpl.d.ts +84 -0
- package/dist/observableInternal/observables/derivedImpl.d.ts.map +1 -0
- package/dist/observableInternal/observables/derivedImpl.js +370 -0
- package/dist/observableInternal/observables/derivedImpl.js.map +1 -0
- package/dist/observableInternal/observables/lazyObservableValue.d.ts +28 -0
- package/dist/observableInternal/observables/lazyObservableValue.d.ts.map +1 -0
- package/dist/observableInternal/observables/lazyObservableValue.js +130 -0
- package/dist/observableInternal/observables/lazyObservableValue.js.map +1 -0
- package/dist/observableInternal/observables/observableFromEvent.d.ts +38 -0
- package/dist/observableInternal/observables/observableFromEvent.d.ts.map +1 -0
- package/dist/observableInternal/observables/observableFromEvent.js +125 -0
- package/dist/observableInternal/observables/observableFromEvent.js.map +1 -0
- package/dist/observableInternal/observables/observableSignal.d.ts +12 -0
- package/dist/observableInternal/observables/observableSignal.d.ts.map +1 -0
- package/dist/observableInternal/observables/observableSignal.js +52 -0
- package/dist/observableInternal/observables/observableSignal.js.map +1 -0
- package/dist/observableInternal/observables/observableSignalFromEvent.d.ts +6 -0
- package/dist/observableInternal/observables/observableSignalFromEvent.d.ts.map +1 -0
- package/dist/observableInternal/observables/observableSignalFromEvent.js +46 -0
- package/dist/observableInternal/observables/observableSignalFromEvent.js.map +1 -0
- package/dist/observableInternal/observables/observableValue.d.ts +38 -0
- package/dist/observableInternal/observables/observableValue.d.ts.map +1 -0
- package/dist/observableInternal/observables/observableValue.js +108 -0
- package/dist/observableInternal/observables/observableValue.js.map +1 -0
- package/dist/observableInternal/observables/observableValueOpts.d.ts +9 -0
- package/dist/observableInternal/observables/observableValueOpts.d.ts.map +1 -0
- package/dist/observableInternal/observables/observableValueOpts.js +23 -0
- package/dist/observableInternal/observables/observableValueOpts.js.map +1 -0
- package/dist/observableInternal/reactions/createEffect.d.ts +65 -0
- package/dist/observableInternal/reactions/createEffect.d.ts.map +1 -0
- package/dist/observableInternal/reactions/createEffect.js +148 -0
- package/dist/observableInternal/reactions/createEffect.js.map +1 -0
- package/dist/observableInternal/reactions/createEffectImpl.d.ts +54 -0
- package/dist/observableInternal/reactions/createEffectImpl.d.ts.map +1 -0
- package/dist/observableInternal/reactions/createEffectImpl.js +225 -0
- package/dist/observableInternal/reactions/createEffectImpl.js.map +1 -0
- package/dist/observableInternal/set.d.ts +18 -0
- package/dist/observableInternal/set.d.ts.map +1 -0
- package/dist/observableInternal/set.js +69 -0
- package/dist/observableInternal/set.js.map +1 -0
- package/dist/observableInternal/transaction.d.ts +28 -0
- package/dist/observableInternal/transaction.d.ts.map +1 -0
- package/dist/observableInternal/transaction.js +114 -0
- package/dist/observableInternal/transaction.js.map +1 -0
- package/dist/observableInternal/utils/promise.d.ts +76 -0
- package/dist/observableInternal/utils/promise.d.ts.map +1 -0
- package/dist/observableInternal/utils/promise.js +112 -0
- package/dist/observableInternal/utils/promise.js.map +1 -0
- package/dist/observableInternal/utils/runOnChange.d.ts +8 -0
- package/dist/observableInternal/utils/runOnChange.d.ts.map +1 -0
- package/dist/observableInternal/utils/runOnChange.js +64 -0
- package/dist/observableInternal/utils/runOnChange.js.map +1 -0
- package/dist/observableInternal/utils/utils.d.ts +44 -0
- package/dist/observableInternal/utils/utils.d.ts.map +1 -0
- package/dist/observableInternal/utils/utils.js +249 -0
- package/dist/observableInternal/utils/utils.js.map +1 -0
- package/dist/observableInternal/utils/utilsCancellation.d.ts +11 -0
- package/dist/observableInternal/utils/utilsCancellation.d.ts.map +1 -0
- package/dist/observableInternal/utils/utilsCancellation.js +91 -0
- package/dist/observableInternal/utils/utilsCancellation.js.map +1 -0
- package/dist/observableInternal/utils/valueWithChangeEvent.d.ts +11 -0
- package/dist/observableInternal/utils/valueWithChangeEvent.d.ts.map +1 -0
- package/dist/observableInternal/utils/valueWithChangeEvent.js +48 -0
- package/dist/observableInternal/utils/valueWithChangeEvent.js.map +1 -0
- package/dist/utils.d.ts +16 -0
- package/dist/utils.d.ts.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { handleBugIndicatingErrorRecovery } from './base.js';
|
|
6
|
+
import { getFunctionName } from './debugName.js';
|
|
7
|
+
import { getLogger } from './logging/logging.js';
|
|
8
|
+
|
|
9
|
+
/*---------------------------------------------------------------------------------------------
|
|
10
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
11
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
12
|
+
*--------------------------------------------------------------------------------------------*/
|
|
13
|
+
/**
|
|
14
|
+
* Starts a transaction in which many observables can be changed at once.
|
|
15
|
+
* {@link fn} should start with a JS Doc using `@description` to give the transaction a debug name.
|
|
16
|
+
* Reaction run on demand or when the transaction ends.
|
|
17
|
+
*/
|
|
18
|
+
function transaction(fn, getDebugName) {
|
|
19
|
+
const tx = new TransactionImpl(fn, getDebugName);
|
|
20
|
+
try {
|
|
21
|
+
fn(tx);
|
|
22
|
+
}
|
|
23
|
+
finally {
|
|
24
|
+
tx.finish();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
let _globalTransaction = undefined;
|
|
28
|
+
function globalTransaction(fn) {
|
|
29
|
+
if (_globalTransaction) {
|
|
30
|
+
fn(_globalTransaction);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
const tx = new TransactionImpl(fn, undefined);
|
|
34
|
+
_globalTransaction = tx;
|
|
35
|
+
try {
|
|
36
|
+
fn(tx);
|
|
37
|
+
}
|
|
38
|
+
finally {
|
|
39
|
+
tx.finish(); // During finish, more actions might be added to the transaction.
|
|
40
|
+
// Which is why we only clear the global transaction after finish.
|
|
41
|
+
_globalTransaction = undefined;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/** @deprecated */
|
|
46
|
+
async function asyncTransaction(fn, getDebugName) {
|
|
47
|
+
const tx = new TransactionImpl(fn, getDebugName);
|
|
48
|
+
try {
|
|
49
|
+
await fn(tx);
|
|
50
|
+
}
|
|
51
|
+
finally {
|
|
52
|
+
tx.finish();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Allows to chain transactions.
|
|
57
|
+
*/
|
|
58
|
+
function subtransaction(tx, fn, getDebugName) {
|
|
59
|
+
if (!tx) {
|
|
60
|
+
transaction(fn, getDebugName);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
fn(tx);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
class TransactionImpl {
|
|
67
|
+
constructor(_fn, _getDebugName) {
|
|
68
|
+
this._fn = _fn;
|
|
69
|
+
this._getDebugName = _getDebugName;
|
|
70
|
+
this._updatingObservers = [];
|
|
71
|
+
getLogger()?.handleBeginTransaction(this);
|
|
72
|
+
}
|
|
73
|
+
getDebugName() {
|
|
74
|
+
if (this._getDebugName) {
|
|
75
|
+
return this._getDebugName();
|
|
76
|
+
}
|
|
77
|
+
return getFunctionName(this._fn);
|
|
78
|
+
}
|
|
79
|
+
updateObserver(observer, observable) {
|
|
80
|
+
if (!this._updatingObservers) {
|
|
81
|
+
// This happens when a transaction is used in a callback or async function.
|
|
82
|
+
// If an async transaction is used, make sure the promise awaits all users of the transaction (e.g. no race).
|
|
83
|
+
handleBugIndicatingErrorRecovery('Transaction already finished!');
|
|
84
|
+
// Error recovery
|
|
85
|
+
transaction(tx => {
|
|
86
|
+
tx.updateObserver(observer, observable);
|
|
87
|
+
});
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
// When this gets called while finish is active, they will still get considered
|
|
91
|
+
this._updatingObservers.push({ observer, observable });
|
|
92
|
+
observer.beginUpdate(observable);
|
|
93
|
+
}
|
|
94
|
+
finish() {
|
|
95
|
+
const updatingObservers = this._updatingObservers;
|
|
96
|
+
if (!updatingObservers) {
|
|
97
|
+
handleBugIndicatingErrorRecovery('transaction.finish() has already been called!');
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
for (let i = 0; i < updatingObservers.length; i++) {
|
|
101
|
+
const { observer, observable } = updatingObservers[i];
|
|
102
|
+
observer.endUpdate(observable);
|
|
103
|
+
}
|
|
104
|
+
// Prevent anyone from updating observers from now on.
|
|
105
|
+
this._updatingObservers = null;
|
|
106
|
+
getLogger()?.handleEndTransaction(this);
|
|
107
|
+
}
|
|
108
|
+
debugGetUpdatingObservers() {
|
|
109
|
+
return this._updatingObservers;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export { TransactionImpl, asyncTransaction, globalTransaction, subtransaction, transaction };
|
|
114
|
+
//# sourceMappingURL=transaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.js","sources":["../../src/observableInternal/transaction.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { IObservable } from '../base';
|
|
2
|
+
export declare class ObservableLazy<T> {
|
|
3
|
+
private readonly _computeValue;
|
|
4
|
+
private readonly _value;
|
|
5
|
+
/**
|
|
6
|
+
* The cached value.
|
|
7
|
+
* Does not force a computation of the value.
|
|
8
|
+
*/
|
|
9
|
+
get cachedValue(): IObservable<T | undefined>;
|
|
10
|
+
constructor(_computeValue: () => T);
|
|
11
|
+
/**
|
|
12
|
+
* Returns the cached value.
|
|
13
|
+
* Computes the value if the value has not been cached yet.
|
|
14
|
+
*/
|
|
15
|
+
getValue(): T;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* A promise whose state is observable.
|
|
19
|
+
*/
|
|
20
|
+
export declare class ObservablePromise<T> {
|
|
21
|
+
static fromFn<T>(fn: () => Promise<T>): ObservablePromise<T>;
|
|
22
|
+
private readonly _value;
|
|
23
|
+
/**
|
|
24
|
+
* The promise that this object wraps.
|
|
25
|
+
*/
|
|
26
|
+
readonly promise: Promise<T>;
|
|
27
|
+
/**
|
|
28
|
+
* The current state of the promise.
|
|
29
|
+
* Is `undefined` if the promise didn't resolve yet.
|
|
30
|
+
*/
|
|
31
|
+
readonly promiseResult: IObservable<PromiseResult<T> | undefined>;
|
|
32
|
+
constructor(promise: Promise<T>);
|
|
33
|
+
readonly resolvedValue: import("..").IObservableWithChange<T | undefined, void>;
|
|
34
|
+
}
|
|
35
|
+
export declare class PromiseResult<T> {
|
|
36
|
+
/**
|
|
37
|
+
* The value of the resolved promise.
|
|
38
|
+
* Undefined if the promise rejected.
|
|
39
|
+
*/
|
|
40
|
+
readonly data: T | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* The error in case of a rejected promise.
|
|
43
|
+
* Undefined if the promise resolved.
|
|
44
|
+
*/
|
|
45
|
+
readonly error: unknown | undefined;
|
|
46
|
+
constructor(
|
|
47
|
+
/**
|
|
48
|
+
* The value of the resolved promise.
|
|
49
|
+
* Undefined if the promise rejected.
|
|
50
|
+
*/
|
|
51
|
+
data: T | undefined,
|
|
52
|
+
/**
|
|
53
|
+
* The error in case of a rejected promise.
|
|
54
|
+
* Undefined if the promise resolved.
|
|
55
|
+
*/
|
|
56
|
+
error: unknown | undefined);
|
|
57
|
+
/**
|
|
58
|
+
* Returns the value if the promise resolved, otherwise throws the error.
|
|
59
|
+
*/
|
|
60
|
+
getDataOrThrow(): T;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* A lazy promise whose state is observable.
|
|
64
|
+
*/
|
|
65
|
+
export declare class ObservableLazyPromise<T> {
|
|
66
|
+
private readonly _computePromise;
|
|
67
|
+
private readonly _lazyValue;
|
|
68
|
+
/**
|
|
69
|
+
* Does not enforce evaluation of the promise compute function.
|
|
70
|
+
* Is undefined if the promise has not been computed yet.
|
|
71
|
+
*/
|
|
72
|
+
readonly cachedPromiseResult: import("..").IObservableWithChange<PromiseResult<T> | undefined, void>;
|
|
73
|
+
constructor(_computePromise: () => Promise<T>);
|
|
74
|
+
getPromise(): Promise<T>;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=promise.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../../src/observableInternal/utils/promise.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAKtC,qBAAa,cAAc,CAAC,CAAC;IAShB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAR1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmD;IAE1E;;;OAGG;IACH,IAAW,WAAW,IAAI,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,CAAwB;gBAE/C,aAAa,EAAE,MAAM,CAAC;IAGnD;;;OAGG;IACI,QAAQ,IAAI,CAAC;CAQpB;AAED;;GAEG;AACH,qBAAa,iBAAiB,CAAC,CAAC;WACjB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAInE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkE;IAEzF;;OAEG;IACH,SAAgB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAEpC;;;OAGG;IACH,SAAgB,aAAa,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAe;gBAE3E,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAgB/B,SAAgB,aAAa,0DAM1B;CACH;AAED,qBAAa,aAAa,CAAC,CAAC;IAE1B;;;OAGG;aACa,IAAI,EAAE,CAAC,GAAG,SAAS;IAEnC;;;OAGG;aACa,KAAK,EAAE,OAAO,GAAG,SAAS;;IAV1C;;;OAGG;IACa,IAAI,EAAE,CAAC,GAAG,SAAS;IAEnC;;;OAGG;IACa,KAAK,EAAE,OAAO,GAAG,SAAS;IAI3C;;OAEG;IACI,cAAc,IAAI,CAAC;CAM1B;AAED;;GAEG;AACH,qBAAa,qBAAqB,CAAC,CAAC;IASvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAR5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2E;IAEtG;;;OAGG;IACH,SAAgB,mBAAmB,yEAAiG;gBAEvG,eAAe,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC;IAGvD,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC;CAG/B"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { transaction } from '../transaction.js';
|
|
6
|
+
import { derived } from '../observables/derived.js';
|
|
7
|
+
import { observableValue } from '../observables/observableValue.js';
|
|
8
|
+
|
|
9
|
+
class ObservableLazy {
|
|
10
|
+
/**
|
|
11
|
+
* The cached value.
|
|
12
|
+
* Does not force a computation of the value.
|
|
13
|
+
*/
|
|
14
|
+
get cachedValue() { return this._value; }
|
|
15
|
+
constructor(_computeValue) {
|
|
16
|
+
this._computeValue = _computeValue;
|
|
17
|
+
this._value = observableValue(this, undefined);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Returns the cached value.
|
|
21
|
+
* Computes the value if the value has not been cached yet.
|
|
22
|
+
*/
|
|
23
|
+
getValue() {
|
|
24
|
+
let v = this._value.get();
|
|
25
|
+
if (!v) {
|
|
26
|
+
v = this._computeValue();
|
|
27
|
+
this._value.set(v, undefined);
|
|
28
|
+
}
|
|
29
|
+
return v;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* A promise whose state is observable.
|
|
34
|
+
*/
|
|
35
|
+
class ObservablePromise {
|
|
36
|
+
static fromFn(fn) {
|
|
37
|
+
return new ObservablePromise(fn());
|
|
38
|
+
}
|
|
39
|
+
constructor(promise) {
|
|
40
|
+
this._value = observableValue(this, undefined);
|
|
41
|
+
/**
|
|
42
|
+
* The current state of the promise.
|
|
43
|
+
* Is `undefined` if the promise didn't resolve yet.
|
|
44
|
+
*/
|
|
45
|
+
this.promiseResult = this._value;
|
|
46
|
+
this.resolvedValue = derived(this, reader => {
|
|
47
|
+
const result = this.promiseResult.read(reader);
|
|
48
|
+
if (!result) {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
return result.getDataOrThrow();
|
|
52
|
+
});
|
|
53
|
+
this.promise = promise.then(value => {
|
|
54
|
+
transaction(tx => {
|
|
55
|
+
/** @description onPromiseResolved */
|
|
56
|
+
this._value.set(new PromiseResult(value, undefined), tx);
|
|
57
|
+
});
|
|
58
|
+
return value;
|
|
59
|
+
}, error => {
|
|
60
|
+
transaction(tx => {
|
|
61
|
+
/** @description onPromiseRejected */
|
|
62
|
+
this._value.set(new PromiseResult(undefined, error), tx);
|
|
63
|
+
});
|
|
64
|
+
throw error;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
class PromiseResult {
|
|
69
|
+
constructor(
|
|
70
|
+
/**
|
|
71
|
+
* The value of the resolved promise.
|
|
72
|
+
* Undefined if the promise rejected.
|
|
73
|
+
*/
|
|
74
|
+
data,
|
|
75
|
+
/**
|
|
76
|
+
* The error in case of a rejected promise.
|
|
77
|
+
* Undefined if the promise resolved.
|
|
78
|
+
*/
|
|
79
|
+
error) {
|
|
80
|
+
this.data = data;
|
|
81
|
+
this.error = error;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Returns the value if the promise resolved, otherwise throws the error.
|
|
85
|
+
*/
|
|
86
|
+
getDataOrThrow() {
|
|
87
|
+
if (this.error) {
|
|
88
|
+
throw this.error;
|
|
89
|
+
}
|
|
90
|
+
return this.data;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* A lazy promise whose state is observable.
|
|
95
|
+
*/
|
|
96
|
+
class ObservableLazyPromise {
|
|
97
|
+
constructor(_computePromise) {
|
|
98
|
+
this._computePromise = _computePromise;
|
|
99
|
+
this._lazyValue = new ObservableLazy(() => new ObservablePromise(this._computePromise()));
|
|
100
|
+
/**
|
|
101
|
+
* Does not enforce evaluation of the promise compute function.
|
|
102
|
+
* Is undefined if the promise has not been computed yet.
|
|
103
|
+
*/
|
|
104
|
+
this.cachedPromiseResult = derived(this, reader => this._lazyValue.cachedValue.read(reader)?.promiseResult.read(reader));
|
|
105
|
+
}
|
|
106
|
+
getPromise() {
|
|
107
|
+
return this._lazyValue.getValue().promise;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export { ObservableLazy, ObservableLazyPromise, ObservablePromise, PromiseResult };
|
|
112
|
+
//# sourceMappingURL=promise.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promise.js","sources":["../../../src/observableInternal/utils/promise.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IObservableWithChange } from '../base';
|
|
2
|
+
import { CancellationToken } from '../commonFacade/cancellation';
|
|
3
|
+
import { DisposableStore, IDisposable } from '../commonFacade/deps';
|
|
4
|
+
export type RemoveUndefined<T> = T extends undefined ? never : T;
|
|
5
|
+
export declare function runOnChange<T, TChange>(observable: IObservableWithChange<T, TChange>, cb: (value: T, previousValue: T, deltas: RemoveUndefined<TChange>[]) => void): IDisposable;
|
|
6
|
+
export declare function runOnChangeWithStore<T, TChange>(observable: IObservableWithChange<T, TChange>, cb: (value: T, previousValue: T, deltas: RemoveUndefined<TChange>[], store: DisposableStore) => void): IDisposable;
|
|
7
|
+
export declare function runOnChangeWithCancellationToken<T, TChange>(observable: IObservableWithChange<T, TChange>, cb: (value: T, previousValue: T, deltas: RemoveUndefined<TChange>[], token: CancellationToken) => Promise<void>): IDisposable;
|
|
8
|
+
//# sourceMappingURL=runOnChange.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runOnChange.d.ts","sourceRoot":"","sources":["../../../src/observableInternal/utils/runOnChange.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAmB,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGpE,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AAEjE,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,qBAAqB,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,GAAG,WAAW,CA8BhL;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,qBAAqB,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,eAAe,KAAK,IAAI,GAAG,WAAW,CAYjN;AAED,wBAAgB,gCAAgC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,qBAAqB,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,WAAW,CAIxO"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { cancelOnDispose } from '../commonFacade/cancellation.js';
|
|
6
|
+
import { DisposableStore } from '../../disposables.js';
|
|
7
|
+
import { autorunWithStoreHandleChanges } from '../reactions/createEffect.js';
|
|
8
|
+
|
|
9
|
+
/*---------------------------------------------------------------------------------------------
|
|
10
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
11
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
12
|
+
*--------------------------------------------------------------------------------------------*/
|
|
13
|
+
function runOnChange(observable, cb) {
|
|
14
|
+
let _previousValue;
|
|
15
|
+
let _firstRun = true;
|
|
16
|
+
return autorunWithStoreHandleChanges({
|
|
17
|
+
changeTracker: {
|
|
18
|
+
createChangeSummary: () => ({ deltas: [], didChange: false }),
|
|
19
|
+
handleChange: (context, changeSummary) => {
|
|
20
|
+
if (context.didChange(observable)) {
|
|
21
|
+
const e = context.change;
|
|
22
|
+
if (e !== undefined) {
|
|
23
|
+
changeSummary.deltas.push(e);
|
|
24
|
+
}
|
|
25
|
+
changeSummary.didChange = true;
|
|
26
|
+
}
|
|
27
|
+
return true;
|
|
28
|
+
},
|
|
29
|
+
}
|
|
30
|
+
}, (reader, changeSummary) => {
|
|
31
|
+
const value = observable.read(reader);
|
|
32
|
+
const previousValue = _previousValue;
|
|
33
|
+
if (changeSummary.didChange) {
|
|
34
|
+
_previousValue = value;
|
|
35
|
+
// didChange can never be true on the first autorun, so we know previousValue is defined
|
|
36
|
+
cb(value, previousValue, changeSummary.deltas);
|
|
37
|
+
}
|
|
38
|
+
if (_firstRun) {
|
|
39
|
+
_firstRun = false;
|
|
40
|
+
_previousValue = value;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
function runOnChangeWithStore(observable, cb) {
|
|
45
|
+
const store = new DisposableStore();
|
|
46
|
+
const disposable = runOnChange(observable, (value, previousValue, deltas) => {
|
|
47
|
+
store.clear();
|
|
48
|
+
cb(value, previousValue, deltas, store);
|
|
49
|
+
});
|
|
50
|
+
return {
|
|
51
|
+
dispose() {
|
|
52
|
+
disposable.dispose();
|
|
53
|
+
store.dispose();
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
function runOnChangeWithCancellationToken(observable, cb) {
|
|
58
|
+
return runOnChangeWithStore(observable, (value, previousValue, deltas, store) => {
|
|
59
|
+
cb(value, previousValue, deltas, cancelOnDispose(store));
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export { runOnChange, runOnChangeWithCancellationToken, runOnChangeWithStore };
|
|
64
|
+
//# sourceMappingURL=runOnChange.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runOnChange.js","sources":["../../../src/observableInternal/utils/runOnChange.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;AAAA;;;AAGgG;AAShF,SAAA,WAAW,CAAa,UAA6C,EAAE,EAA4E,EAAA;AAClK,IAAA,IAAI,cAA6B,CAAC;IAClC,IAAI,SAAS,GAAG,IAAI,CAAC;AACrB,IAAA,OAAO,6BAA6B,CAAC;AACpC,QAAA,aAAa,EAAE;AACd,YAAA,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,EAAgC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC3F,YAAA,YAAY,EAAE,CAAC,OAAO,EAAE,aAAa,KAAI;AACxC,gBAAA,IAAI,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;AAClC,oBAAA,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;AACzB,oBAAA,IAAI,CAAC,KAAK,SAAS,EAAE;AACpB,wBAAA,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAA6B,CAAC,CAAC;qBACzD;AACD,oBAAA,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC;iBAC/B;AACD,gBAAA,OAAO,IAAI,CAAC;aACZ;AACD,SAAA;AACD,KAAA,EAAE,CAAC,MAAM,EAAE,aAAa,KAAI;QAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,aAAa,GAAG,cAAc,CAAC;AACrC,QAAA,IAAI,aAAa,CAAC,SAAS,EAAE;YAC5B,cAAc,GAAG,KAAK,CAAC;;YAEvB,EAAE,CAAC,KAAK,EAAE,aAAc,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;SAChD;QACD,IAAI,SAAS,EAAE;YACd,SAAS,GAAG,KAAK,CAAC;YAClB,cAAc,GAAG,KAAK,CAAC;SACvB;AACF,KAAC,CAAC,CAAC;AACJ,CAAC;AAEe,SAAA,oBAAoB,CAAa,UAA6C,EAAE,EAAoG,EAAA;AACnM,IAAA,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;AACpC,IAAA,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,aAAgB,EAAE,MAAM,KAAI;QAC9E,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AACzC,KAAC,CAAC,CAAC;IACH,OAAO;QACN,OAAO,GAAA;YACN,UAAU,CAAC,OAAO,EAAE,CAAC;YACrB,KAAK,CAAC,OAAO,EAAE,CAAC;SAChB;KACD,CAAC;AACH,CAAC;AAEe,SAAA,gCAAgC,CAAa,UAA6C,EAAE,EAA+G,EAAA;AAC1N,IAAA,OAAO,oBAAoB,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,KAAI;AAC/E,QAAA,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1D,KAAC,CAAC,CAAC;AACJ;;;;"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { IObservable, IObservableWithChange, IObserver, IReader, ITransaction } from '../base';
|
|
2
|
+
import { DebugOwner } from '../debugName';
|
|
3
|
+
import { DisposableStore, Event, IDisposable } from '../commonFacade/deps';
|
|
4
|
+
export declare function observableFromPromise<T>(promise: Promise<T>): IObservable<{
|
|
5
|
+
value?: T;
|
|
6
|
+
}>;
|
|
7
|
+
export declare function signalFromObservable<T>(owner: DebugOwner | undefined, observable: IObservable<T>): IObservable<void>;
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated Use `debouncedObservable` instead.
|
|
10
|
+
*/
|
|
11
|
+
export declare function debouncedObservableDeprecated<T>(observable: IObservable<T>, debounceMs: number, disposableStore: DisposableStore): IObservable<T | undefined>;
|
|
12
|
+
/**
|
|
13
|
+
* Creates an observable that debounces the input observable.
|
|
14
|
+
*/
|
|
15
|
+
export declare function debouncedObservable<T>(observable: IObservable<T>, debounceMs: number): IObservable<T>;
|
|
16
|
+
export declare function wasEventTriggeredRecently(event: Event<any>, timeoutMs: number, disposableStore: DisposableStore): IObservable<boolean>;
|
|
17
|
+
/**
|
|
18
|
+
* This makes sure the observable is being observed and keeps its cache alive.
|
|
19
|
+
*/
|
|
20
|
+
export declare function keepObserved<T>(observable: IObservable<T>): IDisposable;
|
|
21
|
+
/**
|
|
22
|
+
* This converts the given observable into an autorun.
|
|
23
|
+
*/
|
|
24
|
+
export declare function recomputeInitiallyAndOnChange<T>(observable: IObservable<T>, handleValue?: (value: T) => void): IDisposable;
|
|
25
|
+
export declare class KeepAliveObserver implements IObserver {
|
|
26
|
+
private readonly _forceRecompute;
|
|
27
|
+
private readonly _handleValue;
|
|
28
|
+
private _counter;
|
|
29
|
+
constructor(_forceRecompute: boolean, _handleValue: ((value: any) => void) | undefined);
|
|
30
|
+
beginUpdate<T>(observable: IObservable<T>): void;
|
|
31
|
+
endUpdate<T>(observable: IObservable<T>): void;
|
|
32
|
+
handlePossibleChange<T>(observable: IObservable<T>): void;
|
|
33
|
+
handleChange<T, TChange>(observable: IObservableWithChange<T, TChange>, change: TChange): void;
|
|
34
|
+
}
|
|
35
|
+
export declare function derivedObservableWithCache<T>(owner: DebugOwner, computeFn: (reader: IReader, lastValue: T | undefined) => T): IObservable<T>;
|
|
36
|
+
export declare function derivedObservableWithWritableCache<T>(owner: object, computeFn: (reader: IReader, lastValue: T | undefined) => T): IObservable<T> & {
|
|
37
|
+
clearCache(transaction: ITransaction): void;
|
|
38
|
+
setCache(newValue: T | undefined, tx: ITransaction | undefined): void;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* When the items array changes, referential equal items are not mapped again.
|
|
42
|
+
*/
|
|
43
|
+
export declare function mapObservableArrayCached<TIn, TOut, TKey = TIn>(owner: DebugOwner, items: IObservable<readonly TIn[]>, map: (input: TIn, store: DisposableStore) => TOut, keySelector?: (input: TIn) => TKey): IObservable<readonly TOut[]>;
|
|
44
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/observableInternal/utils/utils.ts"],"names":[],"mappings":"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"}
|