informa 2.3.0 → 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/README.md +4 -3
- package/dist/high.d.ts +1 -1
- package/dist/high.js +2 -2
- package/dist/high.js.map +1 -1
- package/dist/quirks/array.d.ts +1 -1
- package/dist/quirks/array.d.ts.map +1 -1
- package/dist/quirks/basestatified.d.ts +2 -2
- package/dist/quirks/basestatified.d.ts.map +1 -1
- package/dist/quirks/basestatified.js +17 -39
- package/dist/quirks/basestatified.js.map +1 -1
- package/dist/test.js +3 -2
- package/dist/test.js.map +1 -1
- package/package.json +1 -1
- package/src/high.ts +2 -2
- package/src/quirks/basestatified.ts +17 -48
- package/src/test.ts +3 -2
package/README.md
CHANGED
|
@@ -203,9 +203,11 @@ Class instances can participate in the same selector model.
|
|
|
203
203
|
|
|
204
204
|
Informa uses a prototype blanket layer so selectors like `() => w.state` can still be extracted even when the property lives on a class prototype.
|
|
205
205
|
|
|
206
|
-
|
|
206
|
+
That same blanket sits as every instance's own `[[Prototype]]`, so it also intercepts every property write - including writes that end up going through a getter/setter pair you define on your own subclass.
|
|
207
207
|
|
|
208
|
-
|
|
208
|
+
Takeaway:
|
|
209
|
+
- The result of `Reflect.getPrototypeOf` will not be the one of your class.
|
|
210
|
+
- You don't need to (and shouldn't) forward anything to `super` (as opposed to what last version might have suggested); just define plain getters/setters as you normally would.
|
|
209
211
|
|
|
210
212
|
### Example
|
|
211
213
|
|
|
@@ -216,7 +218,6 @@ class Wayland extends $.BaseStatified {
|
|
|
216
218
|
get state() { return this.#state; }
|
|
217
219
|
set state(v: number) {
|
|
218
220
|
this.#state = v;
|
|
219
|
-
super.state = v;
|
|
220
221
|
}
|
|
221
222
|
}
|
|
222
223
|
|
package/dist/high.d.ts
CHANGED
|
@@ -115,7 +115,7 @@ declare const _default: {
|
|
|
115
115
|
offDeleteEntry: typeof offDeleteEntry;
|
|
116
116
|
offSizeChanged: typeof offSizeChanged;
|
|
117
117
|
state: typeof state;
|
|
118
|
-
BaseStatified: ObjectConstructor
|
|
118
|
+
BaseStatified: ObjectConstructor;
|
|
119
119
|
makeStatified: typeof makeStatified;
|
|
120
120
|
StatifiedArray: typeof StatifiedArray;
|
|
121
121
|
StatifiedSet: typeof StatifiedSet;
|
package/dist/high.js
CHANGED
|
@@ -26,7 +26,7 @@ function stateInner(original) {
|
|
|
26
26
|
return new map_js_1.StatifiedMap(map[Symbol.iterator]().map(([k, v]) => [k, stateInner(v)]));
|
|
27
27
|
case Array.prototype:
|
|
28
28
|
const array = original;
|
|
29
|
-
return
|
|
29
|
+
return array_js_1.StatifiedArray.from(array.map(stateInner));
|
|
30
30
|
case array_js_1.StatifiedArray.prototype:
|
|
31
31
|
case set_js_1.StatifiedSet.prototype:
|
|
32
32
|
case map_js_1.StatifiedMap.prototype:
|
|
@@ -40,7 +40,7 @@ function stateInner(original) {
|
|
|
40
40
|
return result;
|
|
41
41
|
}
|
|
42
42
|
if (Array.isArray(original)) {
|
|
43
|
-
return new array_js_1.StatifiedArray(
|
|
43
|
+
return new array_js_1.StatifiedArray(original.map(stateInner));
|
|
44
44
|
}
|
|
45
45
|
throw new Error(`Cannot clone object with prototype`);
|
|
46
46
|
})();
|
package/dist/high.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"high.js","sourceRoot":"","sources":["../src/high.ts"],"names":[],"mappings":";;;;;;AAAA,iDAAyF;AACzF,qCAAiI;AACjI,gDAAmD;AACnD,gEAAyE;AACzE,4CAA+C;AAC/C,4CAA+C;AAE/C,oBAAsD,QAAW;IAC/D,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtD,OAAO,QAAwB,CAAC;IAClC,CAAC;IAED,IAAI,4BAAa,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,4BAAa,CAAC,GAAG,CAAC,QAAQ,CAAiB,CAAC;IAEpF,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE;QACrB,QAAQ,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,KAAK,GAAG,CAAC,SAAS;gBAChB,MAAM,GAAG,GAAG,QAA+B,CAAC;gBAC5C,OAAO,IAAI,qBAAY,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;YAElE,KAAK,GAAG,CAAC,SAAS;gBAChB,MAAM,GAAG,GAAG,QAAoC,CAAC;gBACjD,OAAO,IAAI,qBAAY,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEtF,KAAK,KAAK,CAAC,SAAS;gBAClB,MAAM,KAAK,GAAG,QAA4B,CAAC;gBAC3C,OAAO,
|
|
1
|
+
{"version":3,"file":"high.js","sourceRoot":"","sources":["../src/high.ts"],"names":[],"mappings":"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"}
|
package/dist/quirks/array.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { exitProxySymbol, statifySealKey, type Statify } from "../internals.js";
|
|
2
2
|
import { type ExitProxyValue, type StatifiableProp } from "../low.js";
|
|
3
|
-
declare const StatifiableOrgArray: ArrayConstructor
|
|
3
|
+
declare const StatifiableOrgArray: ArrayConstructor;
|
|
4
4
|
export declare class StatifiedArray<T extends StatifiableProp> extends StatifiableOrgArray<T> implements Array<T>, Statify<T[]> {
|
|
5
5
|
#private;
|
|
6
6
|
[statifySealKey]: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/quirks/array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAgC,cAAc,EAAE,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC9G,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAGrF,QAAA,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/quirks/array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAgC,cAAc,EAAE,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC9G,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAGrF,QAAA,MAAM,mBAAmB,kBAAuB,CAAC;AAEjD,qBAAa,cAAc,CAAC,CAAC,SAAS,eAAe,CACnD,SAAQ,mBAAmB,CAAC,CAAC,CAAE,YAAW,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;;IAEhE,CAAC,cAAc,CAAC,EAAE,IAAI,CAAQ;IACtB,CAAC,eAAe,CAAC,EAAE,cAAc,CAAC;IAI1C,YAAY,WAAW,EAAE,MAAM,EAAE;IACjC,YAAY,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;IAa3B,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,GAAG,MAAM,CAY1B;IACD,OAAO,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,GAAG,MAAM,CAY7B;IAED,GAAG,IAAI,CAAC,GAAG,SAAS,CAUnB;IACD,KAAK,IAAI,CAAC,GAAG,SAAS,CASrB;IAyBD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAwB9D;IAiCD,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAcjD;IACD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAY5D;IAED,OAAO,IAAI,CAAC,EAAE,CAcb;IACD,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,GAAG,SAAS,GAAG,IAAI,CAQ3D;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
type ClassType<T extends any[] = any[], U = object> = new (...args: T) => U;
|
|
2
|
-
export declare function makeStatified<V extends ClassType<T, U>, T extends any[], U extends object>(OriginalClass: V): V
|
|
3
|
-
export declare const BaseStatified: ObjectConstructor
|
|
2
|
+
export declare function makeStatified<V extends ClassType<T, U>, T extends any[], U extends object>(OriginalClass: V): V;
|
|
3
|
+
export declare const BaseStatified: ObjectConstructor;
|
|
4
4
|
export {};
|
|
5
5
|
//# sourceMappingURL=basestatified.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basestatified.d.ts","sourceRoot":"","sources":["../../src/quirks/basestatified.ts"],"names":[],"mappings":"AAkBA,KAAK,SAAS,CAAC,CAAC,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,MAAM,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"basestatified.d.ts","sourceRoot":"","sources":["../../src/quirks/basestatified.ts"],"names":[],"mappings":"AAkBA,KAAK,SAAS,CAAC,CAAC,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,MAAM,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;AA4G5E,wBAAgB,aAAa,CAC3B,CAAC,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EACzB,CAAC,SAAS,GAAG,EAAE,EACf,CAAC,SAAS,MAAM,EAEhB,aAAa,EAAE,CAAC,GACf,CAAC,CA4BH;AAED,eAAO,MAAM,aAAa,mBAAwB,CAAC"}
|
|
@@ -5,7 +5,6 @@ exports.makeStatified = makeStatified;
|
|
|
5
5
|
const internals_js_1 = require("../internals.js");
|
|
6
6
|
const low_js_1 = require("../low.js");
|
|
7
7
|
const classMapMemo = new WeakMap();
|
|
8
|
-
//
|
|
9
8
|
const blanketProtoMemo = new WeakMap();
|
|
10
9
|
const blanketProtoSet = new WeakSet();
|
|
11
10
|
function getBlanketPrototype(actualProto) {
|
|
@@ -73,49 +72,28 @@ function getBlanketPrototype(actualProto) {
|
|
|
73
72
|
blanketProtoSet.add(blanket);
|
|
74
73
|
return blanket;
|
|
75
74
|
}
|
|
76
|
-
//
|
|
77
75
|
function makeStatified(OriginalClass) {
|
|
78
76
|
const maybeMemoed = classMapMemo.get(OriginalClass);
|
|
79
77
|
if (maybeMemoed)
|
|
80
78
|
return maybeMemoed;
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
return true;
|
|
98
|
-
const result = Reflect.get(target, prop, recv);
|
|
99
|
-
if (internals_js_1.globalStateMode === "extract-proxy-path") {
|
|
100
|
-
if (prop === internals_js_1.exitProxySymbol) {
|
|
101
|
-
return { path: [], stateRoot: recv };
|
|
102
|
-
}
|
|
103
|
-
return (0, low_js_1.extract)(result, recv, [prop]);
|
|
104
|
-
}
|
|
105
|
-
return result;
|
|
106
|
-
},
|
|
107
|
-
has(target, prop) {
|
|
108
|
-
if (internals_js_1.globalStateMode === "extract-proxy-path") {
|
|
109
|
-
if (prop === internals_js_1.exitProxySymbol) {
|
|
110
|
-
return true;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
return Reflect.has(target, prop);
|
|
114
|
-
},
|
|
115
|
-
});
|
|
116
|
-
Reflect.setPrototypeOf(Statified.prototype, OriginalClass.prototype);
|
|
79
|
+
// @ts-ignore - ts-2545 "A mixin class must have a constructor with a single rest parameter of type 'any[]'."
|
|
80
|
+
class Statified extends OriginalClass {
|
|
81
|
+
constructor(...args) {
|
|
82
|
+
super(...args);
|
|
83
|
+
const ctor = new.target ?? Statified;
|
|
84
|
+
const inst = Reflect.construct(OriginalClass, args, ctor);
|
|
85
|
+
(0, internals_js_1.setMetadataOf)(inst, new low_js_1.StateMetadata());
|
|
86
|
+
const actualProto = ctor.prototype;
|
|
87
|
+
const finalProto = blanketProtoSet.has(actualProto)
|
|
88
|
+
? actualProto
|
|
89
|
+
: getBlanketPrototype(actualProto);
|
|
90
|
+
Reflect.setPrototypeOf(inst, finalProto);
|
|
91
|
+
return inst;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
;
|
|
117
95
|
classMapMemo.set(OriginalClass, Statified);
|
|
118
|
-
return Statified;
|
|
96
|
+
return Statified;
|
|
119
97
|
}
|
|
120
98
|
exports.BaseStatified = makeStatified(Object);
|
|
121
99
|
//# sourceMappingURL=basestatified.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basestatified.js","sourceRoot":"","sources":["../../src/quirks/basestatified.ts"],"names":[],"mappings":";;;;AAAA,kDAOyB;AACzB,sCAQmB;AAGnB,MAAM,YAAY,GAAG,IAAI,OAAO,EAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"basestatified.js","sourceRoot":"","sources":["../../src/quirks/basestatified.ts"],"names":[],"mappings":"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"}
|
package/dist/test.js
CHANGED
|
@@ -30,7 +30,6 @@ class Wayland extends basestatified_js_1.BaseStatified {
|
|
|
30
30
|
set state(v) {
|
|
31
31
|
console.log("set", v);
|
|
32
32
|
this.#state = v;
|
|
33
|
-
super.state = v;
|
|
34
33
|
}
|
|
35
34
|
constructor() {
|
|
36
35
|
super();
|
|
@@ -38,7 +37,9 @@ class Wayland extends basestatified_js_1.BaseStatified {
|
|
|
38
37
|
}
|
|
39
38
|
const w = new Wayland();
|
|
40
39
|
high_js_1.default.onSet(() => w.state, (v) => console.log("asdf awawa!!", v));
|
|
41
|
-
w.state = 5;
|
|
40
|
+
// w.state = 5;
|
|
41
|
+
w.state = 6;
|
|
42
|
+
w.state = 7;
|
|
42
43
|
const map = high_js_1.default.state(new Map());
|
|
43
44
|
high_js_1.default.onSetEntry(() => map, (k, v) => console.log("set", k, v));
|
|
44
45
|
high_js_1.default.onReplaceEntry(() => map, (k, v) => console.log("replace", k, v));
|
package/dist/test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":";;;;;AAAA,wDAA0B;AAC1B,gEAA0D;AAC1D,4CAA+C;AAE/C,MAAM,QAAQ,GAAG,iBAAC,CAAC,KAAK,CAA4D,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAE/F,iBAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;IAC1C,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAEzB,iBAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,iBAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE;IAC3C,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,GAAG,iBAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5B,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEnB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAET,MAAM,IAAI,GAAG,iBAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,EAAU,EAAE,CAAC,CAAC;AAC/C,MAAM,KAAK,GAAG,iBAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAEnC,uCAAuC;AACvC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC;AAEnB,MAAM,OAAQ,SAAQ,gCAAa;IACjC,QAAQ,GAAG,IAAI,qBAAY,EAAE,CAAC;IAE9B,MAAM,GAAG,CAAC,CAAC;IACX,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,CAAS;QACjB,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QACrB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/high.ts
CHANGED
|
@@ -24,7 +24,7 @@ export function stateInner<T extends StatifiableProp>(original: T): Statified<T>
|
|
|
24
24
|
|
|
25
25
|
case Array.prototype:
|
|
26
26
|
const array = original as unknown as any[];
|
|
27
|
-
return
|
|
27
|
+
return StatifiedArray.from(array.map(stateInner));
|
|
28
28
|
|
|
29
29
|
case StatifiedArray.prototype:
|
|
30
30
|
case StatifiedSet.prototype:
|
|
@@ -45,7 +45,7 @@ export function stateInner<T extends StatifiableProp>(original: T): Statified<T>
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
if (Array.isArray(original)) {
|
|
48
|
-
return new StatifiedArray(
|
|
48
|
+
return new StatifiedArray(original.map(stateInner));
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
throw new Error(`Cannot clone object with prototype`);
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
|
|
19
19
|
type ClassType<T extends any[] = any[], U = object> = new (...args: T) => U;
|
|
20
20
|
const classMapMemo = new WeakMap<ClassType, ClassType>();
|
|
21
|
-
|
|
21
|
+
|
|
22
22
|
const blanketProtoMemo = new WeakMap<object, object>();
|
|
23
23
|
const blanketProtoSet = new WeakSet<object>();
|
|
24
24
|
|
|
@@ -123,7 +123,6 @@ function getBlanketPrototype(actualProto: object) {
|
|
|
123
123
|
|
|
124
124
|
return blanket;
|
|
125
125
|
}
|
|
126
|
-
//
|
|
127
126
|
|
|
128
127
|
export function makeStatified<
|
|
129
128
|
V extends ClassType<T, U>,
|
|
@@ -131,64 +130,34 @@ export function makeStatified<
|
|
|
131
130
|
U extends object,
|
|
132
131
|
>(
|
|
133
132
|
OriginalClass: V,
|
|
134
|
-
): V
|
|
133
|
+
): V {
|
|
135
134
|
const maybeMemoed = classMapMemo.get(OriginalClass);
|
|
136
135
|
if (maybeMemoed) return maybeMemoed as V;
|
|
137
136
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
setMetadataOf(inst, new StateMetadata());
|
|
144
|
-
|
|
145
|
-
const actualProto = ctor.prototype;
|
|
146
|
-
const finalProto = blanketProtoSet.has(actualProto)
|
|
147
|
-
? actualProto
|
|
148
|
-
: getBlanketPrototype(actualProto);
|
|
149
|
-
|
|
150
|
-
Reflect.setPrototypeOf(inst, finalProto);
|
|
151
|
-
|
|
152
|
-
return inst;
|
|
153
|
-
} as unknown as (new (...args: T) => Statify<U>); // TODO: solve
|
|
154
|
-
|
|
155
|
-
Statified.prototype = new Proxy(
|
|
156
|
-
{
|
|
157
|
-
[statifySealKey]: true,
|
|
158
|
-
} as { [statifySealKey]: true; [exitProxySymbol]: ExitProxyValue; },
|
|
159
|
-
{
|
|
160
|
-
get(target, prop, recv) {
|
|
161
|
-
if (prop === statifySealKey) return true;
|
|
137
|
+
// @ts-ignore - ts-2545 "A mixin class must have a constructor with a single rest parameter of type 'any[]'."
|
|
138
|
+
class Statified extends OriginalClass {
|
|
139
|
+
constructor(...args: T) {
|
|
140
|
+
super(...args);
|
|
162
141
|
|
|
163
|
-
|
|
142
|
+
const ctor = new.target ?? Statified;
|
|
143
|
+
const inst = Reflect.construct(OriginalClass, args, ctor) as Statify<U>;
|
|
164
144
|
|
|
165
|
-
|
|
166
|
-
if (prop === exitProxySymbol) {
|
|
167
|
-
return { path: [], stateRoot: recv };
|
|
168
|
-
}
|
|
145
|
+
setMetadataOf(inst, new StateMetadata());
|
|
169
146
|
|
|
170
|
-
|
|
171
|
-
|
|
147
|
+
const actualProto = ctor.prototype;
|
|
148
|
+
const finalProto = blanketProtoSet.has(actualProto)
|
|
149
|
+
? actualProto
|
|
150
|
+
: getBlanketPrototype(actualProto);
|
|
172
151
|
|
|
173
|
-
|
|
174
|
-
},
|
|
152
|
+
Reflect.setPrototypeOf(inst, finalProto);
|
|
175
153
|
|
|
176
|
-
|
|
177
|
-
if (globalStateMode === "extract-proxy-path") {
|
|
178
|
-
if (prop === exitProxySymbol) {
|
|
179
|
-
return true;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
return Reflect.has(target, prop);
|
|
184
|
-
},
|
|
154
|
+
return inst;
|
|
185
155
|
}
|
|
186
|
-
|
|
187
|
-
Reflect.setPrototypeOf(Statified.prototype, OriginalClass.prototype);
|
|
156
|
+
};
|
|
188
157
|
|
|
189
158
|
classMapMemo.set(OriginalClass, Statified);
|
|
190
159
|
|
|
191
|
-
return Statified
|
|
160
|
+
return Statified;
|
|
192
161
|
}
|
|
193
162
|
|
|
194
163
|
export const BaseStatified = makeStatified(Object);
|
package/src/test.ts
CHANGED
|
@@ -35,7 +35,6 @@ class Wayland extends BaseStatified {
|
|
|
35
35
|
set state(v: number) {
|
|
36
36
|
console.log("set", v)
|
|
37
37
|
this.#state = v;
|
|
38
|
-
super.state = v;
|
|
39
38
|
}
|
|
40
39
|
|
|
41
40
|
constructor() {
|
|
@@ -46,7 +45,9 @@ class Wayland extends BaseStatified {
|
|
|
46
45
|
const w = new Wayland();
|
|
47
46
|
$.onSet(() => w.state, (v) => console.log("asdf awawa!!", v));
|
|
48
47
|
|
|
49
|
-
w.state = 5;
|
|
48
|
+
// w.state = 5;
|
|
49
|
+
w.state = 6;
|
|
50
|
+
w.state = 7;
|
|
50
51
|
|
|
51
52
|
const map = $.state<Map<number, string>>(new Map());
|
|
52
53
|
$.onSetEntry(() => map, (k, v) => console.log("set", k, v));
|