reactronic 0.22.505 → 0.22.506
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.
|
@@ -4,6 +4,15 @@ export declare type BoolOnly<T> = Pick<T, {
|
|
|
4
4
|
export declare type GivenTypeOnly<T, V> = Pick<T, {
|
|
5
5
|
[P in keyof T]: T[P] extends V ? P : never;
|
|
6
6
|
}[keyof T]>;
|
|
7
|
+
export declare function refs<O extends object = object>(owner: O): {
|
|
8
|
+
readonly [P in keyof O]-?: Ref<O[P]>;
|
|
9
|
+
};
|
|
10
|
+
export declare function toggleRefs<O extends object = object>(owner: O): {
|
|
11
|
+
readonly [P in keyof BoolOnly<O>]: ToggleRef<O[P]>;
|
|
12
|
+
};
|
|
13
|
+
export declare function customToggleRefs<T, O extends object = any>(owner: O, value1: T, value2: T): {
|
|
14
|
+
readonly [P in keyof GivenTypeOnly<O, T | any>]: ToggleRef<O[P]>;
|
|
15
|
+
};
|
|
7
16
|
export declare class Ref<T = any> {
|
|
8
17
|
readonly owner: any;
|
|
9
18
|
readonly name: string;
|
|
@@ -14,15 +23,6 @@ export declare class Ref<T = any> {
|
|
|
14
23
|
unobservable(): T;
|
|
15
24
|
observe(): T;
|
|
16
25
|
unobserve(): T;
|
|
17
|
-
static to<O extends object = object>(owner: O): {
|
|
18
|
-
readonly [P in keyof O]-?: Ref<O[P]>;
|
|
19
|
-
};
|
|
20
|
-
static toToggle<O extends object = object>(owner: O): {
|
|
21
|
-
readonly [P in keyof BoolOnly<O>]: ToggleRef<O[P]>;
|
|
22
|
-
};
|
|
23
|
-
static toCustomToggle<T, O extends object = any>(owner: O, value1: T, value2: T): {
|
|
24
|
-
readonly [P in keyof GivenTypeOnly<O, T | any>]: ToggleRef<O[P]>;
|
|
25
|
-
};
|
|
26
26
|
static sameRefs(v1: Ref, v2: Ref): boolean;
|
|
27
27
|
static similarRefs(v1: Ref, v2: Ref): boolean;
|
|
28
28
|
}
|
package/build/dist/source/Ref.js
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { Transaction } from './impl/Transaction';
|
|
2
2
|
import { nonreactive } from './Rx';
|
|
3
|
+
export function refs(owner) {
|
|
4
|
+
return new Proxy(owner, RefGettingProxy);
|
|
5
|
+
}
|
|
6
|
+
export function toggleRefs(owner) {
|
|
7
|
+
return new Proxy(owner, BoolRefGettingProxy);
|
|
8
|
+
}
|
|
9
|
+
export function customToggleRefs(owner, value1, value2) {
|
|
10
|
+
const handler = new CustomToggleRefGettingProxy(value1, value2);
|
|
11
|
+
return new Proxy(owner, handler);
|
|
12
|
+
}
|
|
3
13
|
export class Ref {
|
|
4
14
|
constructor(owner, name, index = -1) {
|
|
5
15
|
this.owner = owner;
|
|
@@ -27,16 +37,6 @@ export class Ref {
|
|
|
27
37
|
unobserve() {
|
|
28
38
|
throw new Error('not implemented');
|
|
29
39
|
}
|
|
30
|
-
static to(owner) {
|
|
31
|
-
return new Proxy(owner, RefGettingProxy);
|
|
32
|
-
}
|
|
33
|
-
static toToggle(owner) {
|
|
34
|
-
return new Proxy(owner, BoolRefGettingProxy);
|
|
35
|
-
}
|
|
36
|
-
static toCustomToggle(owner, value1, value2) {
|
|
37
|
-
const handler = new CustomToggleRefGettingProxy(value1, value2);
|
|
38
|
-
return new Proxy(owner, handler);
|
|
39
|
-
}
|
|
40
40
|
static sameRefs(v1, v2) {
|
|
41
41
|
return v1.owner === v2.owner && v1.name === v2.name && v1.index === v2.index;
|
|
42
42
|
}
|
|
@@ -44,6 +44,7 @@ export declare class Mvcc implements ProxyHandler<ObjectHandle> {
|
|
|
44
44
|
get(h: ObjectHandle, m: MemberName, receiver: any): any;
|
|
45
45
|
set(h: ObjectHandle, m: MemberName, value: any, receiver: any): boolean;
|
|
46
46
|
has(h: ObjectHandle, m: MemberName): boolean;
|
|
47
|
+
defineProperty?(h: ObjectHandle, m: string | symbol, attributes: PropertyDescriptor): boolean;
|
|
47
48
|
getOwnPropertyDescriptor(h: ObjectHandle, m: MemberName): PropertyDescriptor | undefined;
|
|
48
49
|
ownKeys(h: ObjectHandle): Array<string | symbol>;
|
|
49
50
|
static decorateData(isObservable: boolean, proto: any, member: MemberName): any;
|
|
@@ -112,6 +112,14 @@ export class Mvcc {
|
|
|
112
112
|
const os = Changeset.current().getObjectSnapshot(h, m);
|
|
113
113
|
return m in os.data || m in h.data;
|
|
114
114
|
}
|
|
115
|
+
defineProperty(h, m, attributes) {
|
|
116
|
+
if (attributes.get && attributes.set) {
|
|
117
|
+
Object.defineProperty(h.data, m, attributes);
|
|
118
|
+
return true;
|
|
119
|
+
}
|
|
120
|
+
else
|
|
121
|
+
throw new Error('not implemented');
|
|
122
|
+
}
|
|
115
123
|
getOwnPropertyDescriptor(h, m) {
|
|
116
124
|
const os = Changeset.current().getObjectSnapshot(h, m);
|
|
117
125
|
const pd = Reflect.getOwnPropertyDescriptor(os.data, m);
|