element-vir 9.0.1 → 9.1.1
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/augments/type.d.ts
CHANGED
|
@@ -6,4 +6,5 @@ export type NonEmptyString<T> = T extends '' ? never : T;
|
|
|
6
6
|
* testing packages.
|
|
7
7
|
*/
|
|
8
8
|
export declare function ensureInstanceOf<T>(value: unknown, constructor: new (...args: any) => T, message?: string): asserts value is T;
|
|
9
|
+
export type PickAndBlockOthers<OriginalObject, PickKeys extends keyof OriginalObject> = Pick<OriginalObject, PickKeys> & Partial<Record<Exclude<keyof OriginalObject, PickKeys>, never>>;
|
|
9
10
|
//# sourceMappingURL=type.d.ts.map
|
|
@@ -1,35 +1,26 @@
|
|
|
1
1
|
import { UnPromise } from '@augment-vir/common';
|
|
2
2
|
import { JsonValue, Promisable } from 'type-fest';
|
|
3
|
+
import { PickAndBlockOthers } from '../../augments/type';
|
|
3
4
|
import { PropertyInitMapBase } from './element-properties';
|
|
4
5
|
export type AsyncState<ValueGeneric> = Error | Promisable<UnPromise<ValueGeneric>>;
|
|
5
|
-
|
|
6
|
+
type AllSetValueProperties<ValueGeneric> = {
|
|
7
|
+
/** Set a new value directly without using any promises. */
|
|
8
|
+
resolvedValue: UnPromise<ValueGeneric>;
|
|
6
9
|
createPromise: () => Promise<UnPromise<ValueGeneric>>;
|
|
7
10
|
/**
|
|
8
11
|
* When trigger changes (according to deep equality checking through JSON stringify), the
|
|
9
12
|
* createPromise callback will be called and the element's state will be updated again.
|
|
10
13
|
* Otherwise, the createPromise callback will only be called the first time.
|
|
11
14
|
*
|
|
12
|
-
* Set this to undefined to disabled automatic updating. Meaning, createPromise will only
|
|
13
|
-
*
|
|
15
|
+
* Set this to undefined to disabled automatic updating. Meaning, createPromise will only be
|
|
16
|
+
* called the first time.
|
|
14
17
|
*/
|
|
15
18
|
trigger: JsonValue | Readonly<JsonValue> | undefined;
|
|
16
|
-
newPromise?: never;
|
|
17
|
-
forceUpdate?: never;
|
|
18
|
-
} | {
|
|
19
|
-
createPromise?: never;
|
|
20
|
-
trigger?: never;
|
|
21
|
-
forceUpdate?: never;
|
|
22
19
|
newPromise: Promise<UnPromise<ValueGeneric>>;
|
|
23
|
-
|
|
24
|
-
createPromise?: never;
|
|
25
|
-
trigger?: never;
|
|
26
|
-
newPromise?: never;
|
|
27
|
-
/**
|
|
28
|
-
* Clear the current value and trigger createPromise to get called again on the next
|
|
29
|
-
* render.
|
|
30
|
-
*/
|
|
20
|
+
/** Clear the current value and trigger createPromise to get called again on the next render. */
|
|
31
21
|
forceUpdate: true;
|
|
32
22
|
};
|
|
23
|
+
export type AsyncStateSetValue<ValueGeneric> = PickAndBlockOthers<AllSetValueProperties<ValueGeneric>, 'createPromise' | 'trigger'> | PickAndBlockOthers<AllSetValueProperties<ValueGeneric>, 'newPromise'> | PickAndBlockOthers<AllSetValueProperties<ValueGeneric>, 'forceUpdate'> | PickAndBlockOthers<AllSetValueProperties<ValueGeneric>, 'resolvedValue'>;
|
|
33
24
|
export type MaybeAsyncStateToSync<PropertyMapInit extends PropertyInitMapBase> = {
|
|
34
25
|
[Prop in keyof PropertyMapInit]: PropertyMapInit[Prop] extends AsyncStateHandler<infer ValueGeneric> | AsyncStateInit<infer ValueGeneric> ? AsyncState<ValueGeneric> : PropertyMapInit[Prop];
|
|
35
26
|
};
|
|
@@ -51,4 +42,5 @@ export declare class AsyncStateInit<ValueGeneric> {
|
|
|
51
42
|
constructor(initialValue?: Promise<UnPromise<ValueGeneric>> | undefined);
|
|
52
43
|
}
|
|
53
44
|
export declare function asyncState<ValueGeneric>(initialValue?: Promise<UnPromise<ValueGeneric>> | undefined): AsyncStateInit<ValueGeneric>;
|
|
45
|
+
export {};
|
|
54
46
|
//# sourceMappingURL=async-state.d.ts.map
|
|
@@ -9,7 +9,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
10
10
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
11
11
|
};
|
|
12
|
-
var _AsyncStateHandler_instances, _AsyncStateHandler_lastTrigger, _AsyncStateHandler_resolutionValue, _AsyncStateHandler_rejectionError, _AsyncStateHandler_listeners, _AsyncStateHandler_lastSetPromise, _AsyncStateHandler_waitingForValuePromise, _AsyncStateHandler_fireListeners, _AsyncStateHandler_setPromise;
|
|
12
|
+
var _AsyncStateHandler_instances, _AsyncStateHandler_lastTrigger, _AsyncStateHandler_resolutionValue, _AsyncStateHandler_rejectionError, _AsyncStateHandler_listeners, _AsyncStateHandler_lastSetPromise, _AsyncStateHandler_waitingForValuePromise, _AsyncStateHandler_fireListeners, _AsyncStateHandler_setPromise, _AsyncStateHandler_resolveValue;
|
|
13
13
|
import { areJsonEqual, createDeferredPromiseWrapper, ensureError, filterObject, mapObjectValues, } from '@augment-vir/common';
|
|
14
14
|
export function toAsyncStateHandlerMap(propertyInitMap) {
|
|
15
15
|
if (!propertyInitMap) {
|
|
@@ -52,6 +52,9 @@ export class AsyncStateHandler {
|
|
|
52
52
|
// force a re-render
|
|
53
53
|
__classPrivateFieldGet(this, _AsyncStateHandler_instances, "m", _AsyncStateHandler_fireListeners).call(this);
|
|
54
54
|
}
|
|
55
|
+
else if ('resolvedValue' in setInputs) {
|
|
56
|
+
__classPrivateFieldGet(this, _AsyncStateHandler_instances, "m", _AsyncStateHandler_resolveValue).call(this, setInputs.resolvedValue);
|
|
57
|
+
}
|
|
55
58
|
else {
|
|
56
59
|
if (setInputs.forceUpdate) {
|
|
57
60
|
__classPrivateFieldSet(this, _AsyncStateHandler_lastTrigger, notSetSymbol, "f");
|
|
@@ -93,6 +96,8 @@ _AsyncStateHandler_lastTrigger = new WeakMap(), _AsyncStateHandler_resolutionVal
|
|
|
93
96
|
// abort setting the promise if we already have set this promise
|
|
94
97
|
return;
|
|
95
98
|
}
|
|
99
|
+
__classPrivateFieldSet(this, _AsyncStateHandler_resolutionValue, undefined, "f");
|
|
100
|
+
__classPrivateFieldSet(this, _AsyncStateHandler_rejectionError, undefined, "f");
|
|
96
101
|
__classPrivateFieldSet(this, _AsyncStateHandler_lastSetPromise, newPromise, "f");
|
|
97
102
|
if (__classPrivateFieldGet(this, _AsyncStateHandler_waitingForValuePromise, "f").isSettled()) {
|
|
98
103
|
__classPrivateFieldSet(this, _AsyncStateHandler_waitingForValuePromise, createDeferredPromiseWrapper(), "f");
|
|
@@ -101,10 +106,7 @@ _AsyncStateHandler_lastTrigger = new WeakMap(), _AsyncStateHandler_resolutionVal
|
|
|
101
106
|
.then((value) => {
|
|
102
107
|
// make sure we're still actually waiting for this promise
|
|
103
108
|
if (__classPrivateFieldGet(this, _AsyncStateHandler_lastSetPromise, "f") === newPromise) {
|
|
104
|
-
|
|
105
|
-
__classPrivateFieldSet(this, _AsyncStateHandler_resolutionValue, value, "f");
|
|
106
|
-
__classPrivateFieldGet(this, _AsyncStateHandler_waitingForValuePromise, "f").resolve(value);
|
|
107
|
-
__classPrivateFieldGet(this, _AsyncStateHandler_instances, "m", _AsyncStateHandler_fireListeners).call(this);
|
|
109
|
+
__classPrivateFieldGet(this, _AsyncStateHandler_instances, "m", _AsyncStateHandler_resolveValue).call(this, value);
|
|
108
110
|
}
|
|
109
111
|
})
|
|
110
112
|
.catch((reason) => {
|
|
@@ -121,6 +123,16 @@ _AsyncStateHandler_lastTrigger = new WeakMap(), _AsyncStateHandler_resolutionVal
|
|
|
121
123
|
__classPrivateFieldGet(this, _AsyncStateHandler_instances, "m", _AsyncStateHandler_fireListeners).call(this);
|
|
122
124
|
}
|
|
123
125
|
});
|
|
126
|
+
}, _AsyncStateHandler_resolveValue = function _AsyncStateHandler_resolveValue(value) {
|
|
127
|
+
if (value !== __classPrivateFieldGet(this, _AsyncStateHandler_resolutionValue, "f")) {
|
|
128
|
+
__classPrivateFieldSet(this, _AsyncStateHandler_rejectionError, undefined, "f");
|
|
129
|
+
__classPrivateFieldSet(this, _AsyncStateHandler_resolutionValue, value, "f");
|
|
130
|
+
if (__classPrivateFieldGet(this, _AsyncStateHandler_waitingForValuePromise, "f").isSettled()) {
|
|
131
|
+
__classPrivateFieldSet(this, _AsyncStateHandler_waitingForValuePromise, createDeferredPromiseWrapper(), "f");
|
|
132
|
+
}
|
|
133
|
+
__classPrivateFieldGet(this, _AsyncStateHandler_waitingForValuePromise, "f").resolve(value);
|
|
134
|
+
__classPrivateFieldGet(this, _AsyncStateHandler_instances, "m", _AsyncStateHandler_fireListeners).call(this);
|
|
135
|
+
}
|
|
124
136
|
};
|
|
125
137
|
export class AsyncStateInit {
|
|
126
138
|
constructor(initialValue) {
|